Compare commits

...

10 Commits

Author SHA1 Message Date
Joshua_Gutenplan
06d806687d feat: IMobileControlTouchpanelController 2024-04-25 15:29:44 -07:00
Joshua_Gutenplan
d8e2f8cd51 feat: IVideoCodecUiExtensions 2024-04-25 10:03:38 -07:00
Neil Dorin
5fad706cd8 Merge pull request #1179 from PepperDash/feature-2.0.0/soft-codec-routing
Update interfaces for Generic Soft Codec device
2024-04-12 10:31:03 -06:00
Andrew Welker
49c4d2a387 fix: use IRoutingSink instead of IRoutingSinkWithSwitching 2024-04-11 09:15:05 -05:00
Neil Dorin
cf81431f57 feat: updates interfaces on GenericSoftCodec and adds IRoutingSink 2024-04-10 10:59:32 -06:00
Neil Dorin
8a7bcd5297 Merge pull request #1178 from PepperDash/feature-2.0.0/interface-updates
Multiple Updates
2024-04-09 10:36:21 -06:00
Andrew Welker
1fdaa84a62 fix: remove generics from matrix routing interfaces 2024-04-09 08:33:58 -05:00
Neil Dorin
8a374072ae feat: Adds EndpointKeys to IHasMatrixRouting 2024-04-04 16:16:54 -06:00
Neil Dorin
5d608887a1 feat: Adds IEssentialsRoomPropertiesConfig 2024-04-03 14:38:54 -06:00
Andrew Welker
d2d041dbf7 fix: make IRoutingOutputSlot & RoutingOutputSlotBase generic 2024-04-03 10:46:43 -05:00
10 changed files with 130 additions and 40 deletions

View File

@@ -106,4 +106,11 @@ namespace PepperDash.Essentials.Core.DeviceTypeInterfaces
Action<string,string, JToken> Action { get; }
}
public interface IMobileControlTouchpanelController
{
StringFeedback AppUrlFeedback { get; }
string DefaultRoomKey { get; }
string DeviceKey { get; }
}
}

View File

@@ -22,7 +22,7 @@ namespace PepperDash.Essentials.Core
/// </summary>
public interface IHasDefaultDisplay
{
IRoutingSinkWithSwitching DefaultDisplay { get; }
IRoutingSink DefaultDisplay { get; }
}
/// <summary>
@@ -30,7 +30,7 @@ namespace PepperDash.Essentials.Core
/// </summary>
public interface IHasMultipleDisplays
{
Dictionary<eSourceListItemDestinationTypes, IRoutingSinkWithSwitching> Displays { get; }
Dictionary<eSourceListItemDestinationTypes, IRoutingSink> Displays { get; }
}
/// <summary>
@@ -57,6 +57,8 @@ namespace PepperDash.Essentials.Core
public interface IHasMatrixRouting
{
string MatrixRoutingDeviceKey { get; }
List<string> EndpointKeys { get; }
}
/// <summary>

View File

@@ -2,10 +2,10 @@
namespace PepperDash.Essentials.Core.Routing
{
public interface IMatrixRouting<TInput, TOutput> where TInput : IRoutingInputSlot where TOutput : IRoutingOutputSlot
public interface IMatrixRouting
{
Dictionary<string, TInput> InputSlots { get; }
Dictionary<string, TOutput> OutputSlots { get; }
Dictionary<string, IRoutingInputSlot> InputSlots { get; }
Dictionary<string, IRoutingOutputSlot> OutputSlots { get; }
void Route(string inputSlotKey, string outputSlotKey, eRoutingSignalType type);
}

View File

@@ -1,26 +1,7 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PepperDash.Essentials.Core.Routing
namespace PepperDash.Essentials.Core.Routing
{
public interface IRoutingInputSlot: IRoutingSlot, IOnline, IVideoSync
{
string TxDeviceKey { get; }
}
public abstract class RoutingInputSlotBase : IRoutingInputSlot
{
public abstract string TxDeviceKey { get; }
public abstract int SlotNumber { get; }
public abstract eRoutingSignalType SupportedSignalTypes { get; }
public abstract string Name { get; }
public abstract BoolFeedback IsOnline { get; }
public abstract bool VideoSyncDetected { get; }
public abstract string Key { get; }
public abstract event EventHandler VideoSyncChanged;
}
}

View File

@@ -9,18 +9,6 @@ namespace PepperDash.Essentials.Core.Routing
string RxDeviceKey { get; }
Dictionary<eRoutingSignalType, RoutingInputSlotBase> CurrentRoutes { get; }
}
public abstract class RoutingOutputSlotBase : IRoutingOutputSlot
{
public abstract string RxDeviceKey { get; }
public abstract Dictionary<eRoutingSignalType, RoutingInputSlotBase> CurrentRoutes { get; }
public abstract int SlotNumber { get; }
public abstract eRoutingSignalType SupportedSignalTypes { get; }
public abstract string Name { get; }
public abstract string Key { get; }
public abstract event EventHandler OutputSlotChanged;
}
Dictionary<eRoutingSignalType, IRoutingInputSlot> CurrentRoutes { get; }
}
}

