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; }
public ConnectViewModel(PreviewServiceProxy serviceProxy, IPreviewToolCallback callback, Action stopVideoAction, bool isConnected) { previewServiceProxy = serviceProxy; previewToolCallback = callback; IsConnected = isConnected; stopVideo = stopVideoAction; AutoConnectOnStartup = Settings.Instance.AutoConnect; }
public CallbackHandler(IPreviewToolCallback previewToolCallback) { this.previewToolCallback = previewToolCallback; callbackActions = new Queue <Action>(); callbackEnqueued = new AutoResetEvent(false); stopExecution = new AutoResetEvent(false); Task.Factory.StartNew(performCallbacks); }
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; }
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; }
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); }
public ConnectViewModel(PreviewServiceProxy serviceProxy, IPreviewToolCallback callback) { previewServiceProxy = serviceProxy; previewToolCallback = callback; AutoConnectOnStartup = Settings.Instance.AutoConnect; }