public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            ThumbnailFormat = data.ReadCookie();
            ThumbnailWidth  = data.ReadUInt16();
            ThumbnailHeight = data.ReadUInt16();
            ThumbnailFlags  = (ThumbnailOptions)data.ReadByte();
            LibraryType     = (MsexElementType)data.ReadByte();

            int libraryCount = (MsexVersion < CitpMsexVersions.Msex12Version) ? data.ReadByte() : data.ReadUInt16();

            if (MsexVersion < CitpMsexVersions.Msex11Version)
            {
                for (int i = 0; i < libraryCount; i++)
                {
                    LibraryIds.Add(new CitpMsexLibraryId(data.ReadByte()));
                }
            }
            else
            {
                for (int i = 0; i < libraryCount; i++)
                {
                    LibraryIds.Add(data.ReadMsexLibraryId());
                }
            }
        }
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            byte supportedVersionsCount = reader.ReadByte();

            SupportedMsexVersions = new List <MsexVersion>(supportedVersionsCount);
            for (int i = 0; i < supportedVersionsCount; ++i)
            {
                byte versionMinor = reader.ReadByte();
                byte versionMajor = reader.ReadByte();

                if (versionMajor == 1 && versionMinor == 0)
                {
                    SupportedMsexVersions.Add(MsexVersion.Version1_0);
                }
                else if (versionMajor == 1 && versionMinor == 1)
                {
                    SupportedMsexVersions.Add(MsexVersion.Version1_1);
                }
                else if (versionMajor == 1 && versionMinor == 2)
                {
                    SupportedMsexVersions.Add(MsexVersion.Version1_2);
                }
                else
                {
                    SupportedMsexVersions.Add(MsexVersion.UnsupportedVersion);
                }
            }
        }
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            switch (Version)
            {
            case MsexVersion.Version1_0:
            case MsexVersion.Version1_1:
            {
                SourceIdentifier = reader.ReadUInt16();
                FrameFormat      = CitpEnumHelper.GetEnumFromIdString <MsexImageFormat>(reader.ReadIdString());
                FrameWidth       = reader.ReadUInt16();
                FrameHeight      = reader.ReadUInt16();

                int frameBufferLength = reader.ReadUInt16();
                FrameBuffer = reader.ReadBytes(frameBufferLength);
            }
            break;

            case MsexVersion.Version1_2:
            {
                MediaServerUuid  = reader.ReadGuid();
                SourceIdentifier = reader.ReadUInt16();
                FrameFormat      = CitpEnumHelper.GetEnumFromIdString <MsexImageFormat>(reader.ReadIdString());
                FrameWidth       = reader.ReadUInt16();
                FrameHeight      = reader.ReadUInt16();

                int frameBufferLength = reader.ReadUInt16();
                FrameBuffer = reader.ReadBytes(frameBufferLength);
            }
            break;
            }
        }
예제 #4
0
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            UniverseIndex = reader.ReadByte();
            UniverseName  = reader.ReadString(true);
        }
예제 #5
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            ThumbnailFormat = data.ReadCookie();
            ThumbnailWidth  = data.ReadUInt16();
            ThumbnailHeight = data.ReadUInt16();
            ThumbnailFlags  = (ThumbnailOptions)data.ReadByte();
            LibraryType     = (MsexElementType)data.ReadByte();

            if (MsexVersion < CitpMsexVersions.Msex11Version)
            {
                LibraryId = new CitpMsexLibraryId(data.ReadByte());
            }
            else
            {
                LibraryId = data.ReadMsexLibraryId();
            }

            int elementCount = (MsexVersion < CitpMsexVersions.Msex12Version) ? data.ReadByte() : data.ReadUInt16();

            for (int n = 0; n < elementCount; n++)
            {
                ElementNumbers.Add(data.ReadByte());
            }
        }
