예제 #1
0
        private void OnMessage(string ID, BaseMessage payload)
        {
            switch (payload)
            {
            case AbsoluteZoomRES zM:
                System.Diagnostics.Debug.WriteLine($"Encoder: {zM.EncoderValue}");
                var zoomValue = GetZoomFromEncoder(zM.EncoderValue);
                if (zoomValue >= 0)
                {
                    CameraParameterChangedEvent?.Invoke(ID, ViscaParameters.AbsoluteZoom, zoomValue);
                }
                break;

            case AddressRES zAdr:
                System.Diagnostics.Debug.WriteLine($"Address: {zAdr.Address}");
                CameraParameterChangedEvent?.Invoke(ID, ViscaParameters.Address, (double)zAdr.Address);
                CameraConnectedEvent?.Invoke(ID, true);
                break;

            case CompletedRES completedRES:
                // Send zoom inquiry
                System.Diagnostics.Debug.WriteLine("Completed zoom. Sending inquiry");
                SendMessage(AbsoluteZoomInquiryCMD.RentFromPool());
                break;
            }

            payload.Dispose();
        }
예제 #2
0
 private void OnConnection(string ID, ConnUri uri, bool connected)
 {
     // Send addres msg
     if (connected)
     {
         var cmd = AddressCMD.RentFromPool();
         SendMessage(cmd);
     }
     else
     {
         CameraConnectedEvent?.Invoke(ID, false);
     }
 }