private void btn_Connect_Click_Click(object sender, EventArgs e) { if (_webCamera != null) { videoViewerWF1.Stop(); _webCamera.Stop(); _mediaConnector.Disconnect(_webCamera.VideoChannel, _imageProvider); } btn_Connect.Enabled = false; _webCamera = new OzekiCamera(_myCameraUrlBuilder.CameraURL); _webCamera.CameraStateChanged += _webCamera_CameraStateChanged; //_mediaConnector.Connect(_webCamera.VideoChannel, _imageProvider); // _connector.Connect(_webCamera.VideoChannel, zoom); // _connector.Connect(zoom, _imageProvider); _mediaConnector.Connect(_webCamera.VideoChannel, zoom); _mediaConnector.Connect(zoom, _imageProvider); _webCamera.Start(); videoViewerWF1.Start(); zoom.Start(); }
/// <summary> /// Launch a specified player application, closing any others as appropriate, and configuring /// the screen and receiver to suit the preferred outputs fr that player /// </summary> /// <param name="name"></param> /// <param name="args"></param> /// <returns></returns> public static bool LaunchProgram( string name, string args) { logger.Info("LaunchProgram {0} -> {1} {2}", runningProgram, name, args ?? ""); lastActive = DateTime.UtcNow; runningArgs = args; if (name != "Sky") { StopSky(); } if (name != "Roku") { StopRoku(); } Receiver.SelectComputerInput(); if (name == "Music") { if (runningProgram != name) { if (runningProgram == "Photo") { ExitJRMC(); } Zoom.Stop(); DvbViewer.Stop(); if (spotifyRunning) { Spotify.Stop(); } DesktopClient.ExitAllPrograms(); runningProgram = name; Screen.SetScreenDisplayMode(0); Receiver.SelectRoomsOutput(); } JRMC.SetDisplay(JRMC.DisplayMode.Standard, maximize: true); logger.Info("LaunchProgram OK {0}", runningProgram); return(true); } if (runningProgram == name && String.IsNullOrEmpty(args)) { if (runningProgram != "Spotify" && !DesktopClient.ForegroundProgram(name)) { Zoom.Stop(); DvbViewer.Stop(); if (spotifyRunning) { Spotify.Stop(); } DesktopClient.ExitAllPrograms(); NothingRunning(); return(false); } logger.Info("LaunchProgram OK {0}", runningProgram); return(true); } if (runningProgram == "Music" || runningProgram == "Photo") { ExitJRMC(); } if (runningProgram == "TV") { DvbViewer.Stop(); } runningProgram = name; switch (name) { default: return(false); case "TV": if (args != null && args == "Radio") { Screen.SetScreenDisplayMode(0); Receiver.SelectRoomsOutput(); } else { Screen.EnsureScreenOn(); Receiver.SelectTVOutput(); Screen.WaitForScreenOn(); } if (!DesktopClient.LaunchProgram("TV", null)) { NothingRunning(); return(false); } logger.Info("LaunchProgram OK {0}", runningProgram); return(true); case "Web": Screen.EnsureScreenOn(); Receiver.SelectTVOutput(); Screen.WaitForScreenOn(); if (!DesktopClient.LaunchProgram("Web", args)) { NothingRunning(); return(false); } logger.Info("LaunchProgram OK {0}", runningProgram); return(true); case "Video": Screen.EnsureScreenOn(); Receiver.SelectTVOutput(); //Screen.WaitForScreenOn(); if (args == null) { return(true); } if (!DesktopClient.LaunchProgram("Video", args)) { NothingRunning(); return(false); } zoomRunning = true; logger.Info("Zoom.Start"); Zoom.Start(); logger.Info("LaunchProgram OK {0}", runningProgram); return(true); case "Spotify": Screen.SetScreenDisplayMode(0); Receiver.SelectRoomsOutput(); DesktopClient.ExitAllPrograms(); DesktopClient.EnsureSpotifyRunning(); spotifyRunning = true; logger.Info("LaunchProgram OK {0}", runningProgram); return(true); } }