Compare commits

..

1 Commits

Author SHA1 Message Date
jtalborough
83c76340fc fix: reapply fixes for fileIO 4 series 2023-05-09 09:08:28 -04:00
8 changed files with 245 additions and 314 deletions

View File

@@ -71,7 +71,7 @@
<HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="PepperDash_Core, Version=1.2.1.30543, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="PepperDash_Core, Version=1.0.42.30563, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath> <HintPath>..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath>
</Reference> </Reference>

View File

@@ -8,18 +8,6 @@ namespace PepperDash.Essentials.Core.Bridges
public JoinDataComplete IsOnline = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 }, public JoinDataComplete IsOnline = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
new JoinMetadata { Description = "DM RMC Online", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital }); new JoinMetadata { Description = "DM RMC Online", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Digital });
[JoinName("VideoMuteOn")]
public JoinDataComplete VideoMuteOn = new JoinDataComplete(new JoinData { JoinNumber = 3, JoinSpan = 1 },
new JoinMetadata { Description = "DM RMC Mute Video", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
[JoinName("VideoMuteOff")]
public JoinDataComplete VideoMuteOff = new JoinDataComplete(new JoinData { JoinNumber = 4, JoinSpan = 1 },
new JoinMetadata { Description = "DM RMC UnMute Video", JoinCapabilities = eJoinCapabilities.ToFromSIMPL, JoinType = eJoinType.Digital });
[JoinName("VideoMuteToggle")]
public JoinDataComplete VideoMuteToggle = new JoinDataComplete(new JoinData { JoinNumber = 5, JoinSpan = 1 },
new JoinMetadata { Description = "DM RMC Mute Video Toggle", JoinCapabilities = eJoinCapabilities.FromSIMPL, JoinType = eJoinType.Digital });
[JoinName("CurrentOutputResolution")] [JoinName("CurrentOutputResolution")]
public JoinDataComplete CurrentOutputResolution = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 }, public JoinDataComplete CurrentOutputResolution = new JoinDataComplete(new JoinData { JoinNumber = 1, JoinSpan = 1 },
new JoinMetadata { Description = "DM RMC Current Output Resolution", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial }); new JoinMetadata { Description = "DM RMC Current Output Resolution", JoinCapabilities = eJoinCapabilities.ToSIMPL, JoinType = eJoinType.Serial });

View File