View File

@@ -0,0 +1,14 @@
using PepperDash.Essentials.Room.Config;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace PepperDash.Essentials.Devices.Common.Room
{
public interface IEssentialsRoomPropertiesConfig
{
EssentialsRoomPropertiesConfig PropertiesConfig { get; }
}
}

View File

@@ -11,7 +11,7 @@ using System.Threading.Tasks;
namespace PepperDash.Essentials.Devices.Common.SoftCodec
{
public class GenericSoftCodec : EssentialsDevice, IRoutingInputsOutputs
public class GenericSoftCodec : EssentialsDevice, IRoutingSource, IRoutingSink
{
public GenericSoftCodec(string key, string name, GenericSoftCodecProperties props) : base(key, name)
{
@@ -48,6 +48,32 @@ namespace PepperDash.Essentials.Devices.Common.SoftCodec
public RoutingPortCollection<RoutingInputPort> InputPorts { get; private set; }
public RoutingPortCollection<RoutingOutputPort> OutputPorts { get; private set; }
public string CurrentSourceInfoKey { get ; set; }
public SourceListItem CurrentSourceInfo
{
get
{
return _CurrentSourceInfo;
}
set
{
if (value == _CurrentSourceInfo) return;
var handler = CurrentSourceChange;
if (handler != null)
handler(_CurrentSourceInfo, ChangeType.WillChange);
_CurrentSourceInfo = value;
if (handler != null)
handler(_CurrentSourceInfo, ChangeType.DidChange);
}
}
SourceListItem _CurrentSourceInfo;
public event SourceInfoChangeHandler CurrentSourceChange;
}
public class GenericSoftCodecProperties

View File

@@ -0,0 +1,12 @@
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
{
public interface IVideoCodecUiExtensionsHandler : IVideoCodecUiExtensionsWebViewDisplayAction, IVideoCodecUiExtensionsClickedEvent
{
}
public interface IVideoCodecUiExtensions
{
IVideoCodecUiExtensionsHandler VideoCodecUiExtensionsHandler { get; set; }
}
}

View File

@@ -0,0 +1,35 @@
using System;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
{
public interface IVideoCodecUiExtensionsWebViewDisplayAction
{
Action<UiWebViewDisplayActionArgs> UiWebViewDisplayAction { get; set; }
}
public class UiWebViewDisplayActionArgs
{
/// <summary>
/// Required <0 - 2000> The URL of the web page.
/// </summary>
public string Url { get; set; }
/// <summary>
/// Fullscreen, Modal Full screen: Display the web page on the entire screen.Modal: Display the web page in a window.
/// </summary>
public string Mode { get; set; }
/// <summary>
/// <0 - 255> The title of the web page.
/// </summary>
public string Title { get; set; }
/// <summary>
/// <0 - 8192> An HTTP header field.You can add up 15 Header parameters in one command, each holding one HTTP header field.
/// </summary>
public string Header { get; set; }
}
}

View File

@@ -0,0 +1,25 @@
using System;
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Interfaces
{
public interface IVideoCodecUiExtensionsClickedEvent
{
event EventHandler<UiExtensionsClickedEventArgs> UiExtensionsClickedEvent;
}
public class UiExtensionsClickedEventArgs : EventArgs
{
public bool Clicked { get; set; }
public string Id { get; set; }
public UiExtensionsClickedEventArgs(bool clicked, string id)
{
Clicked = clicked;
Id = id;
}
public UiExtensionsClickedEventArgs()
{
}
}
}