Working through little details on ecs-213

This commit is contained in:
Heath Volmer
2017-02-21 09:14:03 -07:00
parent a54498091b
commit 250e50e393
24 changed files with 560 additions and 241 deletions

View File

@@ -62,7 +62,7 @@ namespace PepperDash.Essentials.Fusion
Room.OnFeedback.LinkInputSig(FusionRoom.SystemPowerOn.InputSig);
SourceNameSig = FusionRoom.CreateOffsetStringSig(50, "Source - Name", eSigIoMask.InputSigOnly);
// Don't think we need to get current status of this as nothing should be alive yet.
Room.CurrentSourceInfoChange += new SourceInfoChangeHandler(Room_CurrentSourceInfoChange);
Room.CurrentSingleSourceChange += new SourceInfoChangeHandler(Room_CurrentSourceInfoChange);
FusionRoom.SystemPowerOn.OutputSig.SetSigFalseAction(Room.PowerOnToDefaultOrLastSource);

View File

@@ -12,7 +12,7 @@ namespace PepperDash.Essentials
public class EssentialsHuddleSpaceRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange
{
public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
public event SourceInfoChangeHandler CurrentSourceInfoChange;
public event SourceInfoChangeHandler CurrentSingleSourceChange;
public EssentialsRoomPropertiesConfig Config { get; private set; }
@@ -70,7 +70,7 @@ namespace PepperDash.Essentials
{
if (value == _CurrentSourceInfo) return;
var handler = CurrentSourceInfoChange;
var handler = CurrentSingleSourceChange;
// remove from in-use tracker, if so equipped
if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking)
(_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control");

View File

@@ -12,7 +12,9 @@ namespace PepperDash.Essentials
public class EssentialsPresentationRoom : EssentialsRoomBase, IHasCurrentSourceInfoChange
{
public event EventHandler<VolumeDeviceChangeEventArgs> CurrentVolumeDeviceChange;
public event SourceInfoChangeHandler CurrentSourceInfoChange;
public event SourceInfoChangeHandler CurrentSingleSourceChange;
public event SourceInfoChangeHandler CurrentDisplay1SourceChange;
public event SourceInfoChangeHandler CurrentDisplay2SourceChange;
public EssentialsPresentationRoomPropertiesConfig Config { get; private set; }
@@ -72,33 +74,72 @@ namespace PepperDash.Essentials
IBasicVolumeControls _CurrentAudioDevice;
/// <summary>
/// The SourceListItem last run - containing names and icons
/// The SourceListItem last run - containing names and icons. The complex setter is
/// to add/remove this room to the source's InUseTracking, if it is capable
/// </summary>
public SourceListItem CurrentSourceInfo
public SourceListItem CurrentSingleSourceInfo
{
get { return _CurrentSourceInfo; }
get { return _CurrentSingleSourceInfo; }
private set
{
if (value == _CurrentSourceInfo) return;
if (value == _CurrentSingleSourceInfo) return;
var handler = CurrentSourceInfoChange;
var handler = CurrentSingleSourceChange;
// remove from in-use tracker, if so equipped
if(_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking)
(_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control");
if(_CurrentSingleSourceInfo != null && _CurrentSingleSourceInfo.SourceDevice is IInUseTracking)
(_CurrentSingleSourceInfo.SourceDevice as IInUseTracking).InUseTracker.RemoveUser(this, "control");
if (handler != null)
handler(this, _CurrentSourceInfo, ChangeType.WillChange);
handler(this, _CurrentSingleSourceInfo, ChangeType.WillChange);
_CurrentSourceInfo = value;
_CurrentSingleSourceInfo = value;
// add to in-use tracking
if (_CurrentSourceInfo != null && _CurrentSourceInfo.SourceDevice is IInUseTracking)
(_CurrentSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control");
if (_CurrentSingleSourceInfo != null && _CurrentSingleSourceInfo.SourceDevice is IInUseTracking)
(_CurrentSingleSourceInfo.SourceDevice as IInUseTracking).InUseTracker.AddUser(this, "control");
if (handler != null)
handler(this, _CurrentSourceInfo, ChangeType.DidChange);
handler(this, _CurrentSingleSourceInfo, ChangeType.DidChange);
}
}
SourceListItem _CurrentSourceInfo;
SourceListItem _CurrentSingleSourceInfo;
public SourceListItem Display1SourceInfo
{
get { return _Display1SourceInfo; }
set
{
if (value == _Display1SourceInfo) return;
var handler = CurrentDisplay1SourceChange;
if (handler != null)
handler(this, _Display1SourceInfo, ChangeType.WillChange);
_Display1SourceInfo = value;
if (handler != null)
handler(this, _Display1SourceInfo, ChangeType.DidChange);
}
}
SourceListItem _Display1SourceInfo;
public SourceListItem Display2SourceInfo
{
get { return _Display2SourceInfo; }
set
{
if (value == _Display2SourceInfo) return;
var handler = CurrentDisplay2SourceChange;
if (handler != null)
handler(this, _Display2SourceInfo, ChangeType.WillChange);
_Display2SourceInfo = value;
if (handler != null)
handler(this, _Display2SourceInfo, ChangeType.DidChange);
}
}
SourceListItem _Display2SourceInfo;
/// <summary>
///
@@ -124,8 +165,14 @@ namespace PepperDash.Essentials
DefaultVolumeControls = (defaultAudio as IHasVolumeDevice).VolumeDevice;
OnFeedback = new BoolFeedback(() =>
{ return CurrentSourceInfo != null
&& CurrentSourceInfo.Type == eSourceListItemType.Route; });
{ return (CurrentSingleSourceInfo != null
&& CurrentSingleSourceInfo.Type != eSourceListItemType.Off)
|| (Display1SourceInfo != null
&& Display1SourceInfo.Type != eSourceListItemType.Off)
|| (Display2SourceInfo != null
&& Display2SourceInfo.Type != eSourceListItemType.Off);
});
SourceListKey = "default";
EnablePowerOnToLastSource = true;
}
@@ -143,11 +190,27 @@ namespace PepperDash.Essentials
else
DoVideoRoute("$off", display.Key);
}
CurrentSourceInfo = sourceItem;
Display1SourceInfo = sourceItem;
Display2SourceInfo = sourceItem;
CurrentSingleSourceInfo = sourceItem;
OnFeedback.FireUpdate();
}
public void SourceToDisplay1(SourceListItem sourceItem)
{
DoVideoRoute(sourceItem.SourceKey, Displays[1].Key);
Display1SourceInfo = sourceItem;
OnFeedback.FireUpdate();
}
public void SourceToDisplay2(SourceListItem sourceItem)
{
DoVideoRoute(sourceItem.SourceKey, Displays[2].Key);
Display2SourceInfo = sourceItem;
OnFeedback.FireUpdate();
}
/// <summary>
/// Basic source -> destination routing
/// </summary>
@@ -267,7 +330,7 @@ namespace PepperDash.Essentials
// store the name and UI info for routes
if (item.SourceKey != null)
CurrentSourceInfo = item;
CurrentSingleSourceInfo = item;
// And finally, set the "control". This will trigger event
//CurrentControlDevice = DeviceManager.GetDeviceForKey(item.SourceKey) as Device;

View File

@@ -13,7 +13,7 @@ namespace PepperDash.Essentials
/// </summary>
public interface IHasCurrentSourceInfoChange
{
event SourceInfoChangeHandler CurrentSourceInfoChange;
event SourceInfoChangeHandler CurrentSingleSourceChange;
}

View File

@@ -0,0 +1,35 @@
2/17/2017 8:49:15 AM, Info: Initializing SIMPLSharp Services...
2/17/2017 8:49:15 AM, Info: ProjectInfo successfully initialized.
2/17/2017 9:50:45 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 9:50:46 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 9:50:46 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 9:50:48 AM, Info: Saving project information...
2/17/2017 10:21:23 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 10:21:23 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 10:21:23 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 10:21:25 AM, Info: Saving project information...
2/17/2017 11:43:36 AM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 11:43:37 AM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 11:43:37 AM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 11:43:39 AM, Info: Saving project information...
2/17/2017 12:40:59 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 12:40:59 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 12:40:59 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 12:41:00 PM, Info: Saving project information...
2/17/2017 1:07:27 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 1:07:27 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 1:07:27 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 1:07:29 PM, Info: Saving project information...
2/17/2017 1:23:03 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 1:23:04 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 1:23:04 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 1:23:05 PM, Info: Saving project information...
2/17/2017 1:30:27 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 1:30:27 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 1:30:27 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 1:30:29 PM, Info: Saving project information...
2/17/2017 2:17:11 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/17/2017 2:17:12 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/17/2017 2:17:12 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/17/2017 2:17:13 PM, Info: Saving project information...
2/17/2017 2:31:44 PM, Info: Terminating SIMPLSharp Services

View File

@@ -0,0 +1,20 @@
2/20/2017 11:06:26 AM, Info: Initializing SIMPLSharp Services...
2/20/2017 11:06:27 AM, Info: ProjectInfo successfully initialized.
2/20/2017 12:42:22 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 12:42:23 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 12:42:24 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 12:42:25 PM, Info: Saving project information...
2/20/2017 1:36:30 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 1:36:30 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 1:36:31 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 1:36:32 PM, Info: Saving project information...
2/20/2017 1:42:21 PM, Info: Saving project information...
2/20/2017 1:42:21 PM, Info: Saving project information...
2/20/2017 1:42:21 PM, Info: Saving project information...
2/20/2017 1:46:45 PM, Info: Saving project information...
2/20/2017 1:46:45 PM, Info: Saving project information...
2/20/2017 1:46:45 PM, Info: Saving project information...
2/20/2017 1:46:45 PM, Info: Saving project information...
2/20/2017 1:46:45 PM, Info: Saving project information...
2/20/2017 1:46:45 PM, Info: Saving project information...
2/20/2017 1:46:46 PM, Info: Terminating SIMPLSharp Services

View File

@@ -0,0 +1,43 @@
2/20/2017 1:48:17 PM, Info: Initializing SIMPLSharp Services...
2/20/2017 1:48:17 PM, Info: ProjectInfo successfully initialized.
2/20/2017 3:16:00 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 3:16:01 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 3:16:01 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 3:16:03 PM, Info: Saving project information...
2/20/2017 3:48:35 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 3:48:36 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 3:48:36 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 3:48:37 PM, Info: Saving project information...
2/20/2017 4:03:34 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 4:03:34 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 4:03:35 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 4:03:36 PM, Info: Saving project information...
2/20/2017 4:11:39 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 4:11:40 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 4:11:40 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 4:11:41 PM, Info: Saving project information...
2/20/2017 4:26:20 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 4:26:20 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 4:26:21 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 4:26:22 PM, Info: Saving project information...
2/20/2017 4:43:14 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 4:43:14 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 4:43:14 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 4:43:16 PM, Info: Saving project information...
2/20/2017 4:43:52 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 4:43:52 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 4:43:53 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 4:43:54 PM, Info: Saving project information...
2/20/2017 4:49:15 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 4:49:15 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 4:49:15 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 4:49:17 PM, Info: Saving project information...
2/20/2017 5:01:32 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 5:01:32 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 5:01:32 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 5:01:33 PM, Info: Saving project information...
2/20/2017 5:05:08 PM, Info: Validating assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll...
2/20/2017 5:05:08 PM, Info: Verifying assembly C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.dll
2/20/2017 5:05:08 PM, Info: Creating Archive C:\Users\hvolmer\Desktop\working\essentials\PepperDashEssentials\PepperDashEssentials\bin\PepperDashEssentials.cpz...
2/20/2017 5:05:09 PM, Info: Saving project information...
2/20/2017 5:21:45 PM, Info: Terminating SIMPLSharp Services

View File

@@ -16,13 +16,21 @@ namespace PepperDash.Essentials
{
EssentialsPresentationPanelAvFunctionsDriver Parent;
CTimer SourceSelectedTimer;
/// <summary>
/// Smart Object 3200
/// </summary>
SubpageReferenceList SourcesSrl;
/// <summary>
/// For tracking feedback on last selected
/// </summary>
BoolInputSig LastSelectedSourceSig;
/// <summary>
/// The source that has been selected and is awaiting assignment to a display
/// </summary>
SourceListItem PendingSource;
bool IsSharingModeAdvanced;
public DualDisplaySimpleOrAdvancedRouting(EssentialsPresentationPanelAvFunctionsDriver parent) : base(parent.TriList)
@@ -58,16 +66,16 @@ namespace PepperDash.Essentials
/// <summary>
///
/// </summary>
public override void Hide()
{
TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
if(IsSharingModeAdvanced)
TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = false;
else
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
base.Hide();
}
//public override void Hide()
//{
// TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false;
// TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
// if(IsSharingModeAdvanced)
// TriList.BooleanInput[UIBoolJoin.DualDisplayPageVisible].BoolValue = false;
// else
// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
// base.Hide();
//}
public void SetCurrentRoomFromParent()
{
@@ -103,9 +111,21 @@ namespace PepperDash.Essentials
srcConfig.SourceKey);
continue;
}
var localSrcConfig = srcConfig; // lambda scope below
var localSrcItem = srcConfig; // lambda scope below
var localIndex = i;
SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action<bool>(b =>
{ if (!b) UiSelectSource(localSrcConfig); });
{
if (IsSharingModeAdvanced)
{
if (LastSelectedSourceSig != null)
LastSelectedSourceSig.BoolValue = false;
SourceListButtonPress(localSrcItem);
LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1);
LastSelectedSourceSig.BoolValue = true;
}
else
Parent.CurrentRoom.DoSourceToAllDestinationsRoute(localSrcItem);
});
SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName;
i++;
@@ -115,7 +135,9 @@ namespace PepperDash.Essentials
//item.RegisterForSourceChange(Parent.CurrentRoom);
}
SourcesSrl.Count = (ushort)(i - 1);
Parent.CurrentRoom.CurrentSourceInfoChange += CurrentRoom_CurrentSourceInfoChange;
Parent.CurrentRoom.CurrentSingleSourceChange += CurrentRoom_CurrentSourceInfoChange;
Parent.CurrentRoom.CurrentDisplay1SourceChange += CurrentRoom_CurrentDisplay1SourceChange;
Parent.CurrentRoom.CurrentDisplay2SourceChange += CurrentRoom_CurrentDisplay2SourceChange;
}
}
@@ -124,26 +146,21 @@ namespace PepperDash.Essentials
}
/// <summary>
/// Called from button presses on source, where We can assume we want
/// to change to the proper screen.
/// </summary>
/// <param name="key">The key name of the route to run</param>
void UiSelectSource(SourceListItem sourceItem)
{
if (IsSharingModeAdvanced)
{
SourceListButtonPress(sourceItem);
}
else
Parent.CurrentRoom.DoSourceToAllDestinationsRoute(sourceItem);
}
void CurrentRoom_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
}
void CurrentRoom_CurrentDisplay1SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue = PendingSource.PreferredName;
}
void CurrentRoom_CurrentDisplay2SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue = PendingSource.PreferredName;
}
/// <summary>
///
@@ -164,6 +181,7 @@ namespace PepperDash.Essentials
TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = false;
PendingSource = item;
}
void EnableAppropriateDisplayButtons()
@@ -172,11 +190,15 @@ namespace PepperDash.Essentials
TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = true;
if (LastSelectedSourceSig != null)
LastSelectedSourceSig.BoolValue = false;
}
public void Display1Press()
{
EnableAppropriateDisplayButtons();
Parent.CurrentRoom.SourceToDisplay1(PendingSource);
// Enable end meeting
}
public void Display1AudioPress()
@@ -184,6 +206,7 @@ namespace PepperDash.Essentials
}
public void Display1ControlPress()
{
@@ -192,6 +215,7 @@ namespace PepperDash.Essentials
public void Display2Press()
{
EnableAppropriateDisplayButtons();
Parent.CurrentRoom.SourceToDisplay2(PendingSource);
}
public void Display2AudioPress()

View File

@@ -171,6 +171,9 @@ namespace PepperDash.Essentials
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisible]);
PowerOffTimeout = 30000;
TriList.StringInput[UIStringJoin.StartActivityText].StringValue =
"Tap Share to begin";
}
/// <summary>
@@ -553,7 +556,7 @@ namespace PepperDash.Essentials
_CurrentRoom.OnFeedback.OutputChange -= _CurrentRoom_OnFeedback_OutputChange;
_CurrentRoom.CurrentVolumeDeviceChange -= this._CurrentRoom_CurrentAudioDeviceChange;
ClearAudioDeviceConnections();
_CurrentRoom.CurrentSourceInfoChange -= this._CurrentRoom_SourceInfoChange;
_CurrentRoom.CurrentSingleSourceChange -= this._CurrentRoom_SourceInfoChange;
DisconnectSource(_CurrentRoom.CurrentSourceInfo);
}
_CurrentRoom = room;
@@ -595,7 +598,7 @@ namespace PepperDash.Essentials
_CurrentRoom.OnFeedback.OutputChange += _CurrentRoom_OnFeedback_OutputChange;
_CurrentRoom.CurrentVolumeDeviceChange += _CurrentRoom_CurrentAudioDeviceChange;
RefreshAudioDeviceConnections();
_CurrentRoom.CurrentSourceInfoChange += _CurrentRoom_SourceInfoChange;
_CurrentRoom.CurrentSingleSourceChange += _CurrentRoom_SourceInfoChange;
RefreshSourceInfo();
}
else

