Interfaces added and some base classes built

This commit is contained in:
Neil Dorin
2020-11-27 18:05:14 -07:00
parent de3f2004de
commit cb49b1f8c8
9 changed files with 305 additions and 38 deletions

View File

@@ -0,0 +1,79 @@
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Crestron.SimplSharp;
using PepperDash.Core;
namespace PepperDash.Essentials.Interfaces.Components
{
/// <summary>
/// Describes a room comprised of components
/// </summary>
public interface IComponentRoom : IKeyed
{
List<IRoomComponent> Components { get; }
List<IRoomActivityComponent> Activities { get; }
List<IRoomComponent> GetRoomComponentsOfType(Type type);
List<IRoomActivityComponent> GetOrderedActvities();
}
/// <summary>
/// Describes a component
/// </summary>
public interface IComponent : IKeyed
{
}
/// <summary>
/// Describes a room component
/// </summary>
public interface IRoomComponent : IComponent
{
IComponentRoom Parent { get; }
}
/// <summary>
/// Describes a room activity component
/// </summary>
public interface IRoomActivityComponent : IRoomComponent
{
string Label { get; }
string Icon { get; }
IRoomComponent Component { get; }
int Order { get; }
void StartActivity();
void EndActivity();
}
/// <summary>
/// Describes a room component that can be "used" by a user
/// </summary>
public interface IUsableRoomComponent
{
bool InUse { get; }
void StartUse();
void EndUse();
}
/// <summary>
/// Describes a room behaviour component
/// </summary>
public interface IRoomBehaviourComponent : IUsableRoomComponent
{
}
/// <summary>
/// Describes a room device component
/// </summary>
public interface IRoomDeviceComponent : IUsableRoomComponent
{
}
}

View File

@@ -47,6 +47,10 @@
</PropertyGroup>
<ItemGroup>
<Reference Include="mscorlib" />
<Reference Include="PepperDash_Core, Version=1.0.43.36276, Culture=neutral, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\packages\PepperDashCore\lib\net35\PepperDash_Core.dll</HintPath>
</Reference>
<Reference Include="SimplSharpCustomAttributesInterface, Version=1.0.0.0, Culture=neutral, PublicKeyToken=1099c178b3b54c3b, processorArchitecture=MSIL">
<SpecificVersion>False</SpecificVersion>
<HintPath>..\..\..\..\..\..\..\..\ProgramData\Crestron\SDK\SimplSharpCustomAttributesInterface.dll</HintPath>
@@ -60,6 +64,7 @@
<Reference Include="System.Data" />
</ItemGroup>
<ItemGroup>
<Compile Include="Components\RoomComponents.cs" />
<Compile Include="Properties\AssemblyInfo.cs" />
<None Include="Properties\ControlSystem.cfg" />
</ItemGroup>