public void Init(DmdSocket socket) { Logger.Debug("Init socket"); socket.SendDimensions(_width, _height); socket.SendColor(_color); if (_palette != null) { socket.SendPalette(_palette); } }
public BrowserStream(int port) { // map embedded www resources to _www const string prefix = "LibDmd.Output.Network.www."; _assembly.GetManifestResourceNames() .Where(res => res.StartsWith(prefix)) .ToList() .ForEach(res => _www["/" + res.Substring(prefix.Length)] = res); _www["/"] = prefix + "index.html"; _server = new HttpServer(port); _server.OnGet += (sender, e) => { var req = e.Request; var res = e.Response; var path = req.RawUrl; var output = res.OutputStream; if (_www.ContainsKey(path)) { res.StatusCode = (int)HttpStatusCode.OK; res.ContentType = GetMimeType(Path.GetExtension(path)); res.ContentEncoding = Encoding.UTF8; using (var input = _assembly.GetManifestResourceStream(_www[path])) { res.ContentLength64 = input.Length; CopyStream(input, output); } } else { Logger.Warn("Path {0} not found in assembly.", path); res.StatusCode = (int)HttpStatusCode.NotFound; } }; _server.AddWebSocketService("/dmd", () => { var socket = new DmdSocket(this); _sockets.Add(socket); return(socket); }); _server.Start(); if (_server.IsListening) { Logger.Info("Listening on port {0}, and providing WebSocket services:", _server.Port); foreach (var path in _server.WebSocketServices.Paths) { Logger.Info("- {0}", path); } } }
public void Closed(DmdSocket socket) { _sockets.Remove(socket); Logger.Debug("Socket closed"); }