示例#1
0
        public PreviewServiceProxy(IPreviewToolCallback previewToolCallback, string baseAddress)
        {
            if (previewToolCallback == null)
            {
                throw new ArgumentNullException(nameof(previewToolCallback));
            }

            if (string.IsNullOrEmpty(baseAddress))
            {
                throw new ArgumentNullException(nameof(baseAddress));
            }

            callbackHandler = new CallbackHandler(previewToolCallback);

            Uri baseUri;

            if (Uri.TryCreate(baseAddress, UriKind.Absolute, out baseUri))
            {
                protocolWrapper = createProtocolWrapper(baseAddress, CommunicationProtocols.REST);
            }
            else
            {
                protocolWrapper = createProtocolWrapper(baseAddress, CommunicationProtocols.NamedPipe);
            }
            protocolWrapper.ConnectionClosed += onConnectionClosed;
        }
示例#2
0
 public ConnectViewModel(PreviewServiceProxy serviceProxy, IPreviewToolCallback callback, Action stopVideoAction, bool isConnected)
 {
     previewServiceProxy  = serviceProxy;
     previewToolCallback  = callback;
     IsConnected          = isConnected;
     stopVideo            = stopVideoAction;
     AutoConnectOnStartup = Settings.Instance.AutoConnect;
 }
示例#3
0
        public CallbackHandler(IPreviewToolCallback previewToolCallback)
        {
            this.previewToolCallback = previewToolCallback;

            callbackActions  = new Queue <Action>();
            callbackEnqueued = new AutoResetEvent(false);
            stopExecution    = new AutoResetEvent(false);
            Task.Factory.StartNew(performCallbacks);
        }
示例#4
0
        public PreviewServiceProxy(IPreviewToolCallback previewToolCallback)
        {
            if (previewToolCallback == null)
            {
                throw new ArgumentNullException(nameof(previewToolCallback));
            }

            callbackHandler = new CallbackHandler(previewToolCallback);

            try { protocolWrapper = createProtocolWrapper(DefaultNamedPipeBaseAddress, CommunicationProtocols.NamedPipe); }
            catch { protocolWrapper = createProtocolWrapper(DefaultRestBaseAddress, CommunicationProtocols.REST); }
            protocolWrapper.ConnectionClosed += onConnectionClosed;
        }
示例#5
0
        public PreviewServiceProxy(IPreviewToolCallback previewToolCallback, string baseAddress, CommunicationProtocols communicationProtocol)
        {
            if (previewToolCallback == null)
            {
                throw new ArgumentNullException(nameof(previewToolCallback));
            }

            if (string.IsNullOrEmpty(baseAddress))
            {
                throw new ArgumentNullException(nameof(baseAddress));
            }

            callbackHandler = new CallbackHandler(previewToolCallback);

            protocolWrapper = createProtocolWrapper(baseAddress, communicationProtocol);
            protocolWrapper.ConnectionClosed += onConnectionClosed;
        }
示例#6
0
 public MainViewModel(IPreviewToolCallback previewToolCallback, Action stopVideoAction)
 {
     Settings.Instance.LoadSettings();
     try
     {
         previewServiceProxy = new PreviewServiceProxy(previewToolCallback, Settings.Instance.NamedPipeAddress, CommunicationProtocols.NamedPipe);
     }
     catch (PreviewServiceUnavailableException)
     {
         Log.Instance.WriteMessage(Log.PreviewUnavailableMessage, SeverityOption.Warning);
     }
     catch (NotSupportedException)
     {
         Settings.Instance.NamedPipeAddress = "MQ_PREVIEW_PIPE";
         Settings.Instance.SaveSettings();
         previewServiceProxy = new PreviewServiceProxy(previewToolCallback, Settings.Instance.NamedPipeAddress, CommunicationProtocols.NamedPipe);
     }
     ConnectViewModel = new ConnectViewModel(previewServiceProxy, previewToolCallback, stopVideoAction, false);
     VideoViewModel   = new VideoViewModel(previewServiceProxy);
 }
示例#7
0
 public ConnectViewModel(PreviewServiceProxy serviceProxy, IPreviewToolCallback callback)
 {
     previewServiceProxy  = serviceProxy;
     previewToolCallback  = callback;
     AutoConnectOnStartup = Settings.Instance.AutoConnect;
 }