예제 #6
0
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            byte versionHi = reader.ReadByte();
            byte versionLo = reader.ReadByte();

            if (versionHi == 1 && versionLo == 0)
            {
                Version = MsexVersion.Version1_0;
            }
            else if (versionHi == 1 && versionLo == 1)
            {
                Version = MsexVersion.Version1_1;
            }
            else if (versionHi == 1 && versionLo == 2)
            {
                Version = MsexVersion.Version1_2;
            }
            else
            {
                Version = MsexVersion.UnsupportedVersion;
            }

            if (Version == MsexVersion.UnsupportedVersion)
            {
                throw new InvalidOperationException("Incorrect or invalid MSEX version");
            }

            if (MessageType != CitpEnumHelper.GetEnumFromIdString <MsexMessageType>(reader.ReadIdString()))
            {
                throw new InvalidOperationException("Incorrect or invalid message type");
            }
        }
            public override void ReadData(CitpBinaryReader data)
            {
                if (MsexVersion < CitpMsexVersions.Msex11Version)
                {
                    LibraryNumber = data.ReadByte();
                }
                else
                {
                    LibraryId = data.ReadMsexLibraryId();
                }

                if (MsexVersion > CitpMsexVersions.Msex11Version)
                {
                    SerialNumber = data.ReadUInt32();
                }

                DmxRangeMin = data.ReadByte();
                DmxRangeMax = data.ReadByte();
                Name        = data.ReadUcs2();

                if (MsexVersion > CitpMsexVersions.Msex10Version)
                {
                    LibraryCount = MsexVersion < CitpMsexVersions.Msex12Version ? data.ReadByte() : data.ReadUInt16();
                }

                ElementCount = MsexVersion < CitpMsexVersions.Msex12Version ? data.ReadByte() : data.ReadUInt16();
            }
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            LibraryType = (MsexElementType)data.ReadByte();

            if (MsexVersion > CitpMsexVersions.Msex10Version)
            {
                LibraryParentId = data.ReadMsexLibraryId();
            }

            int libraryCount = 0;

            if (MsexVersion < CitpMsexVersions.Msex12Version)
            {
                libraryCount = data.ReadByte();
            }
            else
            {
                libraryCount = data.ReadUInt16();
            }

            for (int n = 0; n < libraryCount; n++)
            {
                LibraryNumbers.Add(data.ReadByte());
            }
        }
예제 #9
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            int count = data.ReadUInt16();

            for (int n = 0; n < count; n++)
            {
                FixtureChange change = new FixtureChange()
                {
                    FixtureId     = data.ReadUInt32(),
                    ChangedFields = (Modification)data.ReadByte(),
                    Patched       = data.ReadBoolean(),
                    DMXUniverse   = data.ReadByte(),
                    DMXAddress    = data.ReadUInt16(),
                    Unit          = data.ReadUcs2(),
                    Channel       = data.ReadUInt16(),
                    Circuit       = data.ReadUcs2(),
                    Note          = data.ReadUcs2(),
                    Position      = new Coordinate()
                    {
                        X = data.ReadSingle(), Y = data.ReadSingle(), Z = data.ReadSingle()
                    },
                    Angle = new Coordinate()
                    {
                        X = data.ReadSingle(), Y = data.ReadSingle(), Z = data.ReadSingle()
                    }
                };
                Fixtures.Add(change);
            }
        }
예제 #10
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            ContentType = data.ReadCookie();
            ContentHint = data.ReadUInt32();
        }
예제 #11
0
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            UniverseIndex    = reader.ReadByte();
            ConnectionString = CitpDmxConnectionString.Parse(reader.ReadString(true));
        }
예제 #12
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            MsexVersion      = data.ReadByte();
            MsexVersion     += (float)data.ReadByte() / 10;
            LayerContentType = data.ReadCookie();
        }
예제 #13
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);
            Format = (LiveViewImageFormat)data.ReadByte();
            uint dataSize = data.ReadUInt32();

            Data = data.ReadBytes((int)dataSize);
        }
예제 #14
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);
            byte majorVersion = data.ReadByte();
            byte minorVersion = data.ReadByte();

            MsexVersion      = new Version(majorVersion, minorVersion);
            LayerContentType = data.ReadCookie();
        }
예제 #15
0
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            if (MessageType != CitpEnumHelper.GetEnumFromIdString <SdmxMessageType>(reader.ReadIdString()))
            {
                throw new InvalidOperationException("Incorrect message type");
            }
        }
예제 #16
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            ListeningTCPPort = data.ReadUInt16();
            Type             = data.ReadUcs1();
            Name             = data.ReadUcs1();
            State            = data.ReadUcs1();
        }
예제 #17
0
 public override void ReadData(CitpBinaryReader data)
 {
     SourceIdentifier = data.ReadUInt16();
     SourceName       = data.ReadUcs2();
     PhysicalOutput   = data.ReadByte();
     LayerNumber      = data.ReadByte();
     Flags            = data.ReadUInt16();
     Width            = data.ReadUInt16();
     Height           = data.ReadUInt16();
 }
예제 #18
0
        public CitpBinaryReader GetReader()
        {
            if (reader == null)
            {
                reader = new CitpBinaryReader(this);
            }

            Seek(ReadPosition, SeekOrigin.Begin);
            return(reader);
        }
예제 #19
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            int count = data.ReadByte();

            for (int n = 0; n < count; n++)
            {
                SupportedMSEXVersions.Add(data.ReadUInt16().ToMsexVersion());
            }
        }
예제 #20
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            SourceIdentifier = data.ReadUInt16();
            FrameFormat      = data.ReadCookie();
            FrameWidth       = data.ReadUInt16();
            FrameHeight      = data.ReadUInt16();
            FramesPerSecond  = data.ReadByte();
            Timeout          = data.ReadByte();
        }