@@ -9,270 +9,273 @@ using Crestron.SimplSharpPro.CrestronThread;
namespace PepperDash.Essentials.Core namespace PepperDash.Essentials.Core
{ {
public static class FileIO public static class FileIO
{ {
static CCriticalSection fileLock = new CCriticalSection(); static CCriticalSection fileLock = new CCriticalSection();
public delegate void GotFileEventHandler(object sender, FileEventArgs e); public delegate void GotFileEventHandler(object sender, FileEventArgs e);
public static event GotFileEventHandler GotFileEvent; public static event GotFileEventHandler GotFileEvent;
/// <summary> /// <summary>
/// Get the full file info from a path/filename, can include wildcards. /// Get the full file info from a path/filename, can include wildcards.
/// </summary> /// </summary>
/// <param name="fileName"></param> /// <param name="fileName"></param>
/// <returns></returns> /// <returns></returns>
public static FileInfo[] GetFiles(string fileName) public static FileInfo[] GetFiles(string fileName)
{ {
DirectoryInfo dirInfo = new DirectoryInfo(Path.GetDirectoryName(fileName)); string fullFilePath = Global.FilePathPrefix + fileName;
var files = dirInfo.GetFiles(Path.GetFileName(fileName)); DirectoryInfo dirInfo = new DirectoryInfo(Path.GetDirectoryName(fullFilePath));
Debug.Console(0, "FileIO found: {0}, {1}", files.Count(), fileName); var files = dirInfo.GetFiles(Path.GetFileName(fullFilePath));
if (files.Count() > 0) Debug.Console(0, "FileIO found: {0}, {1}", files.Count(), fullFilePath);
{ if (files.Count() > 0)
return files; {
} return files;
else }
{ else
return null; {
} return null;
} }
}
public static FileInfo GetFile(string fileName) public static FileInfo GetFile(string fileName)
{ {
DirectoryInfo dirInfo = new DirectoryInfo(Path.GetDirectoryName(fileName)); string fullFilePath = Global.FilePathPrefix + fileName;
var files = dirInfo.GetFiles(Path.GetFileName(fileName)); DirectoryInfo dirInfo = new DirectoryInfo(Path.GetDirectoryName(fullFilePath));
Debug.Console(0, "FileIO found: {0}, {1}", files.Count(), fileName); var files = dirInfo.GetFiles(Path.GetFileName(fullFilePath));
if (files.Count() > 0) Debug.Console(0, "FileIO found: {0}, {1}", files.Count(), fullFilePath);
{ if (files.Count() > 0)
return files.FirstOrDefault(); {
} return files.FirstOrDefault();
else }
{ else
return null; {
} return null;
} }
}
/// <summary> /// <summary>
/// Get the data from string path/filename /// Get the data from string path/filename
/// </summary> /// </summary>
/// <param name="fileName"></param> /// <param name="fileName"></param>
/// <returns></returns> /// <returns></returns>
public static string ReadDataFromFile(string fileName) public static string ReadDataFromFile(string fileName)
{ {
try try
{ {
return ReadDataFromFile(GetFile(fileName)); return ReadDataFromFile(GetFile(fileName));
} }
catch (Exception e) catch (Exception e)
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e); Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e);
return ""; return "";
} }
} }
/// <summary> /// <summary>
/// Get the data with fileInfo object /// Get the data with fileInfo object
/// </summary> /// </summary>
/// <param name="fileName"></param> /// <param name="fileName"></param>
/// <returns></returns> /// <returns></returns>
public static string ReadDataFromFile(FileInfo file) public static string ReadDataFromFile(FileInfo file)
{ {
try try
{ {
if (fileLock.TryEnter()) if (fileLock.TryEnter())
{ {
DirectoryInfo dirInfo = new DirectoryInfo(file.Name); DirectoryInfo dirInfo = new DirectoryInfo(file.DirectoryName);
Debug.Console(2, "FileIO Getting Data {0}", file.FullName); Debug.Console(2, "FileIO Getting Data {0}", file.FullName);
if (File.Exists(file.FullName)) if (File.Exists(file.FullName))
{ {
using (StreamReader r = new StreamReader(file.FullName)) using (StreamReader r = new StreamReader(file.FullName))
{ {
return r.ReadToEnd(); return r.ReadToEnd();
} }
} }
else else
{ {
Debug.Console(2, "File {0} does not exsist", file.FullName); Debug.Console(2, "File {0} does not exsist", file.FullName);
return ""; return "";
} }
} }
else else
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "FileIO Unable to enter FileLock"); Debug.Console(0, Debug.ErrorLogLevel.Error, "FileIO Unable to enter FileLock");
return ""; return "";
} }
} }
catch (Exception e) catch (Exception e)
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e); Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e);
return ""; return "";
} }
finally finally
{ {
if (fileLock != null && !fileLock.Disposed) if (fileLock != null && !fileLock.Disposed)
fileLock.Leave(); fileLock.Leave();
} }
} }
public static void ReadDataFromFileASync(string fileName) public static void ReadDataFromFileASync(string fileName)
{ {
try try
{ {
ReadDataFromFileASync(GetFile(fileName)); ReadDataFromFileASync(GetFile(fileName));
} }
catch (Exception e) catch (Exception e)
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e); Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e);
} }
} }
public static void ReadDataFromFileASync(FileInfo file) public static void ReadDataFromFileASync(FileInfo file)
{ {
try try
{ {
CrestronInvoke.BeginInvoke(o => _ReadDataFromFileASync(file)); CrestronInvoke.BeginInvoke(o => _ReadDataFromFileASync(file));
} }
catch (Exception e) catch (Exception e)
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e); Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e);
} }
} }
private static void _ReadDataFromFileASync(FileInfo file) private static void _ReadDataFromFileASync(FileInfo file)
{ {
string data; string data;
try try
{ {
if (fileLock.TryEnter()) if (fileLock.TryEnter())
{ {
DirectoryInfo dirInfo = new DirectoryInfo(file.Name); DirectoryInfo dirInfo = new DirectoryInfo(file.Name);
Debug.Console(2, "FileIO Getting Data {0}", file.FullName); Debug.Console(2, "FileIO Getting Data {0}", file.FullName);
if (File.Exists(file.FullName)) if (File.Exists(file.FullName))
{ {
using (StreamReader r = new StreamReader(file.FullName)) using (StreamReader r = new StreamReader(file.FullName))
{ {
data = r.ReadToEnd(); data = r.ReadToEnd();
} }
} }
else else
{ {
Debug.Console(2, "File {0} Does not exsist", file.FullName); Debug.Console(2, "File {0} Does not exsist", file.FullName);
data = ""; data = "";
} }
GotFileEvent.Invoke(null, new FileEventArgs(data)); GotFileEvent.Invoke(null, new FileEventArgs(data));
} }
else else
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "FileIO Unable to enter FileLock"); Debug.Console(0, Debug.ErrorLogLevel.Error, "FileIO Unable to enter FileLock");
} }
} }
catch (Exception e) catch (Exception e)
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e); Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO read failed: \r{0}", e);
data = ""; data = "";
} }
finally finally
{ {
if (fileLock != null && !fileLock.Disposed) if (fileLock != null && !fileLock.Disposed)
fileLock.Leave(); fileLock.Leave();
} }
} }
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
/// <param name="data"></param> /// <param name="data"></param>
/// <param name="filePath"></param> /// <param name="filePath"></param>
/// <summary> /// <summary>
/// ///
/// </summary> /// </summary>
/// <param name="data"></param> /// <param name="data"></param>
/// <param name="filePath"></param> /// <param name="filePath"></param>
public static void WriteDataToFile(string data, string filePath) public static void WriteDataToFile(string data, string filePath)
{ {
Thread _WriteFileThread; Thread _WriteFileThread;
_WriteFileThread = new Thread((O) => _WriteFileMethod(data, filePath), null, Thread.eThreadStartOptions.CreateSuspended); _WriteFileThread = new Thread((O) => _WriteFileMethod(data, Global.FilePathPrefix + "/" + filePath), null, Thread.eThreadStartOptions.CreateSuspended);
_WriteFileThread.Priority = Thread.eThreadPriority.LowestPriority; _WriteFileThread.Priority = Thread.eThreadPriority.LowestPriority;
_WriteFileThread.Start(); _WriteFileThread.Start();
Debug.Console(0, Debug.ErrorLogLevel.Notice, "New WriteFile Thread"); Debug.Console(0, Debug.ErrorLogLevel.Notice, "New WriteFile Thread");
} }
static object _WriteFileMethod(string data, string filePath) static object _WriteFileMethod(string data, string filePath)
{ {
Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to write file: '{0}'", filePath); Debug.Console(0, Debug.ErrorLogLevel.Notice, "Attempting to write file: '{0}'", filePath);
try try
{ {
if (fileLock.TryEnter()) if (fileLock.TryEnter())
{ {
using (StreamWriter sw = new StreamWriter(filePath))
{
sw.Write(data);
sw.Flush();
}
} using (StreamWriter sw = new StreamWriter(filePath))
else {
{ sw.Write(data);
Debug.Console(0, Debug.ErrorLogLevel.Error, "FileIO Unable to enter FileLock"); sw.Flush();
} }
} }
catch (Exception e) else
{ {
Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO write failed: \r{0}", e); Debug.Console(0, Debug.ErrorLogLevel.Error, "FileIO Unable to enter FileLock");
} }
finally
{
if (fileLock != null && !fileLock.Disposed)
fileLock.Leave();
} }
return null; catch (Exception e)
{
Debug.Console(0, Debug.ErrorLogLevel.Error, "Error: FileIO write failed: \r{0}", e);
}
finally
{
if (fileLock != null && !fileLock.Disposed)
fileLock.Leave();
} }
return null;
/// <summary> }
///
/// </summary>
/// <returns></returns>
public static bool FileIoUnitTest()
{
var testData = "Testing FileIO";
FileIO.WriteDataToFile(testData, "\\user\\FileIOTest.pdt");
var file = FileIO.GetFile("\\user\\*FileIOTest*"); /// <summary>
///
/// </summary>
/// <returns></returns>
public static bool FileIoUnitTest()
{
var testData = "Testing FileIO";
FileIO.WriteDataToFile(testData, "\\user\\FileIOTest.pdt");
var readData = FileIO.ReadDataFromFile(file); var file = FileIO.GetFile("\\user\\*FileIOTest*");
Debug.Console(0, "Returned {0}", readData);
File.Delete(file.FullName);
if (testData == readData)
{
return true;
}
else
{
return false;
}
}
} var readData = FileIO.ReadDataFromFile(file);
public class FileEventArgs Debug.Console(0, "Returned {0}", readData);
{ File.Delete(file.FullName);
public FileEventArgs(string data) { Data = data; } if (testData == readData)
public string Data { get; private set; } // readonly {
return true;
}
else
{
return false;
}
}
} }
public class FileEventArgs
{
public FileEventArgs(string data) { Data = data; }
public string Data { get; private set; } // readonly
}
} }

