コード例 #1
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            cmd.AddUInt16((int)Id);
            cmd.AddString(20, LongName);
            cmd.AddString(4, ShortName);
            cmd.AddByte(0x00);                             // Xa
            cmd.Pad();                                     // ??
            cmd.AddByte((byte)(IsExternal ? 0x00 : 0x01)); // Xb

            if (ExternalPorts == null)
            {
                cmd.AddBoolArray(false); // Is an external type, so no port options
            }
            else
            {
                cmd.AddBoolArray(ExternalPorts.Contains(ExternalPortType.SDI),
                                 ExternalPorts.Contains(ExternalPortType.HDMI),
                                 ExternalPorts.Contains(ExternalPortType.Component),
                                 ExternalPorts.Contains(ExternalPortType.Composite),
                                 ExternalPorts.Contains(ExternalPortType.SVideo));
            }

            cmd.AddByte((byte)(IsExternal ? 0x00 : 0x01)); // Xd
            cmd.AddUInt8((int)ExternalPortType);           // Xe
            cmd.AddUInt8((int)InternalPortType);
            cmd.Pad();                                     //Xg ??
            cmd.AddUInt8((uint)SourceAvailability);        // Xh
            cmd.AddUInt8((uint)MeAvailability);            // Xi
        }
コード例 #2
0
 public void Serialize(ByteArrayBuilder cmd)
 {
     cmd.AddUInt8((int)MixEffectIndex);
     cmd.AddUInt8((int)KeyerIndex);
     cmd.AddBoolArray(false);
     cmd.AddBoolArray(false);
     cmd.Pad();
     cmd.AddBoolArray(false, false, false, false);
     cmd.AddUInt8(0);
     cmd.Pad();
 }
コード例 #3
0
 public void Serialize(ByteArrayBuilder cmd)
 {
     cmd.AddString(32, Name);
     // TODO figure out what this is. It might mean something, or nothing. By blanking out after the name seems to cause the client to lose input names on the buttons
     cmd.AddByte(0x28, 0x36, 0x9B, 0x60, 0x4C, 0x08, 0x11, 0x60);
     cmd.AddUInt8((uint)Model);
     cmd.AddByte(0x3D, 0xA4, 0x60);
 }
コード例 #4
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            cmd.AddUInt16((int)Id);
            cmd.AddString(20, LongName);
            cmd.AddString(4, ShortName);
            cmd.AddByte(0x00);                             // Xa
            cmd.Pad();                                     // ??
            cmd.AddByte((byte)(IsExternal ? 0x00 : 0x01)); // Xb

            cmd.AddUInt8((uint)AvailableExternalPorts);

            cmd.AddByte((byte)(IsExternal ? 0x00 : 0x01)); // Xd
            cmd.AddUInt8((int)ExternalPortType);           // Xe
            cmd.AddUInt8((int)InternalPortType);
            cmd.Pad();                                     //Xg ??
            cmd.AddUInt8((uint)SourceAvailability);        // Xh
            cmd.AddUInt8((uint)MeAvailability);            // Xi
        }
コード例 #5
0
 public void Serialize(ByteArrayBuilder cmd)
 {
     cmd.AddUInt16(Tally.Count);
     foreach (KeyValuePair <VideoSource, uint> t in Tally)
     {
         cmd.AddUInt16((uint)t.Key);
         cmd.AddUInt8(t.Value);
     }
     cmd.PadToNearestMultipleOf4();
 }
コード例 #6
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            cmd.AddUInt16(Modes.Count);
            cmd.Pad(2);

            foreach (Entry mode in Modes)
            {
                cmd.AddUInt8((uint)mode.Mode);
                cmd.Pad(3);
                cmd.AddUInt32((uint)(1 << (int)mode.MultiviewMode)); // TODO - should be mask
                cmd.AddUInt32((uint)(1 << (int)mode.SomeMode));      // TODO - should be mask
            }
        }
コード例 #7
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            cmd.AddUInt16(Modes.Count);
            cmd.Pad(2);

            foreach (Entry mode in Modes)
            {
                cmd.AddUInt8((uint)mode.Mode);
                cmd.Pad(3);
                cmd.AddUInt32(ModesToUInt(mode.MultiviewModes));
                cmd.AddUInt32(ModesToUInt(mode.DownConvertModes));
                cmd.AddBoolArray(mode.RequiresReconfig);
            }
        }
コード例 #8
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            cmd.AddBoolArray(CanRotate);
            cmd.AddBoolArray(CanScaleUp);

            cmd.AddUInt16(SupportedTransitions?.Count ?? 0);
            if (SupportedTransitions != null)
            {
                foreach (DVEEffect effect in SupportedTransitions)
                {
                    cmd.AddUInt8((uint)effect);
                }
            }

            cmd.PadToNearestMultipleOf4();
        }
コード例 #9
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            switch (Action)
            {
            case MacroAction.Run:
            case MacroAction.Delete:
                cmd.AddUInt16(Index);
                break;

            default:
                cmd.AddUInt16(0xFFFF);
                break;
            }

            cmd.AddUInt8((int)Action);
            cmd.Pad();
        }
