HL fixes
This commit is contained in:
@@ -356,7 +356,7 @@ class Bytes {
|
||||
setInt32(pos + 4, v.high);
|
||||
}
|
||||
|
||||
public function getString( pos : Int, len : Int, ?encoding : Dynamic ) : String {
|
||||
public function getString( pos : Int, len : Int, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : String {
|
||||
#if !neko
|
||||
if( pos < 0 || len < 0 || pos + len > length ) throw Error.OutsideBounds;
|
||||
#end
|
||||
@@ -486,7 +486,7 @@ class Bytes {
|
||||
Returns bytes representation of the given String, using specific encoding (UTF-8 by default)
|
||||
**/
|
||||
@:pure
|
||||
public static function ofString( s : String, ?encoding : Dynamic ) : Bytes {
|
||||
public static function ofString( s : String, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : Bytes {
|
||||
#if neko
|
||||
return new Bytes(s.length,untyped __dollar__ssub(s.__s,0,s.length));
|
||||
#elseif flash
|
||||
@@ -556,6 +556,26 @@ class Bytes {
|
||||
#end
|
||||
}
|
||||
|
||||
/**
|
||||
Convert hexadecimal string to Bytes.
|
||||
Support only straight hex string ( Example: "0FDA14058916052309" )
|
||||
**/
|
||||
public static function ofHex( s : String ) : Bytes {
|
||||
var len:Int = s.length;
|
||||
if ( (len & 1) != 0 ) throw "Not a hex string (odd number of digits)";
|
||||
var ret : Bytes = Bytes.alloc(len >> 1);
|
||||
for (i in 0...ret.length)
|
||||
{
|
||||
var high = StringTools.fastCodeAt(s, i*2);
|
||||
var low = StringTools.fastCodeAt(s, i*2 + 1);
|
||||
high = (high & 0xF) + ( (high & 0x40) >> 6 ) * 9;
|
||||
low = (low & 0xF) + ( (low & 0x40) >> 6 ) * 9;
|
||||
ret.set( i ,( (high << 4) | low) & 0xFF );
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
Read the most efficiently possible the n-th byte of the data.
|
||||
Behavior when reading outside of the available data is unspecified.
|
||||
@@ -701,7 +721,7 @@ class Bytes {
|
||||
setInt32(pos + 4, v.high);
|
||||
}
|
||||
|
||||
public function getString( pos : Int, len : Int, ?encoding : Dynamic ) : String {
|
||||
public function getString( pos : Int, len : Int, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : String {
|
||||
if( pos < 0 || len < 0 || pos + len > length ) throw Error.OutsideBounds;
|
||||
var s = "";
|
||||
var b = b;
|
||||
@@ -763,7 +783,7 @@ class Bytes {
|
||||
return new Bytes(new BytesData(length));
|
||||
}
|
||||
|
||||
public static function ofString( s : String, ?encoding : Dynamic ) : Bytes {
|
||||
public static function ofString( s : String, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : Bytes {
|
||||
var a = new Array();
|
||||
// utf16-decode and utf8-encode
|
||||
var i = 0;
|
||||
@@ -797,6 +817,23 @@ class Bytes {
|
||||
return new Bytes(b);
|
||||
}
|
||||
|
||||
public static function ofHex( s : String ) : Bytes {
|
||||
if ( (s.length & 1) != 0 ) throw "Not a hex string (odd number of digits)";
|
||||
var a = new Array();
|
||||
var i = 0;
|
||||
var len = s.length >> 1;
|
||||
while( i < len ) {
|
||||
var high = StringTools.fastCodeAt(s, i*2);
|
||||
var low = StringTools.fastCodeAt(s, i*2 + 1);
|
||||
high = (high & 0xF) + ( (high & 0x40) >> 6 ) * 9;
|
||||
low = (low & 0xF) + ( (low & 0x40) >> 6 ) * 9;
|
||||
a.push( ( (high << 4) | low) & 0xFF );
|
||||
i++;
|
||||
}
|
||||
|
||||
return new Bytes(new js.html.Uint8Array(a).buffer);
|
||||
}
|
||||
|
||||
public inline static function fastGet( b : BytesData, pos : Int ) : Int {
|
||||
// this requires that we have wrapped it with haxe.io.Bytes beforehand
|
||||
return untyped b.bytes[pos];
|
||||
@@ -920,7 +957,7 @@ class Bytes {
|
||||
setInt32(pos, v.low);
|
||||
}
|
||||
|
||||
public function getString( pos : Int, len : Int, ?encoding : Dynamic ) : String {
|
||||
public function getString( pos : Int, len : Int, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : String {
|
||||
if( outRange(pos,len) ) throw Error.OutsideBounds;
|
||||
|
||||
var b = new hl.Bytes(len + 1);
|
||||
@@ -963,7 +1000,7 @@ class Bytes {
|
||||
return new Bytes(b,length);
|
||||
}
|
||||
|
||||
public static function ofString( s : String, ?encoding : Dynamic ) : Bytes @:privateAccess {
|
||||
public static function ofString( s : String, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : Bytes @:privateAccess {
|
||||
var size = 0;
|
||||
var b = s.bytes.utf16ToUtf8(0, size);
|
||||
return new Bytes(b,size);
|
||||
@@ -973,6 +1010,23 @@ class Bytes {
|
||||
return new Bytes(b.bytes,b.length);
|
||||
}
|
||||
|
||||
public static function ofHex( s : String ) : Bytes {
|
||||
var len = s.length;
|
||||
if ( (len & 1) != 0 ) throw "Not a hex string (odd number of digits)";
|
||||
var l = len >> 1;
|
||||
var b = new hl.Bytes(l);
|
||||
for (i in 0...l)
|
||||
{
|
||||
var high = s.charCodeAt(i*2);
|
||||
var low = s.charCodeAt(i*2 + 1);
|
||||
high = (high & 0xf) + ( (high & 0x40) >> 6 ) * 9;
|
||||
low = (low & 0xf) + ( (low & 0x40) >> 6 ) * 9;
|
||||
b.setUI8(i, ( (high << 4) | low) & 0xff );
|
||||
}
|
||||
|
||||
return new Bytes(b,l);
|
||||
}
|
||||
|
||||
public inline static function fastGet( b : BytesData, pos : Int ) : Int {
|
||||
return b[pos];
|
||||
}
|
||||
@@ -1002,14 +1056,15 @@ extern class Bytes {
|
||||
public function getInt64( pos : Int ) : haxe.Int64;
|
||||
public function setInt32( pos : Int, v : Int ) : Void;
|
||||
public function setInt64( pos : Int, v : haxe.Int64 ) : Void;
|
||||
public function getString( pos : Int, len : Int, ?encoding : Dynamic ) : String;
|
||||
public function getString( pos : Int, len : Int, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : String;
|
||||
public function toString() : String;
|
||||
public function toHex() : String;
|
||||
public function getData() : BytesData;
|
||||
public static function alloc( length : Int ) : Bytes;
|
||||
@:pure
|
||||
public static function ofString( s : String, ?encoding : Dynamic ) : Bytes;
|
||||
public static function ofString( s : String, ?encoding : #if (haxe_ver >= 4) haxe.io.Encoding #else Dynamic #end ) : Bytes;
|
||||
public static function ofData( b : BytesData ) : Bytes;
|
||||
public static function ofHex ( s : String ) : Bytes;
|
||||
public static function fastGet( b : BytesData, pos : Int ) : Int;
|
||||
static function __init__():Void {
|
||||
haxe.io.Error;
|
||||
|
||||
@@ -3432,35 +3432,36 @@ class NativeCFFI {
|
||||
#end
|
||||
|
||||
#if hl
|
||||
@:cffi private static function lime_vorbis_file_bitrate (vorbisFile:Dynamic, bitstream:Int):Int;
|
||||
@:cffi private static function lime_vorbis_file_bitrate_instant (vorbisFile:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_clear (vorbisFile:Dynamic):Void;
|
||||
@:cffi private static function lime_vorbis_file_comment (vorbisFile:Dynamic, bitstream:Int):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_crosslap (vorbisFile:Dynamic, otherVorbisFile:Dynamic):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_from_bytes (bytes:Dynamic):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_from_file (path:String):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_info (vorbisFile:Dynamic, bitstream:Int):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_pcm_seek (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_pcm_seek_lap (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_pcm_seek_page (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_pcm_seek_page_lap (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_raw_seek (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_raw_seek_lap (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_pcm_tell (vorbisFile:Dynamic):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_pcm_total (vorbisFile:Dynamic, bitstream:Int):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_raw_tell (vorbisFile:Dynamic):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_raw_total (vorbisFile:Dynamic, bitstream:Int):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_read (vorbisFile:Dynamic, buffer:Dynamic, position:Int, length:Int, bigendianp:Bool, word:Int, signed:Bool):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_read_float (vorbisFile:Dynamic, pcmChannels:Dynamic, samples:Int):Dynamic;
|
||||
@:cffi private static function lime_vorbis_file_seekable (vorbisFile:Dynamic):Bool;
|
||||
@:cffi private static function lime_vorbis_file_serial_number (vorbisFile:Dynamic, bitstream:Int):Int;
|
||||
@:cffi private static function lime_vorbis_file_streams (vorbisFile:Dynamic):Int;
|
||||
@:cffi private static function lime_vorbis_file_time_seek (vorbisFile:Dynamic, s:Float):Int;
|
||||
@:cffi private static function lime_vorbis_file_time_seek_lap (vorbisFile:Dynamic, s:Float):Int;
|
||||
@:cffi private static function lime_vorbis_file_time_seek_page (vorbisFile:Dynamic, s:Float):Int;
|
||||
@:cffi private static function lime_vorbis_file_time_seek_page_lap (vorbisFile:Dynamic, s:Float):Int;
|
||||
@:cffi private static function lime_vorbis_file_time_tell (vorbisFile:Dynamic):Float;
|
||||
@:cffi private static function lime_vorbis_file_time_total (vorbisFile:Dynamic, bitstream:Int):Float;
|
||||
// TODO
|
||||
private static function lime_vorbis_file_bitrate (vorbisFile:Dynamic, bitstream:Int):Int { return 0; }
|
||||
private static function lime_vorbis_file_bitrate_instant (vorbisFile:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_clear (vorbisFile:Dynamic):Void {}
|
||||
private static function lime_vorbis_file_comment (vorbisFile:Dynamic, bitstream:Int):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_crosslap (vorbisFile:Dynamic, otherVorbisFile:Dynamic):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_from_bytes (bytes:Dynamic):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_from_file (path:String):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_info (vorbisFile:Dynamic, bitstream:Int):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_pcm_seek (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_pcm_seek_lap (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_pcm_seek_page (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_pcm_seek_page_lap (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_raw_seek (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_raw_seek_lap (vorbisFile:Dynamic, posLow:Dynamic, posHigh:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_pcm_tell (vorbisFile:Dynamic):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_pcm_total (vorbisFile:Dynamic, bitstream:Int):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_raw_tell (vorbisFile:Dynamic):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_raw_total (vorbisFile:Dynamic, bitstream:Int):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_read (vorbisFile:Dynamic, buffer:Dynamic, position:Int, length:Int, bigendianp:Bool, word:Int, signed:Bool):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_read_float (vorbisFile:Dynamic, pcmChannels:Dynamic, samples:Int):Dynamic { return null; }
|
||||
private static function lime_vorbis_file_seekable (vorbisFile:Dynamic):Bool { return false; }
|
||||
private static function lime_vorbis_file_serial_number (vorbisFile:Dynamic, bitstream:Int):Int { return 0; }
|
||||
private static function lime_vorbis_file_streams (vorbisFile:Dynamic):Int { return 0; }
|
||||
private static function lime_vorbis_file_time_seek (vorbisFile:Dynamic, s:Float):Int { return 0; }
|
||||
private static function lime_vorbis_file_time_seek_lap (vorbisFile:Dynamic, s:Float):Int { return 0; }
|
||||
private static function lime_vorbis_file_time_seek_page (vorbisFile:Dynamic, s:Float):Int { return 0; }
|
||||
private static function lime_vorbis_file_time_seek_page_lap (vorbisFile:Dynamic, s:Float):Int { return 0; }
|
||||
private static function lime_vorbis_file_time_tell (vorbisFile:Dynamic):Float { return 0; }
|
||||
private static function lime_vorbis_file_time_total (vorbisFile:Dynamic, bitstream:Int):Float { return 0; }
|
||||
#end
|
||||
|
||||
#end
|
||||
|
||||
Reference in New Issue
Block a user