View File

@@ -83,7 +83,7 @@
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="PepperDash_Core, Version=1.2.1.30543, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="PepperDash_Core, Version=1.0.42.30563, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath> <HintPath>..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath>
</Reference> </Reference>

View File

@@ -7,7 +7,6 @@ using PepperDash.Core;
using PepperDash.Essentials.Core; using PepperDash.Essentials.Core;
using PepperDash.Essentials.Core.Bridges; using PepperDash.Essentials.Core.Bridges;
using PepperDash_Essentials_DM; using PepperDash_Essentials_DM;
using System.Collections.Generic;
namespace PepperDash.Essentials.DM namespace PepperDash.Essentials.DM
{ {
@@ -17,7 +16,7 @@ namespace PepperDash.Essentials.DM
/// </summary> /// </summary>
[Description("Wrapper Class for DM-RMC-4K-SCALER-C")] [Description("Wrapper Class for DM-RMC-4K-SCALER-C")]
public class DmRmc4kScalerCController : DmRmcControllerBase, IRoutingInputsOutputs, IBasicVolumeWithFeedback, public class DmRmc4kScalerCController : DmRmcControllerBase, IRoutingInputsOutputs, IBasicVolumeWithFeedback,
IIROutputPorts, IComPorts, ICec, IRelayPorts, IHasDmInHdcp, IBasicVideoMuteWithFeedback IIROutputPorts, IComPorts, ICec, IRelayPorts, IHasDmInHdcp
{ {
private readonly DmRmc4kScalerC _rmc; private readonly DmRmc4kScalerC _rmc;
@@ -69,7 +68,6 @@ namespace PepperDash.Essentials.DM
AddToFeedbackList(DmInHdcpStateFeedback); AddToFeedbackList(DmInHdcpStateFeedback);
VideoMuteIsOn = new BoolFeedback("HdmiOutputVideoMuteIsOn", () => _rmc.HdmiOutput.BlankEnabledFeedback.BoolValue);
_rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange; _rmc.HdmiOutput.OutputStreamChange += HdmiOutput_OutputStreamChange;
_rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange; _rmc.HdmiOutput.ConnectedDevice.DeviceInformationChange += ConnectedDevice_DeviceInformationChange;
@@ -85,10 +83,6 @@ namespace PepperDash.Essentials.DM
{ {
VideoOutputResolutionFeedback.FireUpdate(); VideoOutputResolutionFeedback.FireUpdate();
} }
else if (args.EventId == EndpointOutputStreamEventIds.BlankEnabledFeedbackEventId)
{
VideoMuteIsOn.FireUpdate();
}
} }
void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args) void ConnectedDevice_DeviceInformationChange(ConnectedDeviceInformation connectedDevice, ConnectedDeviceEventArgs args)
@@ -222,40 +216,5 @@ namespace PepperDash.Essentials.DM
_rmc.DmInput.HdcpCapability = hdcpState; _rmc.DmInput.HdcpCapability = hdcpState;
} }
#region IBasicVideoMuteWithFeedback Members
public BoolFeedback VideoMuteIsOn
{
get;
private set;
}
public void VideoMuteOn()
{
Debug.Console(2, this, "Video Mute On");
_rmc.HdmiOutput.BlankEnabled();
}
public void VideoMuteOff()
{
Debug.Console(2, this, "Video Mute Off");
_rmc.HdmiOutput.BlankDisabled();
}
#endregion
#region IBasicVideoMute Members
public void VideoMuteToggle()
{
Debug.Console(2, this, "Video Mute Toggle");
if (_rmc.HdmiOutput.BlankEnabledFeedback.BoolValue == true)
VideoMuteOff();
else
VideoMuteOn();
}
#endregion
} }
} }

