public ViewerViewModel(StreamerClient streamerClient, DutyManagerService dutyManagerService) { StreamerClient = streamerClient; _dutyManagerService = dutyManagerService; ConnectionName = $"{StreamerClient.ComputerName} - {StreamerClient.Id}"; CreateRendererControl(); }
private void NewStreamerCallback(StreamerClient client) { App.Current.Dispatcher.Invoke(new Action(() => { lock (_streamerClientsLock) { StreamerClients.Add(client); } }), System.Windows.Threading.DispatcherPriority.Background); }
private void InformObserverRemoveStreamer(StreamerClient client) { lock (_removeStreamerObserverLock) { foreach (var observer in _removeStreamerObserver) { observer.Value.WriteAsync(client); } } }
public Task <string> LoginAsStreamerAsync(string computerName) { var streamerClient = new StreamerClient { ComputerName = computerName, Id = Guid.NewGuid().ToString() }; _streamer.Add(streamerClient); InformObserverNewStreamer(streamerClient); return(Task.FromResult(streamerClient.Id)); }
private void SelectConnectionCallback(StreamerClient client) { if (ViewerViewModels.Any(vm => vm.StreamerClient == client)) { return; } var vm = new ViewerViewModel(client, _dutyManagerService); ViewerViewModels.Add(vm); vm.StartRendering(); }
private void RemoveStreamerCallback(StreamerClient client) { App.Current.Dispatcher.Invoke(new Action(() => { lock (_streamerClientsLock) { var toRemove = StreamerClients.FirstOrDefault(c => c.Id == client.Id); if (toRemove != null) { StreamerClients.Remove(toRemove); } } }), System.Windows.Threading.DispatcherPriority.Background); _streamerDisconnectedCallback?.Invoke(client.Id); }
public void StartCloseApplicationJob(StreamerClient streamerClient) { var authRequest = new AuthJobRequest() { AuthKey = _authKey, StreamerId = streamerClient.Id, Job = new Job() { JobId = Guid.NewGuid().ToString(), JobType = Job.Types.JobType.CloseApplication, } }; _client.CreateNewJob(authRequest); }
public string StartStreamingJob(StreamerClient streamerClient) { var jobId = Guid.NewGuid().ToString(); var authRequest = new AuthJobRequest() { AuthKey = _authKey, StreamerId = streamerClient.Id, Job = new Job() { JobId = Guid.NewGuid().ToString(), JobType = Job.Types.JobType.StartStreaming, } }; _client.CreateNewJob(authRequest); return(jobId); }