mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +00:00
Added command for CiscoCodec methods implemented by standard interfaces. Renamed data class files.
This commit is contained in:
@@ -128,10 +128,11 @@
|
|||||||
<Compile Include="Properties\AssemblyInfo.cs" />
|
<Compile Include="Properties\AssemblyInfo.cs" />
|
||||||
<Compile Include="Streaming\Roku.cs" />
|
<Compile Include="Streaming\Roku.cs" />
|
||||||
<Compile Include="VC\CiscoCodec\CiscoCodec.cs" />
|
<Compile Include="VC\CiscoCodec\CiscoCodec.cs" />
|
||||||
<Compile Include="VC\CiscoCodec\Configuration.cs" />
|
<Compile Include="VC\CiscoCodec\xConfiguration.cs" />
|
||||||
|
<Compile Include="VC\CiscoCodec\xEvent.cs" />
|
||||||
<Compile Include="VC\CiscoCodec\HttpApiServer.cs" />
|
<Compile Include="VC\CiscoCodec\HttpApiServer.cs" />
|
||||||
<Compile Include="VC\MockVC\MockVC.cs" />
|
<Compile Include="VC\MockVC\MockVC.cs" />
|
||||||
<Compile Include="VC\CiscoCodec\Status.cs" />
|
<Compile Include="VC\CiscoCodec\xStatus.cs" />
|
||||||
<Compile Include="VC\VideoCodecBase.cs" />
|
<Compile Include="VC\VideoCodecBase.cs" />
|
||||||
<None Include="Properties\ControlSystem.cfg" />
|
<None Include="Properties\ControlSystem.cfg" />
|
||||||
</ItemGroup>
|
</ItemGroup>
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ using Cisco_SX80_Corporate_Phone_Book;
|
|||||||
|
|
||||||
using PepperDash.Core;
|
using PepperDash.Core;
|
||||||
using PepperDash.Essentials.Core;
|
using PepperDash.Essentials.Core;
|
||||||
|
using PepperDash.Essentials.Core.Routing;
|
||||||
|
|
||||||
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||||
{
|
{
|
||||||
@@ -33,11 +34,32 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
private CiscoCodecStatus.RootObject CodecStatus;
|
private CiscoCodecStatus.RootObject CodecStatus;
|
||||||
|
|
||||||
|
private CiscoCodecEvents.RootObject CodecEvent;
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets and returns the scaled volume of the codec
|
||||||
|
/// </summary>
|
||||||
protected override Func<int> VolumeLevelFeedbackFunc
|
protected override Func<int> VolumeLevelFeedbackFunc
|
||||||
{
|
{
|
||||||
get
|
get
|
||||||
{
|
{
|
||||||
return () => CodecStatus.Status.Audio.Volume.IntValue;
|
return () => CrestronEnvironment.ScaleWithLimits(CodecStatus.Status.Audio.Volume.IntValue, 100, 0, 65535, 0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected override Func<bool> PrivacyModeFeedbackFunc
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return () => CodecStatus.Status.Audio.Microphones.Mute.BoolValue;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
protected Func<bool> StandbyStateFeedbackFunc
|
||||||
|
{
|
||||||
|
get
|
||||||
|
{
|
||||||
|
return () => CodecStatus.Status.Standby.State.BoolValue;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -63,6 +85,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
string Delimiter = "\r\n";
|
string Delimiter = "\r\n";
|
||||||
|
|
||||||
|
int PresentationSource;
|
||||||
|
|
||||||
// Constructor for IBasicCommunication
|
// Constructor for IBasicCommunication
|
||||||
public CiscoCodec(string key, string name, IBasicCommunication comm, int serverPort)
|
public CiscoCodec(string key, string name, IBasicCommunication comm, int serverPort)
|
||||||
: base(key, name)
|
: base(key, name)
|
||||||
@@ -71,16 +95,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
SyncState = new CodecSyncState(key + "--sync");
|
SyncState = new CodecSyncState(key + "--sync");
|
||||||
|
|
||||||
PortGather = new CommunicationGather(Communication, "\r\n");
|
PortGather = new CommunicationGather(Communication, Delimiter);
|
||||||
PortGather.IncludeDelimiter = true;
|
|
||||||
PortGather.LineReceived += this.Port_LineReceived;
|
PortGather.LineReceived += this.Port_LineReceived;
|
||||||
|
|
||||||
//JsonGather = new CommunicationGather(Communication, "}\r\n\r\n");
|
|
||||||
//JsonGather.IncludeDelimiter = true;
|
|
||||||
//JsonGather.LineReceived += new EventHandler<GenericCommMethodReceiveTextArgs>(JsonGather_LineReceived);
|
|
||||||
|
|
||||||
Communication.TextReceived += new EventHandler<GenericCommMethodReceiveTextArgs>(Communication_TextReceived);
|
|
||||||
|
|
||||||
//ServerPort = serverPort;
|
//ServerPort = serverPort;
|
||||||
|
|
||||||
CodecObtp = new CiscoOneButtonToPush();
|
CodecObtp = new CiscoOneButtonToPush();
|
||||||
@@ -91,6 +108,8 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
CodecStatus = new CiscoCodecStatus.RootObject();
|
CodecStatus = new CiscoCodecStatus.RootObject();
|
||||||
|
|
||||||
|
CodecEvent = new CiscoCodecEvents.RootObject();
|
||||||
|
|
||||||
CodecStatus.Status.Audio.Volume.ValueChangedAction = VolumeLevelFeedback.FireUpdate;
|
CodecStatus.Status.Audio.Volume.ValueChangedAction = VolumeLevelFeedback.FireUpdate;
|
||||||
|
|
||||||
//Client = new HttpsClient();
|
//Client = new HttpsClient();
|
||||||
@@ -112,7 +131,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
{
|
{
|
||||||
socket.ConnectionChange += new EventHandler<GenericSocketStatusChageEventArgs>(socket_ConnectionChange);
|
socket.ConnectionChange += new EventHandler<GenericSocketStatusChageEventArgs>(socket_ConnectionChange);
|
||||||
}
|
}
|
||||||
Debug.Console(1, this, "Starting Cisco API Server");
|
|
||||||
|
InputPorts.Add(new RoutingInputPort(RoutingPortNames.HdmiIn1, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, new Action(SelectPresentationSource(1)), this));
|
||||||
|
InputPorts.Add(new RoutingInputPort(RoutingPortNames.HdmiIn2, eRoutingSignalType.AudioVideo, eRoutingPortConnectionType.Hdmi, new Action(SelectPresentationSource(2)), this));
|
||||||
|
|
||||||
|
//Debug.Console(1, this, "Starting Cisco API Server");
|
||||||
|
|
||||||
//Server.Start(ServerPort);
|
//Server.Start(ServerPort);
|
||||||
|
|
||||||
@@ -217,20 +240,20 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
if (!SyncState.InitialSyncComplete)
|
if (!SyncState.InitialSyncComplete)
|
||||||
{
|
{
|
||||||
switch (args.Text.Trim())
|
switch (args.Text.Trim().ToLower()) // remove the whitespace
|
||||||
{
|
{
|
||||||
case "*r Login successful":
|
case "*r login successful":
|
||||||
{
|
{
|
||||||
SendText("xPreferences outputmode json");
|
SendText("xPreferences outputmode json");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "xPreferences outputmode json":
|
case "xpreferences outputmode json":
|
||||||
{
|
{
|
||||||
if(!SyncState.InitialStatusMessageWasReceived)
|
if(!SyncState.InitialStatusMessageWasReceived)
|
||||||
SendText("xStatus");
|
SendText("xStatus");
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
case "xFeedback register":
|
case "xfeedback register":
|
||||||
{
|
{
|
||||||
SyncState.FeedbackRegistered();
|
SyncState.FeedbackRegistered();
|
||||||
break;
|
break;
|
||||||
@@ -239,27 +262,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void JsonGather_LineReceived(object sender, GenericCommMethodReceiveTextArgs e)
|
|
||||||
{
|
|
||||||
//Debug.Console(1, this, "JSON repsonse length: {0}", e.Text.Length);
|
|
||||||
|
|
||||||
var startPos = e.Text.IndexOf("{");
|
|
||||||
var json = e.Text.Substring(startPos, e.Text.Length - startPos);
|
|
||||||
|
|
||||||
//Debug.Console(1, this, "First curly brace found at position {0}. Substring will start at position {1} and continue for {2} characters", startPos, startPos, e.Text.Length - startPos);
|
|
||||||
|
|
||||||
Debug.Console(1, this, "JSON received:\n{0}", json);
|
|
||||||
|
|
||||||
|
|
||||||
DeserializeResponse(json);
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SendText(string command)
|
public void SendText(string command)
|
||||||
{
|
{
|
||||||
Debug.Console(1, this, "Sending: '{0}'", command);
|
Debug.Console(1, this, "Sending: '{0}'", command);
|
||||||
Communication.SendText(command + "\x0d\x0a");
|
Communication.SendText(command + Delimiter);
|
||||||
}
|
}
|
||||||
|
|
||||||
//private void StartHttpsSession()
|
//private void StartHttpsSession()
|
||||||
@@ -458,6 +464,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
else if (response.IndexOf("\"Event\":{") > -1)
|
||||||
|
{
|
||||||
|
JsonConvert.PopulateObject(response, CodecEvent);
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
catch (Exception ex)
|
catch (Exception ex)
|
||||||
@@ -466,14 +476,9 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void Communication_TextReceived(object sender, GenericCommMethodReceiveTextArgs e)
|
|
||||||
{
|
|
||||||
//CodecObtp.
|
|
||||||
}
|
|
||||||
|
|
||||||
public override void ExecuteSwitch(object selector)
|
public override void ExecuteSwitch(object selector)
|
||||||
{
|
{
|
||||||
throw new NotImplementedException();
|
(selector as Action)();
|
||||||
}
|
}
|
||||||
|
|
||||||
protected override Func<bool> InCallFeedbackFunc { get { return () => false; } }
|
protected override Func<bool> InCallFeedbackFunc { get { return () => false; } }
|
||||||
@@ -486,40 +491,66 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
protected override Func<bool> PrivacyModeFeedbackFunc { get { return () => false; } }
|
protected override Func<bool> PrivacyModeFeedbackFunc { get { return () => false; } }
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Gets the first CallId or returns null
|
||||||
|
/// </summary>
|
||||||
|
/// <returns></returns>
|
||||||
|
private string GetCallId()
|
||||||
|
{
|
||||||
|
string callId = null;
|
||||||
|
|
||||||
|
if (CodecStatus.Status.Call.Count > 0)
|
||||||
|
callId = CodecStatus.Status.Call[0].id;
|
||||||
|
|
||||||
|
return callId;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public override void Dial(string s)
|
public override void Dial(string s)
|
||||||
{
|
{
|
||||||
SendText(string.Format("xCommand Dial Number: {0}", s));
|
SendText(string.Format("xCommand Dial Number: \"{0}\"", s));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void DialBookingId(string s)
|
||||||
|
{
|
||||||
|
SendText(string.Format("xCommand Dial BookingId: {0}", s));
|
||||||
|
}
|
||||||
|
|
||||||
public override void EndCall()
|
public override void EndCall()
|
||||||
{
|
{
|
||||||
//SendText(string.Format("xCommand Accept CallId: {0}", CodecStatus.Status.));
|
SendText(string.Format("xCommand Call Disconnect CallId: {0}", GetCallId()));
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void AcceptCall()
|
public override void AcceptCall()
|
||||||
{
|
{
|
||||||
|
SendText("xCommand Call Accept");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void RejectCall()
|
public override void RejectCall()
|
||||||
{
|
{
|
||||||
|
SendText("xCommand Call Reject");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void SendDtmf(string s)
|
public override void SendDtmf(string s)
|
||||||
{
|
{
|
||||||
|
SendText(string.Format("xCommand Call DTMFSend CallId: {0} DTMFString: \"{1}\"", GetCallId(), s));
|
||||||
|
}
|
||||||
|
|
||||||
|
public void SelectPresentationSource(int source)
|
||||||
|
{
|
||||||
|
PresentationSource = source;
|
||||||
|
|
||||||
|
StartSharing();
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void StartSharing()
|
public override void StartSharing()
|
||||||
{
|
{
|
||||||
|
SendText(string.Format("xCommand Presentation Start PresentationSource: {0}", PresentationSource));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void StopSharing()
|
public override void StopSharing()
|
||||||
{
|
{
|
||||||
|
SendText(string.Format("xCommand Presentation Stop PresentationSource: {0}", PresentationSource));
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void ReceiveMuteOff()
|
public override void ReceiveMuteOff()
|
||||||
@@ -564,17 +595,92 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
|
|
||||||
public override void PrivacyModeOn()
|
public override void PrivacyModeOn()
|
||||||
{
|
{
|
||||||
|
SendText("xCommand Audio Microphones Mute");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void PrivacyModeOff()
|
public override void PrivacyModeOff()
|
||||||
{
|
{
|
||||||
|
SendText("xCommand Audio Microphones Unmute");
|
||||||
}
|
}
|
||||||
|
|
||||||
public override void PrivacyModeToggle()
|
public override void PrivacyModeToggle()
|
||||||
{
|
{
|
||||||
|
SendText("xCommand Audio Microphones ToggleMute");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void MuteOff()
|
||||||
|
{
|
||||||
|
SendText("xCommand Audio Volume Unmute");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void MuteOn()
|
||||||
|
{
|
||||||
|
SendText("xCommand Audio Volume Mute");
|
||||||
|
}
|
||||||
|
|
||||||
|
public override void MuteToggle()
|
||||||
|
{
|
||||||
|
SendText("xCommand Audio Volume ToggleMute");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Increments the voluem
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pressRelease"></param>
|
||||||
|
public override void VolumeUp(bool pressRelease)
|
||||||
|
{
|
||||||
|
SendText("xCommand Audio Volume Increase");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Decrements the volume
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="pressRelease"></param>
|
||||||
|
public override void VolumeDown(bool pressRelease)
|
||||||
|
{
|
||||||
|
SendText("xCommand Audio Volume Decrease");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Scales the level and sets the codec to the specified level within its range
|
||||||
|
/// </summary>
|
||||||
|
/// <param name="level">level from slider (0-65535 range)</param>
|
||||||
|
public override void SetVolume(ushort level)
|
||||||
|
{
|
||||||
|
var scaledLevel = CrestronEnvironment.ScaleWithLimits(level, 65535, 0, 100, 0);
|
||||||
|
SendText(string.Format("xCommand Audio Volume Set Level: {0}", scaledLevel));
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Recalls the default volume on the codec
|
||||||
|
/// </summary>
|
||||||
|
public void VolumeSetToDefault()
|
||||||
|
{
|
||||||
|
SendText("xCommand Audio Volume SetToDefault");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Puts the codec in standby mode
|
||||||
|
/// </summary>
|
||||||
|
public void StandbyActivate()
|
||||||
|
{
|
||||||
|
SendText("xCommand Standby Activate");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Wakes the codec from standby
|
||||||
|
/// </summary>
|
||||||
|
public void StandbyDeactivate()
|
||||||
|
{
|
||||||
|
SendText("xCommand Standby Deactivate");
|
||||||
|
}
|
||||||
|
|
||||||
|
/// <summary>
|
||||||
|
/// Reboots the codec
|
||||||
|
/// </summary>
|
||||||
|
public void Reboot()
|
||||||
|
{
|
||||||
|
SendText("xCommand SystemUnit Boot Action: Restart");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -0,0 +1,138 @@
|
|||||||
|
using System;
|
||||||
|
using System.Collections.Generic;
|
||||||
|
using System.Linq;
|
||||||
|
using System.Text;
|
||||||
|
using Crestron.SimplSharp;
|
||||||
|
|
||||||
|
namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
||||||
|
{
|
||||||
|
public class CiscoCodecEvents
|
||||||
|
{
|
||||||
|
public class CauseValue
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CauseType
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CauseString
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class OrigCallDirection
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RemoteURI
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DisplayName
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CallId
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CauseCode
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CauseOrigin
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Protocol
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Duration
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CallType
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CallRate
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Encryption
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RequestedURI
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PeopleCountAverage
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CallDisconnect
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public CauseValue CauseValue { get; set; }
|
||||||
|
public CauseType CauseType { get; set; }
|
||||||
|
public CauseString CauseString { get; set; }
|
||||||
|
public OrigCallDirection OrigCallDirection { get; set; }
|
||||||
|
public RemoteURI RemoteURI { get; set; }
|
||||||
|
public DisplayName DisplayName { get; set; }
|
||||||
|
public CallId CallId { get; set; }
|
||||||
|
public CauseCode CauseCode { get; set; }
|
||||||
|
public CauseOrigin CauseOrigin { get; set; }
|
||||||
|
public Protocol Protocol { get; set; }
|
||||||
|
public Duration Duration { get; set; }
|
||||||
|
public CallType CallType { get; set; }
|
||||||
|
public CallRate CallRate { get; set; }
|
||||||
|
public Encryption Encryption { get; set; }
|
||||||
|
public RequestedURI RequestedURI { get; set; }
|
||||||
|
public PeopleCountAverage PeopleCountAverage { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Event
|
||||||
|
{
|
||||||
|
public CallDisconnect CallDisconnect { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RootObject
|
||||||
|
{
|
||||||
|
public Event Event { get; set; }
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -1072,14 +1072,29 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
public Persistency Persistency { get; set; }
|
public Persistency Persistency { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
public class State
|
public class State : ValueProperty
|
||||||
{
|
{
|
||||||
public string Value { get; set; }
|
public bool BoolValue { get; private set; }
|
||||||
|
|
||||||
|
public string Value // Valid values are Standby/EnteringStandby/Halfwake/Off
|
||||||
|
{
|
||||||
|
set
|
||||||
|
{
|
||||||
|
// If the incoming value is "Of" it sets the BoolValue true, otherwise sets it false
|
||||||
|
BoolValue = value == "Off";
|
||||||
|
OnValueChanged();
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class Standby
|
public class Standby
|
||||||
{
|
{
|
||||||
public State State { get; set; }
|
public State State { get; set; }
|
||||||
|
|
||||||
|
public Standby()
|
||||||
|
{
|
||||||
|
State = new State();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public class CompatibilityLevel
|
public class CompatibilityLevel
|
||||||
@@ -1484,10 +1499,118 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
public Selfview Selfview { get; set; }
|
public Selfview Selfview { get; set; }
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public class AnswerState
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CallType
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class CallbackNumber
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DeviceType
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Direction
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class DisplayName
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Duration
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Type
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Encryption
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public Type Type { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class FacilityServiceId
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class HoldReason
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class PlacedOnHold
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Protocol
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class ReceiveCallRate
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class RemoteNumber
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Status2
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class TransmitCallRate
|
||||||
|
{
|
||||||
|
public string Value { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
|
public class Call
|
||||||
|
{
|
||||||
|
public string id { get; set; }
|
||||||
|
public AnswerState AnswerState { get; set; }
|
||||||
|
public CallType CallType { get; set; }
|
||||||
|
public CallbackNumber CallbackNumber { get; set; }
|
||||||
|
public DeviceType DeviceType { get; set; }
|
||||||
|
public Direction Direction { get; set; }
|
||||||
|
public DisplayName DisplayName { get; set; }
|
||||||
|
public Duration Duration { get; set; }
|
||||||
|
public Encryption Encryption { get; set; }
|
||||||
|
public FacilityServiceId FacilityServiceId { get; set; }
|
||||||
|
public HoldReason HoldReason { get; set; }
|
||||||
|
public PlacedOnHold PlacedOnHold { get; set; }
|
||||||
|
public Protocol Protocol { get; set; }
|
||||||
|
public ReceiveCallRate ReceiveCallRate { get; set; }
|
||||||
|
public RemoteNumber RemoteNumber { get; set; }
|
||||||
|
public Status2 Status { get; set; }
|
||||||
|
public TransmitCallRate TransmitCallRate { get; set; }
|
||||||
|
}
|
||||||
|
|
||||||
public class Status
|
public class Status
|
||||||
{
|
{
|
||||||
public Audio Audio { get; set; }
|
public Audio Audio { get; set; }
|
||||||
public Bookings Bookings { get; set; }
|
public Bookings Bookings { get; set; }
|
||||||
|
public List<Call> Call { get; set; }
|
||||||
public Cameras Cameras { get; set; }
|
public Cameras Cameras { get; set; }
|
||||||
public Capabilities2 Capabilities { get; set; }
|
public Capabilities2 Capabilities { get; set; }
|
||||||
public Conference2 Conference { get; set; }
|
public Conference2 Conference { get; set; }
|
||||||
@@ -1513,7 +1636,10 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
public Status()
|
public Status()
|
||||||
{
|
{
|
||||||
Audio = new Audio();
|
Audio = new Audio();
|
||||||
|
Call = new List<Call>();
|
||||||
|
Standby = new Standby();
|
||||||
}
|
}
|
||||||
|
#warning Figure out how to flag codec as InCall if Call.Count > 0
|
||||||
}
|
}
|
||||||
|
|
||||||
public class RootObject
|
public class RootObject
|
||||||
@@ -123,20 +123,11 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
|
|
||||||
public BoolFeedback MuteFeedback { get; private set; }
|
public BoolFeedback MuteFeedback { get; private set; }
|
||||||
|
|
||||||
public void MuteOff()
|
public abstract void MuteOff();
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void MuteOn()
|
public abstract void MuteOn();
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void SetVolume(ushort level)
|
public abstract void SetVolume(ushort level);
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public IntFeedback VolumeLevelFeedback { get; private set; }
|
public IntFeedback VolumeLevelFeedback { get; private set; }
|
||||||
|
|
||||||
@@ -144,20 +135,13 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec
|
|||||||
|
|
||||||
#region IBasicVolumeControls Members
|
#region IBasicVolumeControls Members
|
||||||
|
|
||||||
public void MuteToggle()
|
public abstract void MuteToggle();
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
public void VolumeDown(bool pressRelease)
|
public abstract void VolumeDown(bool pressRelease);
|
||||||
{
|
|
||||||
|
|
||||||
}
|
public abstract void VolumeUp(bool pressRelease);
|
||||||
|
|
||||||
public void VolumeUp(bool pressRelease)
|
|
||||||
{
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
#endregion
|
#endregion
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user