using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Essentials.Core.DeviceTypeInterfaces;
using PepperDash.Essentials.Room.Config;
using PepperDash.Essentials.Core.Devices;
using PepperDash.Core;
namespace PepperDash.Essentials.Core
{
///
/// Describes the basic functionality of an EssentialsRoom
///
public interface IEssentialsRoom : IKeyName, IReconfigurableDevice, IRunDefaultPresentRoute, IEnvironmentalControls
{
///
/// Gets the PowerFeedback
///
BoolFeedback OnFeedback { get; }
///
/// Gets the IsOccupiedFeedback
///
BoolFeedback IsWarmingUpFeedback { get; }
///
/// Gets the IsCoolingDownFeedback
///
BoolFeedback IsCoolingDownFeedback { get; }
///
/// Gets a value indicating whether mobile control is enabled for this room
///
bool IsMobileControlEnabled { get; }
///
/// Gets the MobileControlRoomBridge
///
IMobileControlRoomMessenger MobileControlRoomBridge { get; }
///
/// Gets the SourceListKey
///
string SourceListKey { get; }
///
/// Gets the DestinationListKey
///
string DestinationListKey { get; }
///
/// Gets the AudioControlPointListKey
///
string AudioControlPointListKey { get; }
///
/// Gets the CameraListKey
///
string CameraListKey { get; }
///
/// Gets the ShutdownPromptTimer
///
SecondsCountdownTimer ShutdownPromptTimer { get; }
///
/// Gets the ShutdownVacancyTimer
///
int ShutdownPromptSeconds { get; }
///
/// Gets the ShutdownVacancySeconds
///
int ShutdownVacancySeconds { get; }
///
/// Gets the ShutdownType
///
eShutdownType ShutdownType { get; }
///
/// Gets the LogoUrlLightBkgnd
///
string LogoUrlLightBkgnd { get; }
///
/// Gets the LogoUrlDarkBkgnd
///
string LogoUrlDarkBkgnd { get; }
///
/// Starts the shutdown process
///
/// type of shutdown event
void StartShutdown(eShutdownType type);
///
/// Shuts down the room
///
void Shutdown();
///
/// Powers on the room to either the default source or the last source used
///
void PowerOnToDefaultOrLastSource();
}
}