View File

@@ -61,11 +61,6 @@ namespace PepperDash.Essentials.DM
Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device."); Debug.Console(0, this, "Please update config to use 'eiscapiadvanced' to get all join map features for this device.");
} }
LinkDmRmcToApi(rmc, trilist, joinMap);
}
protected void LinkDmRmcToApi(DmRmcControllerBase rmc, BasicTriList trilist, DmRmcControllerJoinMap joinMap)
{
Debug.Console(1, rmc, "Linking to Trilist '{0}'", trilist.ID.ToString("X")); Debug.Console(1, rmc, "Linking to Trilist '{0}'", trilist.ID.ToString("X"));
IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]); IsOnline.LinkInputSig(trilist.BooleanInput[joinMap.IsOnline.JoinNumber]);
@@ -144,18 +139,6 @@ namespace PepperDash.Essentials.DM
trilist.UShortInput[joinMap.HdcpInputPortCount.JoinNumber].UShortValue = (ushort)routing.InputPorts.Count; trilist.UShortInput[joinMap.HdcpInputPortCount.JoinNumber].UShortValue = (ushort)routing.InputPorts.Count;
var dmRmcScalerCBasicVideoMuteWithFeedback = rmc as IBasicVideoMuteWithFeedback;
if (dmRmcScalerCBasicVideoMuteWithFeedback != null)
{
Debug.Console(1, this, "Device is IBasicVideoMuteWithFeedback, linking video mute");
trilist.SetSigTrueAction(joinMap.VideoMuteToggle.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteToggle());
trilist.SetSigTrueAction(joinMap.VideoMuteOn.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteOn());
trilist.SetSigTrueAction(joinMap.VideoMuteOff.JoinNumber, () => dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteOff());
dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteIsOn.LinkInputSig(trilist.BooleanInput[joinMap.VideoMuteOn.JoinNumber]);
dmRmcScalerCBasicVideoMuteWithFeedback.VideoMuteIsOn.LinkComplementInputSig(trilist.BooleanInput[joinMap.VideoMuteOff.JoinNumber]);
}
var routingWithFeedback = routing as IRmcRouting; var routingWithFeedback = routing as IRmcRouting;
if (routingWithFeedback == null) return; if (routingWithFeedback == null) return;
@@ -166,7 +149,6 @@ namespace PepperDash.Essentials.DM
trilist.SetUShortSigAction(joinMap.AudioVideoSource.JoinNumber, trilist.SetUShortSigAction(joinMap.AudioVideoSource.JoinNumber,
a => routingWithFeedback.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo)); a => routingWithFeedback.ExecuteNumericSwitch(a, 1, eRoutingSignalType.AudioVideo));
} }
#region Implementation of IDeviceInfoProvider #region Implementation of IDeviceInfoProvider

