ReadHeader() public method

public ReadHeader ( byte buffer, int offset ) : void
buffer byte
offset int
return void
Example #1
0
        int intf_pcmPlayEffect(object[] args)
        {
            int chan       = (int)args[0];
            int note       = (int)args[1];
            int velo       = (int)args[2];
            var data       = (byte[])args[3];
            var dataOffset = (int)args[4];

            if (chan < 0x40 || chan > 0x47)
            {
                return(1);
            }

            if ((note & 0x80) != 0 || ((velo & 0x80) != 0))
            {
                return(3);
            }

            chan -= 0x40;

            if (!_pcmChan[chan]._reserved)
            {
                return(7);
            }

            if (_pcmChan[chan]._activeEffect)
            {
                return(2);
            }

            var w = new TownsAudio_WaveTable();

            w.ReadHeader(data, dataOffset);

            if (w.size < (w.loopStart + w.loopLen))
            {
                return(13);
            }

            if (w.size == 0)
            {
                return(6);
            }

            var p = _pcmChan[chan];

            p.LoadData(data, dataOffset + 32, w.size);
            p.KeyOn((byte)note, (byte)velo, w);

            return(0);
        }
Example #2
0
        int intf_loadWaveTable(object[] args)
        {
            var data = (byte[])args[0];

            if (_numWaveTables > 127)
            {
                return(3);
            }

            TownsAudio_WaveTable w = new TownsAudio_WaveTable();

            w.ReadHeader(data, 0);
            if (w.size == 0)
            {
                return(6);
            }

            if (_waveTablesTotalDataSize + w.size > 65504)
            {
                return(5);
            }

            for (int i = 0; i < _numWaveTables; i++)
            {
                if (_waveTables[i].id == w.id)
                {
                    return(10);
                }
            }

            var s = _waveTables[_numWaveTables++];

            s.ReadHeader(data, 0);

            _waveTablesTotalDataSize += s.size;
            Callback(32, _waveTablesTotalDataSize, s.size, data, 32);

            return(0);
        }
        int intf_pcmPlayEffect(object[] args)
        {
            int chan = (int)args[0];
            int note = (int)args[1];
            int velo = (int)args[2];
            var data = (byte[])args[3];
            var dataOffset = (int)args[4];

            if (chan < 0x40 || chan > 0x47)
                return 1;

            if ((note & 0x80) != 0 || ((velo & 0x80) != 0))
                return 3;

            chan -= 0x40;

            if (!_pcmChan[chan]._reserved)
                return 7;

            if (_pcmChan[chan]._activeEffect)
                return 2;

            var w = new TownsAudio_WaveTable();
            w.ReadHeader(data, dataOffset);

            if (w.size < (w.loopStart + w.loopLen))
                return 13;

            if (w.size == 0)
                return 6;

            var p = _pcmChan[chan];

            p.LoadData(data, dataOffset + 32, w.size);
            p.KeyOn((byte)note, (byte)velo, w);

            return 0;
        }
        int intf_loadWaveTable(object[] args)
        {
            var data = (byte[])args[0];
            if (_numWaveTables > 127)
                return 3;

            TownsAudio_WaveTable w = new TownsAudio_WaveTable();
            w.ReadHeader(data, 0);
            if (w.size == 0)
                return 6;

            if (_waveTablesTotalDataSize + w.size > 65504)
                return 5;

            for (int i = 0; i < _numWaveTables; i++)
            {
                if (_waveTables[i].id == w.id)
                    return 10;
            }

            var s = _waveTables[_numWaveTables++];
            s.ReadHeader(data, 0);

            _waveTablesTotalDataSize += s.size;
            Callback(32, _waveTablesTotalDataSize, s.size, data, 32);

            return 0;
        }