7575 />
7676 {{ loudness }}
7777 </div >
78+
79+ <!-- For now, a very simple DSP indicator -->
80+ <div
81+ v-if =" dsp_state == DSPState.DISABLED_BY_UNSUPPORTED_GROUP"
82+ style =" height : 50px ; display : flex ; align-items : center "
83+ >
84+ <img
85+ height =" 30"
86+ width =" 50"
87+ contain
88+ src =" @/assets/DSP_off.png"
89+ :style ="
90+ $vuetify.theme.current.dark
91+ ? 'object-fit: contain;'
92+ : 'object-fit: contain;filter: invert(100%);'
93+ "
94+ />
95+ {{ $t("dsp_disabled_by_unsupported_group") }}
96+ </div >
97+ <div
98+ v-else-if =" dsp_state == DSPState.ENABLED"
99+ style =" height : 50px ; display : flex ; align-items : center "
100+ >
101+ <img
102+ height =" 30"
103+ width =" 50"
104+ contain
105+ src =" @/assets/DSP.png"
106+ :style ="
107+ $vuetify.theme.current.dark
108+ ? 'object-fit: contain;'
109+ : 'object-fit: contain;filter: invert(100%);'
110+ "
111+ />
112+ {{ $t("dsp_active") }}
113+ </div >
78114 </v-list >
79115 </v-card >
80116 </v-menu >
@@ -85,7 +121,11 @@ import { computed } from "vue";
85121import ProviderIcon from " @/components/ProviderIcon.vue" ;
86122import api from " @/plugins/api" ;
87123import { store } from " @/plugins/store" ;
88- import { ContentType , VolumeNormalizationMode } from " @/plugins/api/interfaces" ;
124+ import {
125+ ContentType ,
126+ DSPState ,
127+ VolumeNormalizationMode ,
128+ } from " @/plugins/api/interfaces" ;
89129import { $t } from " @/plugins/i18n" ;
90130
91131// computed properties
@@ -123,6 +163,20 @@ const loudness = computed(() => {
123163 return null ;
124164 }
125165});
166+ // This is tempoary until the details show the whole DSP pipeline
167+ const dsp_state = computed (() => {
168+ const dsp = streamDetails .value ?.dsp ;
169+ if (! dsp ) return DSPState .DISABLED ;
170+ let at_least_one_working = Object .values (dsp ).some (
171+ (d ) => d .state == DSPState .ENABLED ,
172+ );
173+ let at_least_one_unsupported = Object .values (dsp ).some (
174+ (d ) => d .state == DSPState .DISABLED_BY_UNSUPPORTED_GROUP ,
175+ );
176+ if (at_least_one_unsupported ) return DSPState .DISABLED_BY_UNSUPPORTED_GROUP ;
177+ else if (at_least_one_working ) return DSPState .ENABLED ;
178+ else return DSPState .DISABLED ;
179+ });
126180const getContentTypeIcon = function (contentType : ContentType ) {
127181 if (contentType == ContentType .AAC ) return iconAac ;
128182 if (contentType == ContentType .FLAC ) return iconFlac ;
0 commit comments