예제 #21
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            Blind         = data.ReadByte();
            UniverseIndex = data.ReadByte();
            FirstChannel  = data.ReadUInt16();
            int channelCount = data.ReadUInt16();

            ChannelLevels = data.ReadBytes(channelCount);
        }
예제 #22
0
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            SourceIdentifier = reader.ReadUInt16();
            FrameFormat      = CitpEnumHelper.GetEnumFromIdString <MsexImageFormat>(reader.ReadIdString());
            FrameWidth       = reader.ReadUInt16();
            FrameHeight      = reader.ReadUInt16();
            Fps     = reader.ReadByte();
            Timeout = reader.ReadByte();
        }
예제 #23
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            int count = data.ReadUInt16();

            for (int n = 0; n < count; n++)
            {
                Capabilities.Add((DmxCapabilities)data.ReadUInt16());
            }
        }
예제 #24
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            UInt16 sourceCount = data.ReadUInt16();

            for (int i = 0; i < sourceCount; i++)
            {
                Sources.Add(new SourceInformation(data, MsexVersion));
            }
        }
예제 #25
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            int fixtureCount = data.ReadUInt16();

            for (int n = 0; n < fixtureCount; n++)
            {
                FixtureIdentifiers.Add(data.ReadUInt16());
            }
        }
예제 #26
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            byte layerCount = data.ReadByte();

            for (int n = 0; n < layerCount; n++)
            {
                Layers.Add(new LayerStatus(data, MsexVersion));
            }
        }
예제 #27
0
        public override void ReadData(CitpBinaryReader data)
        {
            base.ReadData(data);

            int count = data.ReadUInt16();

            for (int n = 0; n < count; n++)
            {
                FixtureIds.Add(data.ReadUInt32());
            }
        }
예제 #28
0
 public override void ReadData(CitpBinaryReader data)
 {
     Number                = data.ReadByte();
     DmxRangeMin           = data.ReadByte();
     DmxRangeMax           = data.ReadByte();
     MediaName             = data.ReadUcs2();
     MediaVersionTimestamp = data.ReadUInt64();
     MediaWidth            = data.ReadUInt16();
     MediaHeight           = data.ReadUInt16();
     MediaLength           = data.ReadUInt32();
     MediaFPS              = data.ReadByte();
 }
예제 #29
0
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            switch (Version)
            {
            case MsexVersion.Version1_0:
            case MsexVersion.Version1_1:
            {
                int layerStatusCount = reader.ReadByte();
                LayerStatuses = new List <LayerStatus>(layerStatusCount);
                for (int i = 0; i < layerStatusCount; ++i)
                {
                    LayerStatuses.Add(new LayerStatus
                        {
                            LayerNumber        = reader.ReadByte(),
                            PhysicalOutput     = reader.ReadByte(),
                            MediaLibraryNumber = reader.ReadByte(),
                            MediaNumber        = reader.ReadByte(),
                            MediaName          = reader.ReadString(),
                            MediaPosition      = reader.ReadUInt32(),
                            MediaLength        = reader.ReadUInt32(),
                            MediaFps           = reader.ReadByte(),
                            LayerStatusFlags   = (MsexLayerStatusFlags)reader.ReadUInt32()
                        });
                }
            }
            break;

            case MsexVersion.Version1_2:
            {
                int layerStatusCount = reader.ReadByte();
                LayerStatuses = new List <LayerStatus>(layerStatusCount);
                for (int i = 0; i < layerStatusCount; ++i)
                {
                    LayerStatuses.Add(new LayerStatus
                        {
                            LayerNumber      = reader.ReadByte(),
                            PhysicalOutput   = reader.ReadByte(),
                            MediaLibraryType = (MsexLibraryType)reader.ReadByte(),
                            MediaLibraryId   = MsexLibraryId.FromByteArray(reader.ReadBytes(4)),
                            MediaNumber      = reader.ReadByte(),
                            MediaName        = reader.ReadString(),
                            MediaPosition    = reader.ReadUInt32(),
                            MediaLength      = reader.ReadUInt32(),
                            MediaFps         = reader.ReadByte(),
                            LayerStatusFlags = (MsexLayerStatusFlags)reader.ReadUInt32()
                        });
                }
            }
            break;
            }
        }
        protected override void DeserializeFromStream(CitpBinaryReader reader)
        {
            base.DeserializeFromStream(reader);

            ushort capabilitiesCount = reader.ReadUInt16();

            Capabilities = new List <SdmxCapability>(capabilitiesCount);
            for (int i = 0; i < capabilitiesCount; ++i)
            {
                Capabilities.Add((SdmxCapability)reader.ReadUInt16());
            }
        }