Example #1
0
        public void Deserialize(ParsedByteArray cmd)
        {
            Id        = (VideoSource)cmd.GetUInt16();
            LongName  = cmd.GetString(20);
            ShortName = cmd.GetString(4);
            cmd.Skip(2);
            IsExternal = cmd.GetUInt8() == 0;

            AvailableExternalPorts = (ExternalPortTypeFlags)cmd.GetUInt8();

            cmd.Skip(); // Xd
            ExternalPortType = (ExternalPortTypeFlags)cmd.GetUInt8();
            InternalPortType = (InternalPortType)cmd.GetUInt8();
            cmd.Skip();
            SourceAvailability = (SourceAvailability)cmd.GetUInt8();
            MeAvailability     = (MeAvailability)cmd.GetUInt8();

            if (!IsExternal)
            {
                AvailableExternalPorts = ExternalPortTypeFlags.Internal;
            }
            if (!IsExternal)
            {
                ExternalPortType = ExternalPortTypeFlags.Internal;
            }
        }
Example #2
0
        public static MeAvailability FilterProfile(this MeAvailability orig, DeviceProfile profile)
        {
            MeAvailability res = orig;

            if (profile.MixEffectBlocks < 2)
            {
                res &= ~MeAvailability.Me2;
            }

            return(res);
        }
        public static bool Includes(this MeAvailability me, MixEffectBlockId id)
        {
            switch (id)
            {
            case MixEffectBlockId.One:
                return(me.HasFlag(MeAvailability.Me1));

            case MixEffectBlockId.Two:
                return(me.HasFlag(MeAvailability.Me2));

            default:
                return(false);
            }
        }
        public void Deserialize(ParsedByteArray cmd)
        {
            Id        = (VideoSource)cmd.GetUInt16();
            LongName  = cmd.GetString(20);
            ShortName = cmd.GetString(4);
            cmd.Skip(2);
            IsExternal = cmd.GetUInt8() == 0;

            // TODO - one of the unknowns will be the currently selected ExternalPortType

            bool[] portBools = cmd.GetBoolArray();
            var    ports     = new List <ExternalPortType>();

            if (portBools[0])
            {
                ports.Add(ExternalPortType.SDI);
            }
            if (portBools[1])
            {
                ports.Add(ExternalPortType.HDMI);
            }
            if (portBools[2])
            {
                ports.Add(ExternalPortType.Component);
            }
            if (portBools[3])
            {
                ports.Add(ExternalPortType.Composite);
            }
            if (portBools[4])
            {
                ports.Add(ExternalPortType.SVideo);
            }
            ExternalPorts = ports.Any() ? ports : null;

            cmd.Skip(); // Xd
            ExternalPortType = (ExternalPortType)cmd.GetUInt8();
            InternalPortType = (InternalPortType)cmd.GetUInt8();
            cmd.Skip();
            SourceAvailability = (SourceAvailability)cmd.GetUInt8();
            MeAvailability     = (MeAvailability)cmd.GetUInt8();
        }
Example #5
0
 public VideoSourceAvailabilityAttribute(SourceAvailability sourceAvailability, MeAvailability me = MeAvailability.None)
 {
     SourceAvailability = sourceAvailability;
     MeAvailability     = me;
 }