View File

@@ -59,7 +59,7 @@
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.UI.dll</HintPath>
</Reference> </Reference>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="PepperDash_Core, Version=1.2.1.30543, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="PepperDash_Core, Version=1.0.42.30563, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath> <HintPath>..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath>
</Reference> </Reference>
@@ -153,7 +153,6 @@
<Compile Include="Properties\AssemblyInfo.cs" /> <Compile Include="Properties\AssemblyInfo.cs" />
<Compile Include="VideoStatusHelpers.cs" /> <Compile Include="VideoStatusHelpers.cs" />
<None Include="app.config" /> <None Include="app.config" />
<None Include="ClassDiagram1.cd" />
<None Include="Properties\ControlSystem.cfg" /> <None Include="Properties\ControlSystem.cfg" />
</ItemGroup> </ItemGroup>
<ItemGroup> <ItemGroup>

View File

@@ -63,7 +63,7 @@
<HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Lighting.dll</HintPath> <HintPath>..\..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SSPDevices\Crestron.SimplSharpPro.Lighting.dll</HintPath>
</Reference> </Reference>
<Reference Include="mscorlib" /> <Reference Include="mscorlib" />
<Reference Include="PepperDash_Core, Version=1.2.1.30543, Culture=neutral, processorArchitecture=MSIL"> <Reference Include="PepperDash_Core, Version=1.0.42.30563, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion> <SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath> <HintPath>..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath>
</Reference> </Reference>