mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-08-31 19:08:29 +00:00
52 lines
1.8 KiB
C#
52 lines
1.8 KiB
C#
namespace PepperDash.Core.Abstractions;
|
|
|
|
/// <summary>
|
|
/// Abstracts <c>Crestron.SimplSharp.CrestronEnvironment</c> to allow unit testing
|
|
/// without the Crestron SDK.
|
|
/// </summary>
|
|
public interface ICrestronEnvironment
|
|
{
|
|
/// <summary>Gets the platform the program is executing on.</summary>
|
|
DevicePlatform DevicePlatform { get; }
|
|
|
|
/// <summary>Gets the current runtime environment.</summary>
|
|
RuntimeEnvironment RuntimeEnvironment { get; }
|
|
|
|
/// <summary>Gets the platform-appropriate newline string.</summary>
|
|
string NewLine { get; }
|
|
|
|
/// <summary>Gets the application number (program slot).</summary>
|
|
uint ApplicationNumber { get; }
|
|
|
|
/// <summary>Gets the room ID (used in Crestron Virtual Control / server environments).</summary>
|
|
uint RoomId { get; }
|
|
|
|
/// <summary>Raised when program status changes (starting, stopping, etc.).</summary>
|
|
event EventHandler<ProgramStatusEventArgs> ProgramStatusChanged;
|
|
|
|
/// <summary>Raised when the ethernet link changes state.</summary>
|
|
event EventHandler<PepperDashEthernetEventArgs> EthernetEventReceived;
|
|
|
|
/// <summary>Gets the application root directory path.</summary>
|
|
string GetApplicationRootDirectory();
|
|
|
|
/// <summary>
|
|
/// Returns <c>true</c> when running on real Crestron hardware.
|
|
/// Returns <c>false</c> in test / dev environments so that SDK-specific
|
|
/// sinks and enrichers can be safely skipped.
|
|
/// </summary>
|
|
bool IsHardwareRuntime { get; }
|
|
}
|
|
|
|
/// <summary>
|
|
/// Event args for <see cref="ICrestronEnvironment.ProgramStatusChanged"/>.
|
|
/// </summary>
|
|
public class ProgramStatusEventArgs : EventArgs
|
|
{
|
|
public ProgramStatusEventType EventType { get; }
|
|
|
|
public ProgramStatusEventArgs(ProgramStatusEventType eventType)
|
|
{
|
|
EventType = eventType;
|
|
}
|
|
}
|