mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-02-15 12:44:58 +00:00
Add logic to subscribe to PhoneBookSyncState during the CustomActivate method within CiscoSparkCodec class
This commit is contained in:
@@ -464,7 +464,7 @@ namespace PepperDash.Essentials.Core.Bridges.JoinMaps
|
|||||||
new JoinMetadata
|
new JoinMetadata
|
||||||
{
|
{
|
||||||
Description = "Go to Directory Root",
|
Description = "Go to Directory Root",
|
||||||
JoinCapabilities = eJoinCapabilities.ToSIMPL,
|
JoinCapabilities = eJoinCapabilities.FromSIMPL,
|
||||||
JoinType = eJoinType.Digital
|
JoinType = eJoinType.Digital
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|||||||
@@ -590,9 +590,16 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
CrestronConsole.AddNewConsoleCommand(GetPhonebook, "GetCodecPhonebook", "Triggers a refresh of the codec phonebook", ConsoleAccessLevelEnum.AccessOperator);
|
CrestronConsole.AddNewConsoleCommand(GetPhonebook, "GetCodecPhonebook", "Triggers a refresh of the codec phonebook", ConsoleAccessLevelEnum.AccessOperator);
|
||||||
CrestronConsole.AddNewConsoleCommand(GetBookings, "GetCodecBookings", "Triggers a refresh of the booking data for today", ConsoleAccessLevelEnum.AccessOperator);
|
CrestronConsole.AddNewConsoleCommand(GetBookings, "GetCodecBookings", "Triggers a refresh of the booking data for today", ConsoleAccessLevelEnum.AccessOperator);
|
||||||
|
|
||||||
|
PhonebookSyncState.InitialSyncCompleted += new EventHandler<EventArgs>(PhonebookSyncState_InitialSyncCompleted);
|
||||||
|
|
||||||
return base.CustomActivate();
|
return base.CustomActivate();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void PhonebookSyncState_InitialSyncCompleted(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
OnDirectoryResultReturned(DirectoryRoot);
|
||||||
|
}
|
||||||
|
|
||||||
#region Overrides of Device
|
#region Overrides of Device
|
||||||
|
|
||||||
public override void Initialize()
|
public override void Initialize()
|
||||||
@@ -1144,6 +1151,7 @@ namespace PepperDash.Essentials.Devices.Common.VideoCodec.Cisco
|
|||||||
var handler = DirectoryResultReturned;
|
var handler = DirectoryResultReturned;
|
||||||
if (handler != null)
|
if (handler != null)
|
||||||
{
|
{
|
||||||
|
Debug.Console(2, this, "Directory result returned");
|
||||||
handler(this, new DirectoryEventArgs()
|
handler(this, new DirectoryEventArgs()
|
||||||
{
|
{
|
||||||
Directory = result,
|
Directory = result,
|
||||||
|
|||||||
@@ -939,8 +939,6 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
codec.CurrentDirectoryResultIsNotDirectoryRoot.LinkComplementInputSig(
|
codec.CurrentDirectoryResultIsNotDirectoryRoot.LinkComplementInputSig(
|
||||||
trilist.BooleanInput[joinMap.DirectoryIsRoot.JoinNumber]);
|
trilist.BooleanInput[joinMap.DirectoryIsRoot.JoinNumber]);
|
||||||
|
|
||||||
trilist.SetSigFalseAction(joinMap.DirectoryRoot.JoinNumber, codec.SetCurrentDirectoryToRoot);
|
|
||||||
|
|
||||||
trilist.SetStringSigAction(joinMap.DirectorySearchString.JoinNumber, codec.SearchDirectory);
|
trilist.SetStringSigAction(joinMap.DirectorySearchString.JoinNumber, codec.SearchDirectory);
|
||||||
|
|
||||||
trilist.SetUShortSigAction(joinMap.DirectorySelectRow.JoinNumber, (i) => SelectDirectoryEntry(codec, i, trilist, joinMap));
|
trilist.SetUShortSigAction(joinMap.DirectorySelectRow.JoinNumber, (i) => SelectDirectoryEntry(codec, i, trilist, joinMap));
|
||||||
@@ -951,8 +949,25 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
|
|
||||||
trilist.SetSigFalseAction(joinMap.DirectoryFolderBack.JoinNumber, codec.GetDirectoryParentFolderContents);
|
trilist.SetSigFalseAction(joinMap.DirectoryFolderBack.JoinNumber, codec.GetDirectoryParentFolderContents);
|
||||||
|
|
||||||
|
if (codec.DirectoryRoot != null)
|
||||||
|
{
|
||||||
|
trilist.SetUshort(joinMap.DirectoryRowCount.JoinNumber, (ushort)codec.DirectoryRoot.CurrentDirectoryResults.Count);
|
||||||
|
|
||||||
|
var clearBytes = XSigHelpers.ClearOutputs();
|
||||||
|
|
||||||
|
trilist.SetString(joinMap.DirectoryEntries.JoinNumber,
|
||||||
|
Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length));
|
||||||
|
var directoryXSig = UpdateDirectoryXSig(codec.DirectoryRoot, !codec.CurrentDirectoryResultIsNotDirectoryRoot.BoolValue);
|
||||||
|
|
||||||
|
Debug.Console(2, this, "Directory XSig Length: {0}", directoryXSig.Length);
|
||||||
|
|
||||||
|
trilist.SetString(joinMap.DirectoryEntries.JoinNumber, directoryXSig);
|
||||||
|
}
|
||||||
|
|
||||||
codec.DirectoryResultReturned += (sender, args) =>
|
codec.DirectoryResultReturned += (sender, args) =>
|
||||||
{
|
{
|
||||||
|
Debug.Console(2, this, "CiscoLinkToApi > DirectoryResultReturnedHandler");
|
||||||
|
|
||||||
trilist.SetUshort(joinMap.DirectoryRowCount.JoinNumber, (ushort)args.Directory.CurrentDirectoryResults.Count);
|
trilist.SetUshort(joinMap.DirectoryRowCount.JoinNumber, (ushort)args.Directory.CurrentDirectoryResults.Count);
|
||||||
|
|
||||||
var clearBytes = XSigHelpers.ClearOutputs();
|
var clearBytes = XSigHelpers.ClearOutputs();
|
||||||
@@ -961,6 +976,8 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length));
|
Encoding.GetEncoding(XSigEncoding).GetString(clearBytes, 0, clearBytes.Length));
|
||||||
var directoryXSig = UpdateDirectoryXSig(args.Directory, !codec.CurrentDirectoryResultIsNotDirectoryRoot.BoolValue);
|
var directoryXSig = UpdateDirectoryXSig(args.Directory, !codec.CurrentDirectoryResultIsNotDirectoryRoot.BoolValue);
|
||||||
|
|
||||||
|
Debug.Console(2, this, "Directory XSig Length: {0}", directoryXSig.Length);
|
||||||
|
|
||||||
trilist.SetString(joinMap.DirectoryEntries.JoinNumber, directoryXSig);
|
trilist.SetString(joinMap.DirectoryEntries.JoinNumber, directoryXSig);
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
@@ -1068,10 +1085,14 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
var contactIndex = 1;
|
var contactIndex = 1;
|
||||||
var tokenArray = new XSigToken[directory.CurrentDirectoryResults.Count];
|
var tokenArray = new XSigToken[directory.CurrentDirectoryResults.Count];
|
||||||
|
|
||||||
|
Debug.Console(2, this, "Is root {0} Directory Count: {1}", isRoot, directory.CurrentDirectoryResults.Count);
|
||||||
|
|
||||||
foreach (var entry in directory.CurrentDirectoryResults)
|
foreach (var entry in directory.CurrentDirectoryResults)
|
||||||
{
|
{
|
||||||
var arrayIndex = contactIndex - 1;
|
var arrayIndex = contactIndex - 1;
|
||||||
|
|
||||||
|
Debug.Console(2, this, "Entry Name: {0}, Folder ID: {1}", entry.Name, entry.FolderId);
|
||||||
|
|
||||||
if (entry is DirectoryFolder && entry.ParentFolderId == "root")
|
if (entry is DirectoryFolder && entry.ParentFolderId == "root")
|
||||||
{
|
{
|
||||||
tokenArray[arrayIndex] = new XSigSerialToken(contactIndex, String.Format("[+] {0}", entry.Name));
|
tokenArray[arrayIndex] = new XSigSerialToken(contactIndex, String.Format("[+] {0}", entry.Name));
|
||||||
@@ -1081,7 +1102,11 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (isRoot && String.IsNullOrEmpty(entry.FolderId)) continue;
|
//if (isRoot && String.IsNullOrEmpty(entry.FolderId)) { continue; }
|
||||||
|
//else
|
||||||
|
//{
|
||||||
|
// Debug.Console(2, this, "Skipping Entry");
|
||||||
|
//}
|
||||||
|
|
||||||
tokenArray[arrayIndex] = new XSigSerialToken(contactIndex, entry.Name);
|
tokenArray[arrayIndex] = new XSigSerialToken(contactIndex, entry.Name);
|
||||||
|
|
||||||
@@ -1628,20 +1653,31 @@ ScreenIndexIsPinnedTo: {8} (a{17})
|
|||||||
// Update the call history joins
|
// Update the call history joins
|
||||||
var maxItems = joinMap.RecentCallNamesStart.JoinSpan;
|
var maxItems = joinMap.RecentCallNamesStart.JoinSpan;
|
||||||
|
|
||||||
uint i = 0;
|
// Create history
|
||||||
foreach(var item in codec.CallHistory.RecentCalls)
|
uint index = 0;
|
||||||
|
for (uint i = 0; i < maxItems && i < codec.CallHistory.RecentCalls.Count; i++)
|
||||||
{
|
{
|
||||||
trilist.SetString(joinMap.RecentCallNamesStart.JoinNumber + i, item.Name);
|
trilist.SetString(joinMap.RecentCallNamesStart.JoinNumber + i, codec.CallHistory.RecentCalls[(int)i].Name);
|
||||||
trilist.SetString(joinMap.RecentCallTimesStart.JoinNumber + i, item.StartTime.ToShortTimeString());
|
trilist.SetString(joinMap.RecentCallTimesStart.JoinNumber + i, codec.CallHistory.RecentCalls[(int)i].StartTime.ToShortTimeString());
|
||||||
trilist.SetUshort(joinMap.RecentCallOccurrenceType.JoinNumber + i, (ushort)item.OccurrenceType);
|
trilist.SetUshort(joinMap.RecentCallOccurrenceType.JoinNumber + i, (ushort)codec.CallHistory.RecentCalls[(int)i].OccurrenceType);
|
||||||
i++;
|
//i++;
|
||||||
|
index = i;
|
||||||
}
|
}
|
||||||
|
|
||||||
for (uint index = i; i < maxItems; index++)
|
//foreach(var item in codec.CallHistory.RecentCalls)
|
||||||
|
//{
|
||||||
|
// trilist.SetString(joinMap.RecentCallNamesStart.JoinNumber + i, item.Name);
|
||||||
|
// trilist.SetString(joinMap.RecentCallTimesStart.JoinNumber + i, item.StartTime.ToShortTimeString());
|
||||||
|
// trilist.SetUshort(joinMap.RecentCallOccurrenceType.JoinNumber + i, (ushort)item.OccurrenceType);
|
||||||
|
// i++;
|
||||||
|
//}
|
||||||
|
|
||||||
|
// Clears existing items
|
||||||
|
for (uint j = index; j < maxItems; j++)
|
||||||
{
|
{
|
||||||
trilist.SetString(joinMap.RecentCallNamesStart.JoinNumber + index, string.Empty);
|
trilist.SetString(joinMap.RecentCallNamesStart.JoinNumber + j, string.Empty);
|
||||||
trilist.SetString(joinMap.RecentCallTimesStart.JoinNumber + index, string.Empty);
|
trilist.SetString(joinMap.RecentCallTimesStart.JoinNumber + j, string.Empty);
|
||||||
trilist.SetUshort(joinMap.RecentCallOccurrenceType.JoinNumber + index, 0);
|
trilist.SetUshort(joinMap.RecentCallOccurrenceType.JoinNumber + j, 0);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user