Skip to content

Commit 088bf7b

Browse files
Move all group vol buffer stuff to the frontend
1 parent c62ce11 commit 088bf7b

2 files changed

Lines changed: 14 additions & 2 deletions

File tree

amplipi/models.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -87,7 +87,7 @@ class fields(SimpleNamespace):
8787
VolumeMax = Field(ge=MIN_VOL_DB, le=MAX_VOL_DB, description='Max output volume in dB')
8888
GroupMute = Field(description='Set to true if output is all zones muted')
8989
GroupVolume = Field(ge=MIN_VOL_DB, le=MAX_VOL_DB, description='Average output volume')
90-
GroupVolumeF = Field(ge=MIN_VOL_F, le=MAX_VOL_F, description='Average output volume as a floating-point number. Larger than zone vol_f due to also encompassing a zones vol_f_buffer.')
90+
GroupVolumeF = Field(ge=MIN_VOL_F, le=MAX_VOL_F, description='Average output volume as a floating-point number.')
9191
Disabled = Field(description='Set to true if not connected to a speaker')
9292
Zones = Field(description='Set of zone ids belonging to a group')
9393
Groups = Field(description='List of group ids')

web/src/components/GroupVolumeSlider/GroupVolumeSlider.jsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,10 +16,22 @@ let sendingRequestCount = 0;
1616
// volume slider for a group in the volumes drawer
1717
const GroupVolumeSlider = ({ groupId, sourceId, groupsLeft }) => {
1818
const group = useStatusStore(s => s.status.groups.filter(g => g.id === groupId)[0]);
19+
const zones = useStatusStore(s => s.status.zones);
1920
const setGroupVol = useStatusStore(s => s.setGroupVol);
2021
const setGroupMute = useStatusStore(s => s.setGroupMute);
2122
const [slidersOpen, setSlidersOpen] = React.useState(false);
2223

24+
const getVolume = () => { // Make sure group sliders account for vol_f_buffer
25+
let v = 0;
26+
for(let i = 0; i < group.zones.length; i++){
27+
console.log(i, zones[group.zones[i]].vol_f + zones[group.zones[i]].vol_f_buffer);
28+
v += (zones[group.zones[i]].vol_f + zones[group.zones[i]].vol_f_buffer);
29+
}
30+
31+
return v / group.zones.length;
32+
};
33+
const volume = getVolume();
34+
2335
// get zones for this group
2436
const groupZones = getSourceZones(sourceId, useStatusStore(s => s.status.zones)).filter(z => group.zones.includes(z.id));
2537

@@ -77,7 +89,7 @@ const GroupVolumeSlider = ({ groupId, sourceId, groupsLeft }) => {
7789
<VolumeSlider
7890
mute={group.mute}
7991
setMute={setMute}
80-
vol={group.vol_f}
92+
vol={volume}
8193
setVol={setVol}
8294
/>
8395
</div>

0 commit comments

Comments
 (0)