mirror of
https://github.com/home-assistant/frontend.git
synced 2025-07-29 12:16:39 +00:00
Extract Supported features into own funciton (#2151)
* External function to check if entity supports a feature * Typo * Update hass-media-player-model.js
This commit is contained in:
parent
22eb6c6a8d
commit
882c503fa9
@ -2,6 +2,7 @@ import { HassEntity } from "home-assistant-js-websocket";
|
|||||||
import canToggleDomain from "./can_toggle_domain";
|
import canToggleDomain from "./can_toggle_domain";
|
||||||
import computeStateDomain from "./compute_state_domain";
|
import computeStateDomain from "./compute_state_domain";
|
||||||
import { HomeAssistant } from "../../types";
|
import { HomeAssistant } from "../../types";
|
||||||
|
import { supportsFeature } from "./supports-feature";
|
||||||
|
|
||||||
export default function canToggleState(
|
export default function canToggleState(
|
||||||
hass: HomeAssistant,
|
hass: HomeAssistant,
|
||||||
@ -12,8 +13,7 @@ export default function canToggleState(
|
|||||||
return stateObj.state === "on" || stateObj.state === "off";
|
return stateObj.state === "on" || stateObj.state === "off";
|
||||||
}
|
}
|
||||||
if (domain === "climate") {
|
if (domain === "climate") {
|
||||||
// tslint:disable-next-line
|
return supportsFeature(stateObj, 4096);
|
||||||
return (stateObj.attributes.supported_features! & 4096) !== 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return canToggleDomain(hass, domain);
|
return canToggleDomain(hass, domain);
|
||||||
|
@ -1,4 +1,5 @@
|
|||||||
import { HassEntity } from "home-assistant-js-websocket";
|
import { HassEntity } from "home-assistant-js-websocket";
|
||||||
|
import { supportsFeature } from "./supports-feature";
|
||||||
|
|
||||||
// Expects classNames to be an object mapping feature-bit -> className
|
// Expects classNames to be an object mapping feature-bit -> className
|
||||||
export default function featureClassNames(
|
export default function featureClassNames(
|
||||||
@ -9,12 +10,9 @@ export default function featureClassNames(
|
|||||||
return "";
|
return "";
|
||||||
}
|
}
|
||||||
|
|
||||||
const features = stateObj.attributes.supported_features;
|
|
||||||
|
|
||||||
return Object.keys(classNames)
|
return Object.keys(classNames)
|
||||||
.map((feature) =>
|
.map((feature) =>
|
||||||
// tslint:disable-next-line
|
supportsFeature(stateObj, Number(feature)) ? classNames[feature] : ""
|
||||||
(features & Number(feature)) !== 0 ? classNames[feature] : ""
|
|
||||||
)
|
)
|
||||||
.filter((attr) => attr !== "")
|
.filter((attr) => attr !== "")
|
||||||
.join(" ");
|
.join(" ");
|
||||||
|
9
src/common/entity/supports-feature.ts
Normal file
9
src/common/entity/supports-feature.ts
Normal file
@ -0,0 +1,9 @@
|
|||||||
|
import { HassEntity } from "home-assistant-js-websocket";
|
||||||
|
|
||||||
|
export const supportsFeature = (
|
||||||
|
stateObj: HassEntity,
|
||||||
|
feature: number
|
||||||
|
): boolean => {
|
||||||
|
// tslint:disable-next-line:no-bitwise
|
||||||
|
return (stateObj.attributes.supported_features! & feature) !== 0;
|
||||||
|
};
|
@ -13,6 +13,7 @@ import "../../../components/ha-paper-slider";
|
|||||||
|
|
||||||
import attributeClassNames from "../../../common/entity/attribute_class_names";
|
import attributeClassNames from "../../../common/entity/attribute_class_names";
|
||||||
import featureClassNames from "../../../common/entity/feature_class_names";
|
import featureClassNames from "../../../common/entity/feature_class_names";
|
||||||
|
import { supportsFeature } from "../../../common/entity/supports-feature";
|
||||||
|
|
||||||
import EventsMixin from "../../../mixins/events-mixin";
|
import EventsMixin from "../../../mixins/events-mixin";
|
||||||
import LocalizeMixin from "../../../mixins/localize-mixin";
|
import LocalizeMixin from "../../../mixins/localize-mixin";
|
||||||
@ -385,45 +386,45 @@ class MoreInfoClimate extends LocalizeMixin(EventsMixin(PolymerElement)) {
|
|||||||
|
|
||||||
supportsTemperature(stateObj) {
|
supportsTemperature(stateObj) {
|
||||||
return (
|
return (
|
||||||
(stateObj.attributes.supported_features & 1) !== 0 &&
|
supportsFeature(stateObj, 1) &&
|
||||||
typeof stateObj.attributes.temperature === "number"
|
typeof stateObj.attributes.temperature === "number"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsTemperatureRange(stateObj) {
|
supportsTemperatureRange(stateObj) {
|
||||||
return (
|
return (
|
||||||
(stateObj.attributes.supported_features & 6) !== 0 &&
|
supportsFeature(stateObj, 6) &&
|
||||||
(typeof stateObj.attributes.target_temp_low === "number" ||
|
(typeof stateObj.attributes.target_temp_low === "number" ||
|
||||||
typeof stateObj.attributes.target_temp_high === "number")
|
typeof stateObj.attributes.target_temp_high === "number")
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsHumidity(stateObj) {
|
supportsHumidity(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 8) !== 0;
|
return supportsFeature(stateObj, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsFanMode(stateObj) {
|
supportsFanMode(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 64) !== 0;
|
return supportsFeature(stateObj, 64);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsOperationMode(stateObj) {
|
supportsOperationMode(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 128) !== 0;
|
return supportsFeature(stateObj, 128);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsSwingMode(stateObj) {
|
supportsSwingMode(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 512) !== 0;
|
return supportsFeature(stateObj, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsAwayMode(stateObj) {
|
supportsAwayMode(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 1024) !== 0;
|
return supportsFeature(stateObj, 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsAuxHeat(stateObj) {
|
supportsAuxHeat(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 2048) !== 0;
|
return supportsFeature(stateObj, 2048);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsOn(stateObj) {
|
supportsOn(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 4096) !== 0;
|
return supportsFeature(stateObj, 4096);
|
||||||
}
|
}
|
||||||
|
|
||||||
computeClassNames(stateObj) {
|
computeClassNames(stateObj) {
|
||||||
|
@ -8,6 +8,7 @@ import { html } from "@polymer/polymer/lib/utils/html-tag";
|
|||||||
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
import { PolymerElement } from "@polymer/polymer/polymer-element";
|
||||||
|
|
||||||
import "../../../components/ha-attributes";
|
import "../../../components/ha-attributes";
|
||||||
|
import { supportsFeature } from "../../../common/entity/supports-feature";
|
||||||
|
|
||||||
class MoreInfoVacuum extends PolymerElement {
|
class MoreInfoVacuum extends PolymerElement {
|
||||||
static get template() {
|
static get template() {
|
||||||
@ -158,57 +159,53 @@ class MoreInfoVacuum extends PolymerElement {
|
|||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-disable no-bitwise */
|
|
||||||
|
|
||||||
supportsPause(stateObj) {
|
supportsPause(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 4) !== 0;
|
return supportsFeature(stateObj, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsStop(stateObj) {
|
supportsStop(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 8) !== 0;
|
return supportsFeature(stateObj, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsReturnHome(stateObj) {
|
supportsReturnHome(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 16) !== 0;
|
return supportsFeature(stateObj, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsFanSpeed(stateObj) {
|
supportsFanSpeed(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 32) !== 0;
|
return supportsFeature(stateObj, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsBattery(stateObj) {
|
supportsBattery(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 64) !== 0;
|
return supportsFeature(stateObj, 64);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsStatus(stateObj) {
|
supportsStatus(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 128) !== 0;
|
return supportsFeature(stateObj, 128);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsLocate(stateObj) {
|
supportsLocate(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 512) !== 0;
|
return supportsFeature(stateObj, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsCleanSpot(stateObj) {
|
supportsCleanSpot(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 1024) !== 0;
|
return supportsFeature(stateObj, 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsStart(stateObj) {
|
supportsStart(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 8192) !== 0;
|
return supportsFeature(stateObj, 8192);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsCommandBar(stateObj) {
|
supportsCommandBar(stateObj) {
|
||||||
return (
|
return (
|
||||||
((stateObj.attributes.supported_features & 4) !== 0) |
|
supportsFeature(stateObj, 4) |
|
||||||
((stateObj.attributes.supported_features & 8) !== 0) |
|
supportsFeature(stateObj, 8) |
|
||||||
((stateObj.attributes.supported_features & 16) !== 0) |
|
supportsFeature(stateObj, 16) |
|
||||||
((stateObj.attributes.supported_features & 512) !== 0) |
|
supportsFeature(stateObj, 512) |
|
||||||
((stateObj.attributes.supported_features & 1024) !== 0) |
|
supportsFeature(stateObj, 1024) |
|
||||||
((stateObj.attributes.supported_features & 8192) !== 0)
|
supportsFeature(stateObj, 8192)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-enable no-bitwise */
|
|
||||||
|
|
||||||
fanSpeedChanged(fanSpeedIndex) {
|
fanSpeedChanged(fanSpeedIndex) {
|
||||||
var fanSpeedInput;
|
var fanSpeedInput;
|
||||||
// Selected Option will transition to '' before transitioning to new value
|
// Selected Option will transition to '' before transitioning to new value
|
||||||
|
@ -12,6 +12,7 @@ import "../../../components/ha-water_heater-control";
|
|||||||
import "../../../components/ha-paper-slider";
|
import "../../../components/ha-paper-slider";
|
||||||
|
|
||||||
import featureClassNames from "../../../common/entity/feature_class_names";
|
import featureClassNames from "../../../common/entity/feature_class_names";
|
||||||
|
import { supportsFeature } from "../../../common/entity/supports-feature";
|
||||||
|
|
||||||
import EventsMixin from "../../../mixins/events-mixin";
|
import EventsMixin from "../../../mixins/events-mixin";
|
||||||
import LocalizeMixin from "../../../mixins/localize-mixin";
|
import LocalizeMixin from "../../../mixins/localize-mixin";
|
||||||
@ -198,17 +199,17 @@ class MoreInfoWaterHeater extends LocalizeMixin(EventsMixin(PolymerElement)) {
|
|||||||
|
|
||||||
supportsTemperature(stateObj) {
|
supportsTemperature(stateObj) {
|
||||||
return (
|
return (
|
||||||
(stateObj.attributes.supported_features & 1) !== 0 &&
|
supportsFeature(stateObj, 1) &&
|
||||||
typeof stateObj.attributes.temperature === "number"
|
typeof stateObj.attributes.temperature === "number"
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsOperationMode(stateObj) {
|
supportsOperationMode(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 2) !== 0;
|
return supportsFeature(stateObj, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
supportsAwayMode(stateObj) {
|
supportsAwayMode(stateObj) {
|
||||||
return (stateObj.attributes.supported_features & 4) !== 0;
|
return supportsFeature(stateObj, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
computeClassNames(stateObj) {
|
computeClassNames(stateObj) {
|
||||||
|
@ -8,6 +8,7 @@ import { hassLocalizeLitMixin } from "../../../mixins/lit-localize-mixin";
|
|||||||
import { EntityRow, EntityConfig } from "./types";
|
import { EntityRow, EntityConfig } from "./types";
|
||||||
import { HomeAssistant } from "../../../types";
|
import { HomeAssistant } from "../../../types";
|
||||||
import { HassEntity } from "home-assistant-js-websocket";
|
import { HassEntity } from "home-assistant-js-websocket";
|
||||||
|
import { supportsFeature } from "../../../common/entity/supports-feature";
|
||||||
import {
|
import {
|
||||||
SUPPORTS_PLAY,
|
SUPPORTS_PLAY,
|
||||||
SUPPORT_NEXT_TRACK,
|
SUPPORT_NEXT_TRACK,
|
||||||
@ -50,13 +51,6 @@ class HuiMediaPlayerEntityRow extends hassLocalizeLitMixin(LitElement)
|
|||||||
`;
|
`;
|
||||||
}
|
}
|
||||||
|
|
||||||
const supportsPlay =
|
|
||||||
// tslint:disable-next-line:no-bitwise
|
|
||||||
stateObj.attributes.supported_features! & SUPPORTS_PLAY;
|
|
||||||
const supportsNext =
|
|
||||||
// tslint:disable-next-line:no-bitwise
|
|
||||||
stateObj.attributes.supported_features! & SUPPORT_NEXT_TRACK;
|
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
${this.renderStyle()}
|
${this.renderStyle()}
|
||||||
<hui-generic-entity-row
|
<hui-generic-entity-row
|
||||||
@ -78,7 +72,8 @@ class HuiMediaPlayerEntityRow extends hassLocalizeLitMixin(LitElement)
|
|||||||
: html`
|
: html`
|
||||||
<div class="controls">
|
<div class="controls">
|
||||||
${
|
${
|
||||||
stateObj.state !== "playing" && !supportsPlay
|
stateObj.state !== "playing" &&
|
||||||
|
!supportsFeature(stateObj, SUPPORTS_PLAY)
|
||||||
? ""
|
? ""
|
||||||
: html`
|
: html`
|
||||||
<paper-icon-button
|
<paper-icon-button
|
||||||
@ -88,7 +83,7 @@ class HuiMediaPlayerEntityRow extends hassLocalizeLitMixin(LitElement)
|
|||||||
`
|
`
|
||||||
}
|
}
|
||||||
${
|
${
|
||||||
supportsNext
|
supportsFeature(stateObj, SUPPORT_NEXT_TRACK)
|
||||||
? html`
|
? html`
|
||||||
<paper-icon-button
|
<paper-icon-button
|
||||||
icon="hass:skip-next"
|
icon="hass:skip-next"
|
||||||
@ -121,7 +116,7 @@ class HuiMediaPlayerEntityRow extends hassLocalizeLitMixin(LitElement)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// tslint:disable-next-line:no-bitwise
|
// tslint:disable-next-line:no-bitwise
|
||||||
return stateObj.attributes.supported_features! & SUPPORT_PAUSE
|
return supportsFeature(stateObj, SUPPORT_PAUSE)
|
||||||
? "hass:pause"
|
? "hass:pause"
|
||||||
: "hass:stop";
|
: "hass:stop";
|
||||||
}
|
}
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { supportsFeature } from "../common/entity/supports-feature";
|
||||||
|
|
||||||
/* eslint-enable no-bitwise */
|
/* eslint-enable no-bitwise */
|
||||||
export default class CoverEntity {
|
export default class CoverEntity {
|
||||||
constructor(hass, stateObj) {
|
constructor(hass, stateObj) {
|
||||||
@ -37,38 +39,36 @@ export default class CoverEntity {
|
|||||||
return this.stateObj.state === "closing";
|
return this.stateObj.state === "closing";
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-disable no-bitwise */
|
|
||||||
|
|
||||||
get supportsOpen() {
|
get supportsOpen() {
|
||||||
return (this._feat & 1) !== 0;
|
return supportsFeature(this.stateObj, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsClose() {
|
get supportsClose() {
|
||||||
return (this._feat & 2) !== 0;
|
return supportsFeature(this.stateObj, 2);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsSetPosition() {
|
get supportsSetPosition() {
|
||||||
return (this._feat & 4) !== 0;
|
return supportsFeature(this.stateObj, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsStop() {
|
get supportsStop() {
|
||||||
return (this._feat & 8) !== 0;
|
return supportsFeature(this.stateObj, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsOpenTilt() {
|
get supportsOpenTilt() {
|
||||||
return (this._feat & 16) !== 0;
|
return supportsFeature(this.stateObj, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsCloseTilt() {
|
get supportsCloseTilt() {
|
||||||
return (this._feat & 32) !== 0;
|
return supportsFeature(this.stateObj, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsStopTilt() {
|
get supportsStopTilt() {
|
||||||
return (this._feat & 64) !== 0;
|
return supportsFeature(this.stateObj, 64);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsSetTiltPosition() {
|
get supportsSetTiltPosition() {
|
||||||
return (this._feat & 128) !== 0;
|
return supportsFeature(this.stateObj, 128);
|
||||||
}
|
}
|
||||||
|
|
||||||
get isTiltOnly() {
|
get isTiltOnly() {
|
||||||
@ -121,24 +121,22 @@ export default class CoverEntity {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
const support = (stateObj, feature) =>
|
export const supportsOpen = (stateObj) => supportsFeature(stateObj, 1);
|
||||||
(stateObj.attributes.supported_features & feature) !== 0;
|
|
||||||
|
|
||||||
export const supportsOpen = (stateObj) => support(stateObj, 1);
|
export const supportsClose = (stateObj) => supportsFeature(stateObj, 2);
|
||||||
|
|
||||||
export const supportsClose = (stateObj) => support(stateObj, 2);
|
export const supportsSetPosition = (stateObj) => supportsFeature(stateObj, 4);
|
||||||
|
|
||||||
export const supportsSetPosition = (stateObj) => support(stateObj, 4);
|
export const supportsStop = (stateObj) => supportsFeature(stateObj, 8);
|
||||||
|
|
||||||
export const supportsStop = (stateObj) => support(stateObj, 8);
|
export const supportsOpenTilt = (stateObj) => supportsFeature(stateObj, 16);
|
||||||
|
|
||||||
export const supportsOpenTilt = (stateObj) => support(stateObj, 16);
|
export const supportsCloseTilt = (stateObj) => supportsFeature(stateObj, 32);
|
||||||
|
|
||||||
export const supportsCloseTilt = (stateObj) => support(stateObj, 32);
|
export const supportsStopTilt = (stateObj) => supportsFeature(stateObj, 64);
|
||||||
|
|
||||||
export const supportsStopTilt = (stateObj) => support(stateObj, 64);
|
export const supportsSetTiltPosition = (stateObj) =>
|
||||||
|
supportsFeature(stateObj, 128);
|
||||||
export const supportsSetTiltPosition = (stateObj) => support(stateObj, 128);
|
|
||||||
|
|
||||||
export function isTiltOnly(stateObj) {
|
export function isTiltOnly(stateObj) {
|
||||||
const supportsCover =
|
const supportsCover =
|
||||||
|
@ -1,3 +1,5 @@
|
|||||||
|
import { supportsFeature } from "../common/entity/supports-feature";
|
||||||
|
|
||||||
export default class MediaPlayerEntity {
|
export default class MediaPlayerEntity {
|
||||||
constructor(hass, stateObj) {
|
constructor(hass, stateObj) {
|
||||||
this.hass = hass;
|
this.hass = hass;
|
||||||
@ -62,58 +64,54 @@ export default class MediaPlayerEntity {
|
|||||||
return progress;
|
return progress;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-disable no-bitwise */
|
|
||||||
|
|
||||||
get supportsPause() {
|
get supportsPause() {
|
||||||
return (this._feat & 1) !== 0;
|
return supportsFeature(this.stateObj, 1);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsVolumeSet() {
|
get supportsVolumeSet() {
|
||||||
return (this._feat & 4) !== 0;
|
return supportsFeature(this.stateObj, 4);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsVolumeMute() {
|
get supportsVolumeMute() {
|
||||||
return (this._feat & 8) !== 0;
|
return supportsFeature(this.stateObj, 8);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsPreviousTrack() {
|
get supportsPreviousTrack() {
|
||||||
return (this._feat & 16) !== 0;
|
return supportsFeature(this.stateObj, 16);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsNextTrack() {
|
get supportsNextTrack() {
|
||||||
return (this._feat & 32) !== 0;
|
return supportsFeature(this.stateObj, 32);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsTurnOn() {
|
get supportsTurnOn() {
|
||||||
return (this._feat & 128) !== 0;
|
return supportsFeature(this.stateObj, 128);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsTurnOff() {
|
get supportsTurnOff() {
|
||||||
return (this._feat & 256) !== 0;
|
return supportsFeature(this.stateObj, 256);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsPlayMedia() {
|
get supportsPlayMedia() {
|
||||||
return (this._feat & 512) !== 0;
|
return supportsFeature(this.stateObj, 512);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsVolumeButtons() {
|
get supportsVolumeButtons() {
|
||||||
return (this._feat & 1024) !== 0;
|
return supportsFeature(this.stateObj, 1024);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsSelectSource() {
|
get supportsSelectSource() {
|
||||||
return (this._feat & 2048) !== 0;
|
return supportsFeature(this.stateObj, 2048);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsSelectSoundMode() {
|
get supportsSelectSoundMode() {
|
||||||
return (this._feat & 65536) !== 0;
|
return supportsFeature(this.stateObj, 65536);
|
||||||
}
|
}
|
||||||
|
|
||||||
get supportsPlay() {
|
get supportsPlay() {
|
||||||
return (this._feat & 16384) !== 0;
|
return supportsFeature(this.stateObj, 16384);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* eslint-enable no-bitwise */
|
|
||||||
|
|
||||||
get primaryTitle() {
|
get primaryTitle() {
|
||||||
return this._attr.media_title;
|
return this._attr.media_title;
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user