Exemple #1
0
        public LibVncServer(IVncFramebufferSource framebufferSource, IVncRemoteKeyboard keyboard, IVncRemoteController controller, ILogger logger)
        {
            this.fbSource   = framebufferSource ?? throw new ArgumentNullException(nameof(framebufferSource));
            this.keyboard   = keyboard;
            this.controller = controller;

            this.logger            = logger ?? throw new ArgumentNullException(nameof(logger));
            this.passwordChallenge = new VncPasswordChallenge();

            this.newClientHook  = new NativeMethods.RfbNewClientHookPtr(this.RfbNewClientHook);
            this.clientGoneHook = new NativeMethods.ClientGoneHookPtr(this.ClientGoneHook);
            this.clientFramebufferUpdateRequestHook = new NativeMethods.ClientFramebufferUpdateRequestHookPtr(this.ClientFramebufferUpdateRequestHook);
            this.rfbKbdAddEventHook   = new NativeMethods.RfbKbdAddEventProcPtr(this.RfbKbdAddEventHook);
            this.rfbPtrAddEventProc   = new NativeMethods.RfbPtrAddEventProcPtr(this.RfbPtrAddEventHook);
            this.rfbPasswordCheckProc = new NativeMethods.rfbPasswordCheckProcPtr(this.RfbPasswordCheckHook);

            this.newClientHookPtr  = Marshal.GetFunctionPointerForDelegate(this.newClientHook);
            this.clientGoneHookPtr = Marshal.GetFunctionPointerForDelegate(this.clientGoneHook);
            this.clientFramebufferUpdateRequestHookPtr = Marshal.GetFunctionPointerForDelegate(this.clientFramebufferUpdateRequestHook);
            this.rfbKbdAddEventHookPtr   = Marshal.GetFunctionPointerForDelegate(this.rfbKbdAddEventHook);
            this.rfbPtrAddEventProcPtr   = Marshal.GetFunctionPointerForDelegate(this.rfbPtrAddEventProc);
            this.rfbPasswordCheckProcPtr = Marshal.GetFunctionPointerForDelegate(this.rfbPasswordCheckProc);

#if !NETSTANDARD2_0 && !NET45
            NativeLogging.Logger = logger;
#endif
        }
Exemple #2
0
 /// <summary>
 /// Initializes a new instance of the <see cref="VncServer"/> class.
 /// </summary>
 /// <param name="framebufferSource">
 /// The framebuffer source for all sessions which connect to this server.
 /// </param>
 /// <param name="keyboard">
 /// The keyboard for all sessions which connect to this server.
 /// </param>
 /// <param name="controller">
 /// The controller for all sessions which connect to this server.
 /// </param>
 /// <param name="logger">
 /// The logger to use.
 /// </param>
 public VncServer(IVncFramebufferSource framebufferSource, IVncRemoteKeyboard keyboard, IVncRemoteController controller, ILogger logger)
 {
     this.framebufferSource = framebufferSource ?? throw new ArgumentNullException(nameof(framebufferSource));
     this.keyboard          = keyboard;
     this.controller        = controller;
     this.logger            = logger ?? throw new ArgumentNullException(nameof(logger));
 }
Exemple #3
0
 /// <summary>
 /// Sets the framebuffer source.
 /// </summary>
 /// <param name="source">The framebuffer source, or <see langword="null"/> if you intend to handle the framebuffer manually.</param>
 public void SetFramebufferSource(IVncFramebufferSource source)
 {
     this.fbSource = source;
 }
 /// <summary>
 /// Sets the framebuffer source.
 /// </summary>
 /// <param name="source">The framebuffer source, or <see langword="null"/> if you intend to handle the framebuffer manually.</param>
 public void SetFramebufferSource(IVncFramebufferSource source)
 {
     this.fbSource = source;
 }
 /// <summary>
 /// Initializes a new instance of the <see cref="VncAviWriter"/> class.
 /// </summary>
 /// <param name="framebufferSource">
 /// The <see cref="IVncFramebufferSource"/> which provides framebuffers which act as input for the
 /// session.
 /// </param>
 public VncAviWriter(IVncFramebufferSource framebufferSource)
 {
     this.framebufferSource = framebufferSource ?? throw new ArgumentNullException(nameof(framebufferSource));
 }