View File

@@ -16,6 +16,23 @@ namespace PepperDash.Essentials
/// </summary>
public class EssentialsPresentationPanelAvFunctionsDriver : PanelDriverBase
{
/// <summary>
/// Smart Object 3200
/// </summary>
SubpageReferenceList SourcesSrl;
/// <summary>
/// For tracking feedback on last selected
/// </summary>
BoolInputSig LastSelectedSourceSig;
/// <summary>
/// The source that has been selected and is awaiting assignment to a display
/// </summary>
SourceListItem PendingSource;
bool IsSharingModeAdvanced;
CrestronTouchpanelPropertiesConfig Config;
public enum UiDisplayMode
@@ -102,10 +119,10 @@ namespace PepperDash.Essentials
/// </summary>
PanelDriverBase Parent;
/// <summary>
/// Driver that manages advanced sharing features
/// </summary>
DualDisplaySimpleOrAdvancedRouting DualDisplayUiDriver;
///// <summary>
///// Driver that manages advanced sharing features
///// </summary>
//DualDisplaySimpleOrAdvancedRouting DualDisplayUiDriver;
/// <summary>
/// All children attached to this driver. For hiding and showing as a group.
@@ -114,13 +131,6 @@ namespace PepperDash.Essentials
List<BoolInputSig> CurrentDisplayModeSigsInUse = new List<BoolInputSig>();
//// Important smart objects
///// <summary>
///// Smart Object 3200
///// </summary>
//SubpageReferenceList SourcesSrl;
/// <summary>
/// Smart Object 15022
/// </summary>
@@ -158,10 +168,7 @@ namespace PepperDash.Essentials
Config = config;
Parent = parent;
//SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3);
ActivityFooterSrl = new SubpageReferenceList(TriList, 15022, 3, 3, 3);
DualDisplayUiDriver = new DualDisplaySimpleOrAdvancedRouting(this);
SetupActivityFooterWhenRoomOff();
ShowVolumeGauge = true;
@@ -176,6 +183,22 @@ namespace PepperDash.Essentials
.LinkInputSig(TriList.BooleanInput[UIBoolJoin.VolumeButtonPopupVisible]);
PowerOffTimeout = 30000;
SourcesSrl = new SubpageReferenceList(TriList, 3200, 3, 3, 3);
TriList.StringInput[UIStringJoin.StartActivityText].StringValue =
"Tap an activity to begin";
// Sharing mode things
TriList.SetSigFalseAction(UIBoolJoin.ToggleSharingModePress, ToggleSharingModePressed);
TriList.SetSigFalseAction(UIBoolJoin.Display1AudioButtonPressAndFb, Display1AudioPress);
TriList.SetSigFalseAction(UIBoolJoin.Display1ControlButtonPress, Display1ControlPress);
TriList.SetSigTrueAction(UIBoolJoin.Display1SelectPress, Display1Press);
TriList.SetSigFalseAction(UIBoolJoin.Display2AudioButtonPressAndFb, Display2AudioPress);
TriList.SetSigFalseAction(UIBoolJoin.Display2ControlButtonPress, Display2ControlPress);
TriList.SetSigTrueAction(UIBoolJoin.Display2SelectPress, Display2Press);
}
/// <summary>
@@ -235,20 +258,61 @@ namespace PepperDash.Essentials
base.Show();
}
/// <summary>
///
/// </summary>
public override void Hide()
{
HideAndClearCurrentDisplayModeSigsInUse();
TriList.BooleanInput[UIBoolJoin.TopBarVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.ActivityFooterVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.TapToBeginVisible].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
//TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
var tl = TriList.BooleanInput;
HideAndClearCurrentDisplayModeSigsInUse();
tl[UIBoolJoin.TopBarVisible].BoolValue = false;
tl[UIBoolJoin.ActivityFooterVisible].BoolValue = false;
tl[UIBoolJoin.StartPageVisible].BoolValue = false;
tl[UIBoolJoin.TapToBeginVisible].BoolValue = false;
tl[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false;
tl[UIBoolJoin.StagingPageVisible].BoolValue = false;
if (IsSharingModeAdvanced)
tl[UIBoolJoin.DualDisplayPageVisible].BoolValue = false;
else
tl[UIBoolJoin.SelectASourceVisible].BoolValue = false;
VolumeButtonsPopupFeedback.ClearNow();
CancelPowerOff();
base.Hide();
}
}
/// <summary>
///
/// </summary>
void ShowCurrentSharingMode()
{
var tlb = TriList.BooleanInput;
tlb[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true;
tlb[UIBoolJoin.StagingPageVisible].BoolValue = true;
if (IsSharingModeAdvanced)
{
tlb[UIBoolJoin.DualDisplayPageVisible].BoolValue = true;
TriList.StringInput[UIStringJoin.Display1TitleLabel].StringValue =
(CurrentRoom.Displays[1] as IKeyName).Name;
TriList.StringInput[UIStringJoin.Display2TitleLabel].StringValue =
(CurrentRoom.Displays[2] as IKeyName).Name;
}
else
tlb[UIBoolJoin.SelectASourceVisible].BoolValue = true;
}
/// <summary>
///
/// </summary>
void HideCurrentSharingMode()
{
var tl = TriList.BooleanInput;
tl[UIBoolJoin.ToggleSharingModeVisible].BoolValue = false;
tl[UIBoolJoin.StagingPageVisible].BoolValue = false;
tl[UIBoolJoin.DualDisplayPageVisible].BoolValue = false;
tl[UIBoolJoin.SelectASourceVisible].BoolValue = false;
}
/// <summary>
/// Shows the various "modes" that this driver controls. Presentation, Setup page
@@ -296,51 +360,132 @@ namespace PepperDash.Essentials
}
}
///// <summary>
/////
///// </summary>
//void ToggleSharingModePressed()
//{
// HideSharingMode();
// IsSharingModeAdvanced = !IsSharingModeAdvanced;
// TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced;
// RevealSharingMode();
//}
/// <summary>
///
/// </summary>
void SetupSourceList()
{
// get the source list config and set up the source list
var config = ConfigReader.ConfigObject.SourceLists;
if (config.ContainsKey(CurrentRoom.SourceListKey))
{
var srcList = config[CurrentRoom.SourceListKey]
.Values.ToList().OrderBy(s => s.Order);
// Setup sources list
uint i = 1; // counter for UI list
foreach (var srcConfig in srcList)
{
if (!srcConfig.IncludeInSourceList) // Skip sources marked this way
continue;
///// <summary>
/////
///// </summary>
//void HideSharingMode()
//{
// TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = false;
// if (IsSharingModeAdvanced)
// {
// if (DualDisplayUiDriver != null)
// DualDisplayUiDriver.Hide();
// }
// else
// {
// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = false;
// }
//}
var sourceKey = srcConfig.SourceKey;
var actualSource = DeviceManager.GetDeviceForKey(sourceKey) as Device;
if (actualSource == null)
{
Debug.Console(0, "Cannot assign missing source '{0}' to source UI list",
srcConfig.SourceKey);
continue;
}
var localSrcItem = srcConfig; // lambda scope below
var localIndex = i;
SourcesSrl.GetBoolFeedbackSig(i, 1).UserObject = new Action<bool>(b =>
{
if (IsSharingModeAdvanced)
{
if (LastSelectedSourceSig != null)
LastSelectedSourceSig.BoolValue = false;
SourceListButtonPress(localSrcItem);
LastSelectedSourceSig = SourcesSrl.BoolInputSig(localIndex, 1);
LastSelectedSourceSig.BoolValue = true;
}
else
CurrentRoom.DoSourceToAllDestinationsRoute(localSrcItem);
});
SourcesSrl.StringInputSig(i, 1).StringValue = srcConfig.PreferredName;
i++;
}
var count = (ushort)(i-1);
SourcesSrl.Count = count;
TriList.BooleanInput[UIBoolJoin.StagingPageAdditionalArrowsVisible].BoolValue =
count >= Config.SourcesOverflowCount;
///// <summary>
/////
///// </summary>
//void RevealSharingMode()
//{
// TriList.BooleanInput[UIBoolJoin.StagingPageVisible].BoolValue = true;
// if (IsSharingModeAdvanced)
// {
// if(DualDisplayUiDriver == null)
// DualDisplayUiDriver = new DualDisplaySimpleOrAdvancedRouting(this);
// DualDisplayUiDriver.Show();
// }
// else
// {
// TriList.BooleanInput[UIBoolJoin.SelectASourceVisible].BoolValue = true;
// }
//}
_CurrentRoom.CurrentDisplay1SourceChange += _CurrentRoom_CurrentDisplay1SourceChange;
_CurrentRoom.CurrentDisplay2SourceChange += _CurrentRoom_CurrentDisplay2SourceChange;
}
}
/// <summary>
///
/// </summary>
void ToggleSharingModePressed()
{
HideCurrentSharingMode();
IsSharingModeAdvanced = !IsSharingModeAdvanced;
TriList.BooleanInput[UIBoolJoin.ToggleSharingModePress].BoolValue = IsSharingModeAdvanced;
ShowCurrentSharingMode();
}
/// <summary>
///
/// </summary>
/// <param name="item"></param>
public void SourceListButtonPress(SourceListItem item)
{
// start the timer
// show FB on potential source
TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = false;
TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = false;
PendingSource = item;
}
/// <summary>
///
/// </summary>
void EnableAppropriateDisplayButtons()
{
TriList.BooleanInput[UIBoolJoin.Display1AudioButtonEnable].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.Display1ControlButtonEnable].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.Display2AudioButtonEnable].BoolValue = true;
TriList.BooleanInput[UIBoolJoin.Display2ControlButtonEnable].BoolValue = true;
if (LastSelectedSourceSig != null)
LastSelectedSourceSig.BoolValue = false;
}
public void Display1Press()
{
EnableAppropriateDisplayButtons();
CurrentRoom.SourceToDisplay1(PendingSource);
// Enable end meeting
}
public void Display1AudioPress()
{
}
public void Display1ControlPress()
{
}
public void Display2Press()
{
EnableAppropriateDisplayButtons();
CurrentRoom.SourceToDisplay2(PendingSource);
}
public void Display2AudioPress()
{
}
public void Display2ControlPress()
{
}
/// <summary>
/// When the room is off, set the footer SRL
@@ -370,7 +515,7 @@ namespace PepperDash.Essentials
3, b => { if (!b) PowerButtonPressed(); }));
ActivityFooterSrl.Count = 3;
TriList.UShortInput[UIUshortJoin.PresentationListCaretMode].UShortValue = 2;
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(2, 1);
EndMeetingButtonSig = ActivityFooterSrl.BoolInputSig(3, 1);
}
/// <summary>
@@ -383,9 +528,7 @@ namespace PepperDash.Essentials
{
ShareButtonSig.BoolValue = true;
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = false;
DualDisplayUiDriver.Show();
//TriList.BooleanInput[UIBoolJoin.ToggleSharingModeVisible].BoolValue = true;
//RevealSharingMode();
ShowCurrentSharingMode();
}
}
@@ -457,10 +600,10 @@ namespace PepperDash.Essentials
/// </summary>
void ShowCurrentSource()
{
if (CurrentRoom.CurrentSourceInfo == null)
if (CurrentRoom.CurrentSingleSourceInfo == null)
return;
var uiDev = CurrentRoom.CurrentSourceInfo.SourceDevice as IUiDisplayInfo;
var uiDev = CurrentRoom.CurrentSingleSourceInfo.SourceDevice as IUiDisplayInfo;
PageManager pm = null;
// If we need a page manager, get an appropriate one
if (uiDev != null)
@@ -483,21 +626,6 @@ namespace PepperDash.Essentials
}
}
///// <summary>
///// Called from button presses on source, where We can assume we want
///// to change to the proper screen.
///// </summary>
///// <param name="key">The key name of the route to run</param>
//void UiSelectSource(SourceListItem sourceItem)
//{
// if (IsSharingModeAdvanced)
// {
// DualDisplayUiDriver.SourceListButtonPress(sourceItem);
// }
// else
// CurrentRoom.DoSourceToAllDestinationsRoute(sourceItem);
//}
/// <summary>
///
/// </summary>
@@ -517,7 +645,9 @@ namespace PepperDash.Essentials
but =>
{
if (but != 2)
{
CurrentRoom.DoSourceToAllDestinationsRoute(null);
}
else
ShareButtonSig.BoolValue = true; // restore Share fb
EndMeetingButtonSig.BoolValue = false;
@@ -609,22 +739,25 @@ namespace PepperDash.Essentials
_CurrentRoom.OnFeedback.OutputChange -= _CurrentRoom_OnFeedback_OutputChange;
_CurrentRoom.CurrentVolumeDeviceChange -= this._CurrentRoom_CurrentAudioDeviceChange;
ClearAudioDeviceConnections();
_CurrentRoom.CurrentSourceInfoChange -= this._CurrentRoom_SourceInfoChange;
DisconnectSource(_CurrentRoom.CurrentSourceInfo);
_CurrentRoom.CurrentSingleSourceChange -= this._CurrentRoom_SourceInfoChange;
DisconnectSource(_CurrentRoom.CurrentSingleSourceInfo);
}
_CurrentRoom = room;
if (_CurrentRoom != null)
{
DualDisplayUiDriver.SetCurrentRoomFromParent();
//SetupSourcesForSimpleRouting();
if (IsSharingModeAdvanced)
{} // add stuff here
else
SetupSourceList();
TriList.StringInput[UIStringJoin.CurrentRoomName].StringValue = _CurrentRoom.Name;
// Link up all the change events from the room
_CurrentRoom.OnFeedback.OutputChange += _CurrentRoom_OnFeedback_OutputChange;
_CurrentRoom.CurrentVolumeDeviceChange += _CurrentRoom_CurrentAudioDeviceChange;
RefreshAudioDeviceConnections();
_CurrentRoom.CurrentSourceInfoChange += _CurrentRoom_SourceInfoChange;
_CurrentRoom.CurrentSingleSourceChange += _CurrentRoom_SourceInfoChange;
RefreshSourceInfo();
}
else
@@ -648,44 +781,31 @@ namespace PepperDash.Essentials
}
else
{
DualDisplayUiDriver.Hide();
HideCurrentSharingMode();
SetupActivityFooterWhenRoomOff();
TriList.BooleanInput[UIBoolJoin.StartPageVisible].BoolValue = true;
}
}
//void SetupSourcesForSimpleRouting()
//{
// // get the source list config and set up the source list
// var config = ConfigReader.ConfigObject.SourceLists;
// if (config.ContainsKey(_CurrentRoom.SourceListKey))
// {
// var srcList = config[_CurrentRoom.SourceListKey]
// .Values.ToList().OrderBy(s => s.Order);
// // Setup sources list
// uint i = 1; // counter for UI list
// foreach (var srcConfig in srcList)
// {
// if (!srcConfig.IncludeInSourceList) // Skip sources marked this way
// continue;
/// <summary>
///
/// </summary>
void _CurrentRoom_CurrentDisplay1SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
if (type == ChangeType.DidChange)
TriList.StringInput[UIStringJoin.Display1SourceLabel].StringValue =
info == null ? "" : info.PreferredName;
}
// var sourceKey = srcConfig.SourceKey;
// var actualSource = DeviceManager.GetDeviceForKey(sourceKey) as Device;
// if (actualSource == null)
// {
// Debug.Console(0, "Cannot assign missing source '{0}' to source UI list",
// srcConfig.SourceKey);
// continue;
// }
// var localSrcConfig = srcConfig; // lambda scope below
// var item = new SubpageReferenceListSourceItem(i++, SourcesSrl, srcConfig,
// b => { if (!b) UiSelectSource(localSrcConfig); });
// SourcesSrl.AddItem(item); // add to the SRL
// item.RegisterForSourceChange(_CurrentRoom);
// }
// SourcesSrl.Count = (ushort)(i - 1);
// }
//}
/// <summary>
///
/// </summary>
void _CurrentRoom_CurrentDisplay2SourceChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
if (type == ChangeType.DidChange)
TriList.StringInput[UIStringJoin.Display2SourceLabel].StringValue =
info == null ? "" : info.PreferredName;
}
/// <summary>
/// Hides source for provided source info
@@ -735,7 +855,7 @@ namespace PepperDash.Essentials
/// </summary>
void RefreshSourceInfo()
{
var routeInfo = CurrentRoom.CurrentSourceInfo;
var routeInfo = CurrentRoom.CurrentSingleSourceInfo;
// This will show off popup too
if (this.IsVisible)
ShowCurrentSource();
@@ -749,7 +869,7 @@ namespace PepperDash.Essentials
Parent.Show();
return;
}
else if (CurrentRoom.CurrentSourceInfo != null)
else if (CurrentRoom.CurrentSingleSourceInfo != null)
{
TriList.StringInput[UIStringJoin.CurrentSourceName].StringValue = routeInfo.PreferredName;
TriList.StringInput[UIStringJoin.CurrentSourceIcon].StringValue = routeInfo.Icon; // defaults to "blank"

View File

@@ -64,7 +64,7 @@ namespace PepperDash.Essentials
parent.SetItemMainText(index, room.Name);
UpdateItem(room.CurrentSourceInfo);
// Watch for later changes
room.CurrentSourceInfoChange += new SourceInfoChangeHandler(room_CurrentSourceInfoChange);
room.CurrentSingleSourceChange += new SourceInfoChangeHandler(room_CurrentSourceInfoChange);
parent.SetItemButtonAction(index, buttonAction);
}