コード例 #10
0
 public void Serialize(ByteArrayBuilder cmd)
 {
     cmd.AddUInt8((int)Index);
     cmd.AddUInt8((int)SourceType);
     if (SourceType == MediaPlayerSource.Still) // TODO - verify this is correct
     {
         cmd.AddUInt8(SourceIndex);
         cmd.AddUInt8(0);
     }
     else
     {
         cmd.AddUInt8(0);
         cmd.AddUInt8(SourceIndex);
     }
 }
コード例 #11
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            cmd.AddUInt16(Modes.Count);
            cmd.Pad(2);

            foreach (Entry mode in Modes)
            {
                cmd.AddUInt8((uint)mode.Mode);
                cmd.Pad(5);
                cmd.AddUInt16(1 << (int)mode.MultiviewMode);
                cmd.Pad(4);
            }

            // cmd.AddByte("00-08".HexToByteArray());
            // cmd.Pad(2);
            // cmd.AddByte("00-00-00-00-00-00-00-80-00-00-00-00".HexToByteArray());
            // cmd.AddByte("01-02-00-00-00-00-00-40-00-00-00-00".HexToByteArray());
            // cmd.AddByte("02-00-00-00-00-00-00-80-00-00-00-00".HexToByteArray());
            // cmd.AddByte("03-EB-E2-C0-00-00-00-40-00-00-00-00".HexToByteArray());
            // cmd.AddByte("04-00-00-00-00-00-00-10-00-00-00-00".HexToByteArray());
            // cmd.AddByte("05-EB-E2-E0-00-00-00-20-00-00-00-00".HexToByteArray());
            // cmd.AddByte("06-0F-e2-80-00-00-01-00-00-00-00-00".HexToByteArray());
            // cmd.AddByte("07-FB-6B-20-00-00-00-80-00-00-00-00".HexToByteArray());
        }
コード例 #12
0
        public void Serialize(ByteArrayBuilder cmd)
        {
            cmd.AddUInt8((uint)Input);
            cmd.AddUInt8(Category);
            cmd.AddUInt8(Parameter);
            SerializeType(cmd);

            switch (Type)
            {
            case CameraControlDataType.Bool:
            {
                bool[] data = BoolData ?? Array.Empty <bool>();
                cmd.AddUInt16(data.Length);
                cmd.Pad(6);

                SerializePostLength(cmd);
                cmd.PadToNearestMultipleOf8();

                foreach (bool val in data)
                {
                    cmd.AddBoolArray(val);
                }
                cmd.PadToNearestMultipleOf8();

                break;
            }

            case CameraControlDataType.SInt8:
            {
                int[] data = IntData ?? Array.Empty <int>();
                cmd.AddUInt16(data.Length);
                cmd.Pad(6);

                SerializePostLength(cmd);
                cmd.PadToNearestMultipleOf8();

                foreach (int val in data)
                {
                    cmd.AddInt8(val);
                }
                cmd.PadToNearestMultipleOf8();

                break;
            }

            case CameraControlDataType.SInt16:
            {
                int[] data = IntData ?? Array.Empty <int>();
                cmd.Pad(2);
                cmd.AddUInt16(data.Length);
                cmd.Pad(4);

                SerializePostLength(cmd);
                cmd.PadToNearestMultipleOf8();

                foreach (int val in data)
                {
                    cmd.AddInt16(val);
                }
                cmd.PadToNearestMultipleOf8();

                break;
            }

            case CameraControlDataType.SInt32:
            {
                int[] data = IntData ?? Array.Empty <int>();
                cmd.Pad(4);
                cmd.AddUInt16(data.Length);
                cmd.Pad(2);

                SerializePostLength(cmd);
                cmd.PadToNearestMultipleOf8();

                foreach (int val in data)
                {
                    cmd.AddInt32(val);
                }
                cmd.PadToNearestMultipleOf8();

                break;
            }

            case CameraControlDataType.SInt64:
            {
                long[] data = LongData ?? Array.Empty <long>();
                cmd.Pad(6);
                cmd.AddUInt16(data.Length);

                SerializePostLength(cmd);
                cmd.PadToNearestMultipleOf8();

                foreach (long val in data)
                {
                    cmd.AddInt64(val);
                }
                cmd.PadToNearestMultipleOf8();

                break;
            }

            case CameraControlDataType.String:
            {
                string str = StringData ?? string.Empty;
                cmd.AddUInt16(str.Length);
                cmd.Pad(6);

                SerializePostLength(cmd);
                cmd.PadToNearestMultipleOf8();

                cmd.AddString(str);
                cmd.PadToNearestMultipleOf8();
                break;
            }

            case CameraControlDataType.Float:
            {
                double[] data = FloatData ?? Array.Empty <double>();
                cmd.Pad(2);
                cmd.AddUInt16(data.Length);
                cmd.Pad(4);

                SerializePostLength(cmd);
                cmd.PadToNearestMultipleOf8();

                foreach (double val in data)
                {
                    cmd.AddInt16(0x7ff, val);     // TODO
                }
                cmd.PadToNearestMultipleOf8();

                break;
            }

            default:
                throw new ArgumentOutOfRangeException();
            }
        }
コード例 #13
0
 protected override void SerializeType(ByteArrayBuilder cmd)
 {
     cmd.AddUInt8((uint)Type);
 }
コード例 #14
0
 protected override void SerializeType(ByteArrayBuilder cmd)
 {
     cmd.AddBoolArray(Relative);
     cmd.AddUInt8((uint)Type);
     cmd.Pad(1);
 }