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);
 }
Beispiel #3
0
 private void InformObserverRemoveStreamer(StreamerClient client)
 {
     lock (_removeStreamerObserverLock)
     {
         foreach (var observer in _removeStreamerObserver)
         {
             observer.Value.WriteAsync(client);
         }
     }
 }
Beispiel #4
0
        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));
        }
Beispiel #5
0
        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);
 }
Beispiel #7
0
        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);
        }
Beispiel #8
0
        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);
        }