View File

@@ -178,6 +178,7 @@ namespace PepperDash.Essentials
public const uint CurrentSourceIcon = 3903;
public const uint PowerOffMessage = 3911;
public const uint StartPageMessage = 3912;
public const uint StartActivityText = 3913;
public const uint HelpMessage = 3922;
/// <summary>

View File

@@ -11,5 +11,15 @@
public bool UsesSplashPage { get; set; }
public bool ShowDate { get; set; }
public bool ShowTime { get; set; }
/// <summary>
/// The count of sources that will trigger the "additional" arrows to show on the SRL.
/// Defaults to 5
/// </summary>
public int SourcesOverflowCount { get; set; }
public CrestronTouchpanelPropertiesConfig()
{
SourcesOverflowCount = 5;
}
}
}

View File

@@ -1,65 +1,65 @@
//using System;
//using System.Collections.Generic;
//using System.Linq;
//using System.Text;
//using Crestron.SimplSharp;
//using Crestron.SimplSharpPro;
//using Crestron.SimplSharpPro.UI;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using Crestron.SimplSharpPro;
using Crestron.SimplSharpPro.UI;
//using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core;
//namespace PepperDash.Essentials
//{
// public class SubpageReferenceListSourceItem : SubpageReferenceListItem
// {
// public SourceListItem SourceItem { get; private set; }
namespace PepperDash.Essentials
{
public class SubpageReferenceListSourceItem : SubpageReferenceListItem
{
public SourceListItem SourceItem { get; private set; }
// public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner,
// SourceListItem sourceItem, Action<bool> routeAction)
// : base(index, owner)
// {
// SourceItem = sourceItem;
// owner.GetBoolFeedbackSig(index, 1).UserObject = new Action<bool>(routeAction);
// owner.StringInputSig(index, 1).StringValue = SourceItem.PreferredName;
// }
public SubpageReferenceListSourceItem(uint index, SubpageReferenceList owner,
SourceListItem sourceItem, Action<bool> routeAction)
: base(index, owner)
{
SourceItem = sourceItem;
owner.GetBoolFeedbackSig(index, 1).UserObject = new Action<bool>(routeAction);
owner.StringInputSig(index, 1).StringValue = SourceItem.PreferredName;
}
// public void RegisterForSourceChange(IHasCurrentSourceInfoChange room)
// {
// room.CurrentSourceInfoChange -= room_CurrentSourceInfoChange;
// room.CurrentSourceInfoChange += room_CurrentSourceInfoChange;
// }
public void RegisterForSourceChange(IHasCurrentSourceInfoChange room)
{
room.CurrentSingleSourceChange -= room_CurrentSourceInfoChange;
room.CurrentSingleSourceChange += room_CurrentSourceInfoChange;
}
// void room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
// {
// if (type == ChangeType.WillChange && info == SourceItem)
// ClearFeedback();
// else if (type == ChangeType.DidChange && info == SourceItem)
// SetFeedback();
// }
void room_CurrentSourceInfoChange(EssentialsRoomBase room, SourceListItem info, ChangeType type)
{
if (type == ChangeType.WillChange && info == SourceItem)
ClearFeedback();
else if (type == ChangeType.DidChange && info == SourceItem)
SetFeedback();
}
// /// <summary>
// /// Called by SRL to release all referenced objects
// /// </summary>
// public override void Clear()
// {
// Owner.BoolInputSig(Index, 1).UserObject = null;
// Owner.StringInputSig(Index, 1).StringValue = "";
// }
/// <summary>
/// Called by SRL to release all referenced objects
/// </summary>
public override void Clear()
{
Owner.BoolInputSig(Index, 1).UserObject = null;
Owner.StringInputSig(Index, 1).StringValue = "";
}
// /// <summary>
// /// Sets the selected feedback on the button
// /// </summary>
// public void SetFeedback()
// {
// Owner.BoolInputSig(Index, 1).BoolValue = true;
// }
/// <summary>
/// Sets the selected feedback on the button
/// </summary>
public void SetFeedback()
{
Owner.BoolInputSig(Index, 1).BoolValue = true;
}
// /// <summary>
// /// Clears the selected feedback on the button
// /// </summary>
// public void ClearFeedback()
// {
// Owner.BoolInputSig(Index, 1).BoolValue = false;
// }
// }
//}
/// <summary>
/// Clears the selected feedback on the button
/// </summary>
public void ClearFeedback()
{
Owner.BoolInputSig(Index, 1).BoolValue = false;
}
}
}

View File

@@ -10,8 +10,8 @@
<ArchiveName />
</RequiredInfo>
<OptionalInfo>
<CompiledOn>2/16/2017 3:45:04 PM</CompiledOn>
<CompilerRev>1.0.0.28239</CompilerRev>
<CompiledOn>2/20/2017 5:05:08 PM</CompiledOn>
<CompilerRev>1.0.0.30753</CompilerRev>
</OptionalInfo>
<Plugin>
<Version>Crestron.SIMPLSharp, Version=2.0.48.0, Culture=neutral, PublicKeyToken=812d080f93e2de10</Version>

View File

@@ -1,4 +1,4 @@
MainAssembly=PepperDashEssentials.dll:5deb13632556e8d5c82a54c2bb816ea0
MainAssembly=PepperDashEssentials.dll:0b867fd313ed2c071ddab7aa55521c8b
MainAssemblyMinFirmwareVersion=1.009.0029
MainAssemblyResource=SimplSharpData.dat:820b61c48c8a2cace82957eed4cc377c
ü