示例#1
0
        public static void Main(string[] args)
        {
            try
            {
                AppDomain.CurrentDomain.UnhandledException += CurrentDomain_UnhandledException;
                var screenCaster = new LinuxScreenCaster();
                var casterSocket = new CasterSocket(new X11Input(), screenCaster, new LinuxAudioCapturer(), new LinuxClipboardService());
                Conductor = new Conductor(casterSocket, screenCaster);

                Conductor.ProcessArgs(args);
                Conductor.Connect().ContinueWith(async(task) =>
                {
                    await Conductor.CasterSocket.SendDeviceInfo(Conductor.ServiceID, Environment.MachineName, Conductor.DeviceID);
                    await Conductor.CasterSocket.NotifyRequesterUnattendedReady(Conductor.RequesterID);
                    Conductor.IdleTimer = new IdleTimer(Conductor.Viewers);
                    Conductor.IdleTimer.Start();
                });

                Thread.Sleep(Timeout.Infinite);
            }
            catch (Exception ex)
            {
                Logger.Write(ex);
                throw;
            }
        }
示例#2
0
        public MainWindowViewModel()
        {
            Current = this;
            if (!OSUtils.IsLinux)
            {
                return;
            }
            var screenCaster = new LinuxScreenCaster();
            var casterSocket = new CasterSocket(new X11Input(), screenCaster, new LinuxAudioCapturer(), new LinuxClipboardService());

            Conductor = new Conductor(casterSocket, screenCaster);

            Conductor.SessionIDChanged    += SessionIDChanged;
            Conductor.ViewerRemoved       += ViewerRemoved;
            Conductor.ViewerAdded         += ViewerAdded;
            Conductor.ScreenCastRequested += ScreenCastRequested;
        }