예제 #1
0
        public static bool Load([NotNull] this VolumeID obj, BinaryReader reader)
        {
            obj.VolumeIDSize      = reader.ReadUInt32();
            obj.DriveType         = (DriveType)reader.ReadInt32();
            obj.DriveSerialNumber = reader.ReadUInt32();
            obj.VolumeLabelOffset = reader.ReadUInt32();

            if (obj.VolumeLabelOffset == 0x00000014)
            {
                obj.VolumeLabelOffsetUnicode = reader.ReadUInt32();
            }

            var bytesToEat = (int)(obj.VolumeLabelOffsetUnicode ?? obj.VolumeLabelOffset)
                             - (obj.VolumeLabelOffset != 0x00000014 ? 16 : 20);

            if (bytesToEat > 0)
            {
                reader.ReadBytes(bytesToEat);
            }

            if (obj.VolumeLabelOffsetUnicode == null)
            {
                obj.Data = reader.ReadNullTerminatedString(Encoding.Default);
            }
            else
            {
                obj.Data = reader.ReadNullTerminatedString(Encoding.Unicode);
            }

            return(true);
        }
예제 #2
0
        /// <summary>
        /// ボリュームの値を返す
        /// </summary>
        /// <param name="volumeID"> どのボリュームを返すか </param>
        /// <returns></returns>
        public float Volume(VolumeID volumeID)
        {
            switch (volumeID)
            {
            case 0:
                return(bgmVolume);

            case (VolumeID)1:
                return(seVolume);

            default:
                return(voiceVolume);
            }
        }
예제 #3
0
 /// <summary>
 /// sets volume symbols
 /// use VolumeID enum and SymbolState enum as argument
 /// </summary>
 /// <param name="volumeid">id of volume symbol</param>
 /// <param name="symbolstate">symbol state</param>
 public void SetVolume(VolumeID volumeid, SymbolState symbolstate)
 {
     //create handle for datagram
     Byte[] btDatagram = new Byte[64];
     try
     {
         //create datagram
         btDatagram[0x00] = 0x04;                        //count of successive bytes
         btDatagram[0x01] = 0x1b;                        //header (fix value)
         btDatagram[0x02] = 0x30;                        //command: set a symbol
         btDatagram[0x03] = Convert.ToByte(volumeid);    //ID of volume symbol
         btDatagram[0x04] = Convert.ToByte(symbolstate); //required state of symbol
         //send command
         SendCommand(btDatagram);
     }
     catch (Exception ex)
     {
         throw new Exception("Setting volume symbol failed: ", ex);
     }
 }
예제 #4
0
        }                                                           // Optional

        public VolumeIDHandler(VolumeID item)
        {
            _item = item;
        }