コード例 #1
0
ファイル: ArcSWF.cs プロジェクト: ziyuejun/GARbro
        static Stream ExtractSoundStream(SwfEntry entry)
        {
            var swe    = (SwfSoundEntry)entry;
            var output = new MemoryStream((int)swe.Size);

            foreach (var chunk in swe.SoundStream)
            {
                output.Write(chunk.Data, 4, chunk.Data.Length - 4);
            }
            output.Position = 0;
            return(output);
        }
コード例 #2
0
ファイル: ArcSWF.cs プロジェクト: ziyuejun/GARbro
        static Stream ExtractAudio(SwfEntry entry)
        {
            var chunk  = entry.Chunk;
            int flags  = chunk.Data[2];
            int format = flags >> 4;

            if (2 == format)
            {
                return(new BinMemoryStream(chunk.Data, 9, chunk.Length - 9));
            }
            int sample_rate     = (flags >> 2) & 3;
            int bits_per_sample = (flags & 2) != 0 ? 16 : 8;
            int channels        = (flags & 1) + 1;

            return(new BinMemoryStream(chunk.Data, 2, chunk.Length - 2));
        }
コード例 #3
0
ファイル: ArcSWF.cs プロジェクト: ziyuejun/GARbro
        static Stream ExtractChunkContents(SwfEntry entry)
        {
            var source = entry.Chunk;

            return(new BinMemoryStream(source.Data, 2, source.Length - 2));
        }
コード例 #4
0
ファイル: ArcSWF.cs プロジェクト: ziyuejun/GARbro
 static Stream ExtractChunk(SwfEntry entry)
 {
     return(new BinMemoryStream(entry.Chunk.Data));
 }