Skip to content

Commit 3fb30d5

Browse files
authored
Merge pull request #1373 from PepperDash/matrix-routing-isonline
Multiple fixes
2 parents 39c1f60 + 57cd77f commit 3fb30d5

30 files changed

Lines changed: 805 additions & 321 deletions

.config/dotnet-tools.json

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
{
2+
"version": 1,
3+
"isRoot": true,
4+
"tools": {
5+
"csharpier": {
6+
"version": "1.2.4",
7+
"commands": [
8+
"csharpier"
9+
],
10+
"rollForward": false
11+
}
12+
}
13+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace PepperDash.Essentials.Core
2+
{
3+
/// <summary>
4+
/// Defines minimum functionality for an audio zone
5+
/// </summary>
6+
public interface IAudioZone : IBasicVolumeWithFeedback
7+
{
8+
void SelectInput(ushort input);
9+
}
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
using System.Collections.Generic;
2+
3+
namespace PepperDash.Essentials.Core
4+
{
5+
/// <summary>
6+
/// Identifies a device that contains audio zones
7+
/// </summary>
8+
public interface IAudioZones : IRouting
9+
{
10+
Dictionary<uint, IAudioZone> Zone { get; }
11+
}
12+
}
Lines changed: 27 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,27 @@
1+
using PepperDash.Core;
2+
3+
namespace PepperDash.Essentials.Core
4+
{
5+
/// <summary>
6+
/// Defines minimal volume and mute control methods
7+
/// </summary>
8+
public interface IBasicVolumeControls : IKeyName
9+
{
10+
/// <summary>
11+
/// Increases the volume
12+
/// </summary>
13+
/// <param name="pressRelease">Indicates whether the volume change is a press and hold action</param>
14+
void VolumeUp(bool pressRelease);
15+
16+
/// <summary>
17+
/// Decreases the volume
18+
/// </summary>
19+
/// <param name="pressRelease">Indicates whether the volume change is a press and hold action</param>
20+
void VolumeDown(bool pressRelease);
21+
22+
/// <summary>
23+
/// Toggles the mute state
24+
/// </summary>
25+
void MuteToggle();
26+
}
27+
}
Lines changed: 14 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,14 @@
1+
namespace PepperDash.Essentials.Core
2+
{
3+
/// <summary>
4+
/// Defines the contract for IBasicVolumeWithFeedback
5+
/// </summary>
6+
public interface IBasicVolumeWithFeedback : IBasicVolumeControls
7+
{
8+
BoolFeedback MuteFeedback { get; }
9+
void MuteOn();
10+
void MuteOff();
11+
void SetVolume(ushort level);
12+
IntFeedback VolumeLevelFeedback { get; }
13+
}
14+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace PepperDash.Essentials.Core
2+
{
3+
/// <summary>
4+
/// Defines the contract for IBasicVolumeWithFeedbackAdvanced
5+
/// </summary>
6+
public interface IBasicVolumeWithFeedbackAdvanced : IBasicVolumeWithFeedback
7+
{
8+
int RawVolumeLevel { get; }
9+
10+
eVolumeLevelUnits Units { get; }
11+
}
12+
}
Lines changed: 41 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,41 @@
1+
namespace PepperDash.Essentials.Core
2+
{
3+
/// <summary>
4+
/// Defines the contract for IFullAudioSettings
5+
/// </summary>
6+
public interface IFullAudioSettings : IBasicVolumeWithFeedback
7+
{
8+
void SetBalance(ushort level);
9+
void BalanceLeft(bool pressRelease);
10+
void BalanceRight(bool pressRelease);
11+
12+
void SetBass(ushort level);
13+
void BassUp(bool pressRelease);
14+
void BassDown(bool pressRelease);
15+
16+
void SetTreble(ushort level);
17+
void TrebleUp(bool pressRelease);
18+
void TrebleDown(bool pressRelease);
19+
20+
bool hasMaxVolume { get; }
21+
void SetMaxVolume(ushort level);
22+
void MaxVolumeUp(bool pressRelease);
23+
void MaxVolumeDown(bool pressRelease);
24+
25+
bool hasDefaultVolume { get; }
26+
void SetDefaultVolume(ushort level);
27+
void DefaultVolumeUp(bool pressRelease);
28+
void DefaultVolumeDown(bool pressRelease);
29+
30+
void LoudnessToggle();
31+
void MonoToggle();
32+
33+
BoolFeedback LoudnessFeedback { get; }
34+
BoolFeedback MonoFeedback { get; }
35+
IntFeedback BalanceFeedback { get; }
36+
IntFeedback BassFeedback { get; }
37+
IntFeedback TrebleFeedback { get; }
38+
IntFeedback MaxVolumeFeedback { get; }
39+
IntFeedback DefaultVolumeFeedback { get; }
40+
}
41+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
using System;
2+
3+
namespace PepperDash.Essentials.Core
4+
{
5+
/// <summary>
6+
/// Defines the contract for IHasCurrentVolumeControls
7+
/// </summary>
8+
public interface IHasCurrentVolumeControls
9+
{
10+
IBasicVolumeControls CurrentVolumeControls { get; }
11+
event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
12+
13+
void SetDefaultLevels();
14+
15+
bool ZeroVolumeWhenSwtichingVolumeDevices { get; }
16+
}
17+
}
Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,10 @@
1+
namespace PepperDash.Essentials.Core
2+
{
3+
/// <summary>
4+
/// Defines basic mute control methods
5+
/// </summary>
6+
public interface IHasMuteControl
7+
{
8+
void MuteToggle();
9+
}
10+
}
Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,12 @@
1+
namespace PepperDash.Essentials.Core
2+
{
3+
/// <summary>
4+
/// Defines mute control methods and properties with feedback
5+
/// </summary>
6+
public interface IHasMuteControlWithFeedback : IHasMuteControl
7+
{
8+
BoolFeedback MuteFeedback { get; }
9+
void MuteOn();
10+
void MuteOff();
11+
}
12+
}

0 commit comments

Comments
 (0)