mirror of
https://github.com/PepperDash/Essentials.git
synced 2026-01-11 19:44:52 +00:00
ecs-427 logo server on cs
This commit is contained in:
@@ -15,6 +15,7 @@ namespace PepperDash.Essentials
|
||||
public class ControlSystem : CrestronControlSystem
|
||||
{
|
||||
PepperDashPortalSyncClient PortalSync;
|
||||
HttpLogoServer LogoServer;
|
||||
|
||||
public ControlSystem()
|
||||
: base()
|
||||
@@ -63,6 +64,8 @@ namespace PepperDash.Essentials
|
||||
LoadTieLines();
|
||||
LoadRooms();
|
||||
|
||||
LogoServer = new HttpLogoServer(8080, @"\html\logo");
|
||||
|
||||
DeviceManager.ActivateAll();
|
||||
Debug.Console(0, "Essentials load complete\r" +
|
||||
"-------------------------------------------------------------");
|
||||
@@ -198,6 +201,5 @@ namespace PepperDash.Essentials
|
||||
Debug.Console(0, "WARNING: Cannot create room from config, key '{0}'", roomConfig.Key);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,6 +165,7 @@
|
||||
<Compile Include="FOR REFERENCE UI\PageControllers\LargeTouchpanelControllerBase.cs" />
|
||||
<Compile Include="FOR REFERENCE UI\Panels\SmartGraphicsTouchpanelControllerBase.cs" />
|
||||
<Compile Include="UIDrivers\EssentialsHuddleVTC\EssentialsHuddlePresentationUiDriver.cs" />
|
||||
<Compile Include="UI\HttpLogoServer.cs" />
|
||||
<Compile Include="UI\SubpageReferenceListCallStagingItem.cs" />
|
||||
<Compile Include="UIDrivers\VC\EssentialsVideoCodecUiDriver.cs" />
|
||||
<Compile Include="UIDrivers\JoinedSigInterlock.cs" />
|
||||
|
||||
111
Essentials/PepperDashEssentials/UI/HttpLogoServer.cs
Normal file
111
Essentials/PepperDashEssentials/UI/HttpLogoServer.cs
Normal file
@@ -0,0 +1,111 @@
|
||||
using System;
|
||||
using System.Collections.Generic;
|
||||
using System.Linq;
|
||||
using System.Text;
|
||||
using Crestron.SimplSharp;
|
||||
using Crestron.SimplSharp.CrestronIO;
|
||||
using Crestron.SimplSharp.Net.Http;
|
||||
|
||||
using PepperDash.Core;
|
||||
|
||||
namespace PepperDash.Essentials
|
||||
{
|
||||
public class HttpLogoServer
|
||||
{
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
HttpServer Server;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
string FileDirectory;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
public static Dictionary<string, string> ExtensionContentTypes;
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="port"></param>
|
||||
/// <param name="directory"></param>
|
||||
public HttpLogoServer(int port, string directory)
|
||||
{
|
||||
ExtensionContentTypes = new Dictionary<string, string>
|
||||
{
|
||||
//{ ".css", "text/css" },
|
||||
//{ ".htm", "text/html" },
|
||||
//{ ".html", "text/html" },
|
||||
{ ".jpg", "image/jpeg" },
|
||||
{ ".jpeg", "image/jpeg" },
|
||||
//{ ".js", "application/javascript" },
|
||||
//{ ".json", "application/json" },
|
||||
//{ ".map", "application/x-navimap" },
|
||||
{ ".pdf", "application.pdf" },
|
||||
{ ".png", "image/png" },
|
||||
//{ ".txt", "text/plain" },
|
||||
};
|
||||
|
||||
Server = new HttpServer();
|
||||
Server.Port = port;
|
||||
FileDirectory = directory;
|
||||
Server.OnHttpRequest += new OnHttpRequestHandler(Server_OnHttpRequest);
|
||||
Server.Open();
|
||||
|
||||
CrestronEnvironment.ProgramStatusEventHandler += new ProgramStatusEventHandler(CrestronEnvironment_ProgramStatusEventHandler);
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void Server_OnHttpRequest(object sender, OnHttpRequestArgs args)
|
||||
{
|
||||
var path = args.Request.Path;
|
||||
Debug.Console(0, "########## PATH={0}", path);
|
||||
|
||||
if (File.Exists(FileDirectory + @"\" + path))
|
||||
{
|
||||
string filePath = path.Replace('/', '\\');
|
||||
string localPath = string.Format(@"{0}{1}", FileDirectory, filePath);
|
||||
if (File.Exists(localPath))
|
||||
{
|
||||
args.Response.Header.ContentType = GetContentType(new FileInfo(localPath).Extension);
|
||||
args.Response.ContentStream = new FileStream(localPath, FileMode.Open, FileAccess.Read);
|
||||
//args.Response.CloseStream = true;
|
||||
}
|
||||
else
|
||||
{
|
||||
args.Response.ContentString = string.Format("Not found: '{0}'", filePath);
|
||||
args.Response.Code = 404;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
void CrestronEnvironment_ProgramStatusEventHandler(eProgramStatusEventType programEventType)
|
||||
{
|
||||
if (programEventType == eProgramStatusEventType.Stopping)
|
||||
Server.Close();
|
||||
}
|
||||
|
||||
/// <summary>
|
||||
///
|
||||
/// </summary>
|
||||
/// <param name="extension"></param>
|
||||
/// <returns></returns>
|
||||
public static string GetContentType(string extension)
|
||||
{
|
||||
string type;
|
||||
if (ExtensionContentTypes.ContainsKey(extension))
|
||||
type = ExtensionContentTypes[extension];
|
||||
else
|
||||
type = "text/plain";
|
||||
return type;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -282,9 +282,9 @@ namespace PepperDash.Essentials
|
||||
TriList.SetSigFalseAction(UIBoolJoin.TechPagesExitButton, () =>
|
||||
PopupInterlock.HideAndClear());
|
||||
|
||||
// Default Volume button
|
||||
// Volume related things
|
||||
TriList.SetSigFalseAction(UIBoolJoin.VolumeDefaultPress, () => CurrentRoom.SetDefaultLevels());
|
||||
|
||||
TriList.SetString(UIStringJoin.AdvancedVolumeSlider1Text, "Room");
|
||||
|
||||
if (TriList is CrestronApp)
|
||||
TriList.BooleanInput[UIBoolJoin.GearButtonVisible].BoolValue = false;
|
||||
|
||||
Binary file not shown.
Binary file not shown.
Reference in New Issue
Block a user