forked from LeenkxTeam/LNXSDK
		
	
		
			
	
	
		
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
		
		
			
		
	
	
			61 lines
		
	
	
		
			1.6 KiB
		
	
	
	
		
			Haxe
		
	
	
	
	
	
|  | package kha.audio2.ogg.vorbis.data; | ||
|  | import haxe.io.Bytes; | ||
|  | import haxe.io.Input; | ||
|  | import kha.audio2.ogg.vorbis.data.ReaderError.ReaderErrorType; | ||
|  | import kha.audio2.ogg.vorbis.VorbisDecodeState; | ||
|  | 
 | ||
|  | /** | ||
|  |  * ... | ||
|  |  * @author shohei909 | ||
|  |  */ | ||
|  | class Page { | ||
|  |     public var flag(default, null):Int; | ||
|  | 
 | ||
|  |     public function new () { | ||
|  | 
 | ||
|  |     } | ||
|  | 
 | ||
|  |     public function clone() { | ||
|  |         var page = new Page(); | ||
|  |         page.flag = flag; | ||
|  |         return page; | ||
|  |     } | ||
|  | 
 | ||
|  |     // startPage | ||
|  |     public function start(decodeState:VorbisDecodeState) { | ||
|  |         decodeState.capturePattern(); | ||
|  |         startWithoutCapturePattern(decodeState); | ||
|  |     } | ||
|  | 
 | ||
|  |     // startPageNoCapturePattern | ||
|  |     public function startWithoutCapturePattern(decodeState:VorbisDecodeState) { | ||
|  |         var version = decodeState.readByte(); | ||
|  |         if (version != 0) { | ||
|  |             throw new ReaderError(ReaderErrorType.INVALID_STREAM_STRUCTURE_VERSION, "" + version); | ||
|  |         } | ||
|  | 
 | ||
|  |         this.flag = decodeState.readByte(); | ||
|  |         var loc0 = decodeState.readInt32(); | ||
|  |         var loc1 = decodeState.readInt32(); | ||
|  | 
 | ||
|  |         // input serial number -- vorbis doesn't interleave, so discard | ||
|  |         decodeState.readInt32(); | ||
|  |         //if (this.serial != get32(f)) throw new ReaderError(ReaderErrorType.incorrectStreamSerialNumber); | ||
|  | 
 | ||
|  |         // page sequence number | ||
|  |         decodeState.readInt32(); | ||
|  | 
 | ||
|  |         // CRC32 | ||
|  |         decodeState.readInt32(); | ||
|  | 
 | ||
|  |         // pageSegments | ||
|  |         decodeState.setup(loc0, loc1); | ||
|  |     } | ||
|  | } | ||
|  | 
 | ||
|  | class PageFlag { | ||
|  |     static public inline var CONTINUED_PACKET = 1; | ||
|  |     static public inline var FIRST_PAGE = 2; | ||
|  |     static public inline var LAST_PAGE = 4; | ||
|  | } |