Have multi-volume with recall ready for test. Pausing dependent on conversation with NYU

This commit is contained in:
Heath Volmer
2018-01-31 12:36:57 -07:00
parent 4134622b28
commit 56c418580c
2 changed files with 39 additions and 17 deletions

View File

@@ -317,6 +317,8 @@ namespace PepperDash.Essentials
} }
// Set volume control, using default if non provided // Set volume control, using default if non provided
IBasicVolumeControls volDev = null; IBasicVolumeControls volDev = null;
// Handle special cases for volume control // Handle special cases for volume control
@@ -335,10 +337,26 @@ namespace PepperDash.Essentials
volDev = (dev as IHasVolumeDevice).VolumeDevice; volDev = (dev as IHasVolumeDevice).VolumeDevice;
} }
if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) if (volDev != CurrentVolumeControls)
(CurrentVolumeControls as IBasicVolumeWithFeedback).SetVolume(0); {
// zero the volume on the device we are leaving.
// Set the volume to default on device we are entering
if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback)
{
var vd = CurrentVolumeControls as IBasicVolumeWithFeedback;
SavedVolumeLevels[vd] = (uint)vd.VolumeLevelFeedback.IntValue;
vd.SetVolume(0);
}
CurrentVolumeControls = volDev;
if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback)
{
var vd = CurrentVolumeControls as IBasicVolumeWithFeedback;
ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume);
vd.SetVolume(vol);
}
}
CurrentVolumeControls = volDev;
// store the name and UI info for routes // store the name and UI info for routes
if (item.SourceKey == "$off") if (item.SourceKey == "$off")

View File

@@ -377,6 +377,8 @@ namespace PepperDash.Essentials
// See if this can be moved into common, base-class method ------------- // See if this can be moved into common, base-class method -------------
// Set volume control, using default if non provided // Set volume control, using default if non provided
IBasicVolumeControls volDev = null; IBasicVolumeControls volDev = null;
// Handle special cases for volume control // Handle special cases for volume control
@@ -395,23 +397,25 @@ namespace PepperDash.Essentials
volDev = (dev as IHasVolumeDevice).VolumeDevice; volDev = (dev as IHasVolumeDevice).VolumeDevice;
} }
// zero the volume on the device we are leaving. if (volDev != CurrentVolumeControls)
// Set the volume to default on device we are entering
if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback)
{ {
var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; // zero the volume on the device we are leaving.
SavedVolumeLevels[vd] = (uint)vd.VolumeLevelFeedback.IntValue; // Set the volume to default on device we are entering
vd.SetVolume(0); if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback)
} {
var vd = CurrentVolumeControls as IBasicVolumeWithFeedback;
SavedVolumeLevels[vd] = (uint)vd.VolumeLevelFeedback.IntValue;
vd.SetVolume(0);
}
CurrentVolumeControls = volDev; CurrentVolumeControls = volDev;
if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback) if (ZeroVolumeWhenSwtichingVolumeDevices && CurrentVolumeControls is IBasicVolumeWithFeedback)
{ {
var vd = CurrentVolumeControls as IBasicVolumeWithFeedback; var vd = CurrentVolumeControls as IBasicVolumeWithFeedback;
ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume); ushort vol = (SavedVolumeLevels.ContainsKey(vd) ? (ushort)SavedVolumeLevels[vd] : DefaultVolume);
vd.SetVolume(vol); vd.SetVolume(vol);
}
} }
// ----------------------------------------------------------------------- // -----------------------------------------------------------------------