瀏覽代碼

changed openal getf/geti to return a value

Nicolas Cannasse 8 年之前
父節點
當前提交
145073bb1f
共有 2 個文件被更改,包括 44 次插入26 次删除
  1. 30 18
      libs/sdl/openal.c
  2. 14 8
      libs/sdl/openal/AL.hx

+ 30 - 18
libs/sdl/openal.c

@@ -242,8 +242,10 @@ HL_PRIM void HL_NAME(al_listeneriv)(int param, vbyte *values) {
 
 // Get Listener parameters
 
-HL_PRIM void HL_NAME(al_get_listenerf)(int param, float *value) {
-	alGetListenerf(param, value);
+HL_PRIM float HL_NAME(al_get_listenerf)(int param) {
+	float value;
+	alGetListenerf(param, &value);
+	return value;
 }
 
 HL_PRIM void HL_NAME(al_get_listener3f)(int param, float *value1, float *value2, float *value3) {
@@ -254,8 +256,10 @@ HL_PRIM void HL_NAME(al_get_listenerfv)(int param, vbyte *values) {
 	alGetListenerfv(param, (ALfloat*)values);
 }
 
-HL_PRIM void HL_NAME(al_get_listeneri)(int param, int *value) {
-	alGetListeneri(param, value);
+HL_PRIM int HL_NAME(al_get_listeneri)(int param) {
+	int value;
+	alGetListeneri(param, &value);
+	return value;
 }
 
 HL_PRIM void HL_NAME(al_get_listener3i)(int param, int *value1, int *value2, int *value3) {
@@ -308,8 +312,10 @@ HL_PRIM void HL_NAME(al_sourceiv)(unsigned source, int param, vbyte *values) {
 
 // Get Source parameters
 
-HL_PRIM void HL_NAME(al_get_sourcef)(unsigned source, int param, float *value) {
-	alGetSourcef(source, param, value);
+HL_PRIM float HL_NAME(al_get_sourcef)(unsigned source, int param) {
+	float value;
+	alGetSourcef(source, param, &value);
+	return value;
 }
 
 HL_PRIM void HL_NAME(al_get_source3f)(unsigned source, int param, float *value1, float *value2, float *value3) {
@@ -320,8 +326,10 @@ HL_PRIM void HL_NAME(al_get_sourcefv)(unsigned source, int param, vbyte *values)
 	alGetSourcefv(source, param, (ALfloat*)values);
 }
 
-HL_PRIM void HL_NAME(al_get_sourcei)(unsigned source, int param, int *value) {
-	alGetSourcei(source, param, value);
+HL_PRIM int HL_NAME(al_get_sourcei)(unsigned source, int param) {
+	int value;
+	alGetSourcei(source, param, &value);
+	return value;
 }
 
 HL_PRIM void HL_NAME(al_get_source3i)(unsigned source, int param, int *value1, int *value2, int *value3) {
@@ -422,8 +430,10 @@ HL_PRIM void HL_NAME(al_bufferiv)(unsigned buffer, int param, vbyte *values) {
 
 // Get Buffer parameters
 
-HL_PRIM void HL_NAME(al_get_bufferf)(unsigned buffer, int param, float *value) {
-	alGetBufferf(buffer, param, value);
+HL_PRIM float HL_NAME(al_get_bufferf)(unsigned buffer, int param) {
+	float value;
+	alGetBufferf(buffer, param, &value);
+	return value;
 }
 
 HL_PRIM void HL_NAME(al_get_buffer3f)(unsigned buffer, int param, float *value1, float *value2, float *value3) {
@@ -434,8 +444,10 @@ HL_PRIM void HL_NAME(al_get_bufferfv)(unsigned buffer, int param, vbyte *values)
 	alGetBufferfv(buffer, param, (ALfloat*)values);
 }
 
-HL_PRIM void HL_NAME(al_get_bufferi)(unsigned buffer, int param, int *value) {
-	alGetBufferi(buffer, param, value);
+HL_PRIM int HL_NAME(al_get_bufferi)(unsigned buffer, int param) {
+	int value;
+	alGetBufferi(buffer, param, &value);
+	return value;
 }
 
 HL_PRIM void HL_NAME(al_get_buffer3i)(unsigned buffer, int param, int *value1, int *value2, int *value3) {
@@ -477,10 +489,10 @@ DEFINE_PRIM(_VOID, al_listeneri,  _I32 _I32);
 DEFINE_PRIM(_VOID, al_listener3i, _I32 _I32 _I32 _I32);
 DEFINE_PRIM(_VOID, al_listeneriv, _I32 _BYTES);
 
-DEFINE_PRIM(_VOID, al_get_listenerf,  _I32 _REF(_F32));
+DEFINE_PRIM(_F32, al_get_listenerf,  _I32);
 DEFINE_PRIM(_VOID, al_get_listener3f, _I32 _REF(_F32) _REF(_F32) _REF(_F32));
 DEFINE_PRIM(_VOID, al_get_listenerfv, _I32 _BYTES);
-DEFINE_PRIM(_VOID, al_get_listeneri,  _I32 _REF(_I32));
+DEFINE_PRIM(_I32, al_get_listeneri,  _I32);
 DEFINE_PRIM(_VOID, al_get_listener3i, _I32 _REF(_I32) _REF(_I32) _REF(_I32));
 DEFINE_PRIM(_VOID, al_get_listeneriv, _I32 _BYTES);
 
@@ -495,10 +507,10 @@ DEFINE_PRIM(_VOID, al_sourcei,  _I32 _I32 _I32);
 DEFINE_PRIM(_VOID, al_source3i, _I32 _I32 _I32 _I32 _I32);
 DEFINE_PRIM(_VOID, al_sourceiv, _I32 _I32 _BYTES);
 
-DEFINE_PRIM(_VOID, al_get_sourcef,  _I32 _I32 _REF(_F32));
+DEFINE_PRIM(_F32, al_get_sourcef,  _I32 _I32);
 DEFINE_PRIM(_VOID, al_get_source3f, _I32 _I32 _REF(_F32) _REF(_F32) _REF(_F32));
 DEFINE_PRIM(_VOID, al_get_sourcefv, _I32 _I32 _BYTES);
-DEFINE_PRIM(_VOID, al_get_sourcei,  _I32 _I32 _REF(_I32));
+DEFINE_PRIM(_I32, al_get_sourcei,  _I32 _I32);
 DEFINE_PRIM(_VOID, al_get_source3i, _I32 _I32 _REF(_I32) _REF(_I32) _REF(_I32));
 DEFINE_PRIM(_VOID, al_get_sourceiv, _I32 _I32 _BYTES);
 
@@ -526,9 +538,9 @@ DEFINE_PRIM(_VOID, al_bufferi,  _I32 _I32 _I32);
 DEFINE_PRIM(_VOID, al_buffer3i, _I32 _I32 _I32 _I32 _I32);
 DEFINE_PRIM(_VOID, al_bufferiv, _I32 _I32 _BYTES);
 
-DEFINE_PRIM(_VOID, al_get_bufferf,  _I32 _I32 _REF(_F32));
+DEFINE_PRIM(_F32, al_get_bufferf,  _I32 _I32);
 DEFINE_PRIM(_VOID, al_get_buffer3f, _I32 _I32 _REF(_F32) _REF(_F32) _REF(_F32));
 DEFINE_PRIM(_VOID, al_get_bufferfv, _I32 _I32 _BYTES);
-DEFINE_PRIM(_VOID, al_get_bufferi,  _I32 _I32 _REF(_I32));
+DEFINE_PRIM(_I32, al_get_bufferi,  _I32 _I32);
 DEFINE_PRIM(_VOID, al_get_buffer3i, _I32 _I32 _REF(_I32) _REF(_I32) _REF(_I32));
 DEFINE_PRIM(_VOID, al_get_bufferiv, _I32 _I32 _BYTES);

+ 14 - 8
libs/sdl/openal/AL.hx

@@ -1,7 +1,13 @@
 package openal;
 
-abstract Buffer(Int) to Int {}
-abstract Source(Int) to Int {}
+abstract Buffer(Int) {
+	public inline function toInt() : Int { return this; }
+	public static inline function ofInt( v : Int ) : Buffer { return cast v; }
+}
+abstract Source(Int) {
+	public inline function toInt() : Int { return this; }
+	public static inline function ofInt( v : Int ) : Source { return cast v; }
+}
 
 @:hlNative("sdl","al_")
 extern class AL {
@@ -44,10 +50,10 @@ extern class AL {
 	public static function listeneriv (param : Int, values : hl.Bytes) : Void;
 
 	// Get Listener parameters
-	public static function getListenerf  (param : Int, value  : hl.Ref<hl.F32>) : Void;
+	public static function getListenerf  (param : Int) : hl.F32;
 	public static function getListener3f (param : Int, value1 : hl.Ref<hl.F32>, value2 : hl.Ref<hl.F32>, value3 : hl.Ref<hl.F32>) : Void;
 	public static function getListenerfv (param : Int, values : hl.Bytes) : Void;
-	public static function getListeneri  (param : Int, value  : hl.Ref<Int>) : Void;
+	public static function getListeneri  (param : Int) : Int;
 	public static function getListener3i (param : Int, value1 : hl.Ref<Int>, value2 : hl.Ref<Int>, value3 : hl.Ref<Int>) : Void;
 	public static function getListeneriv (param : Int, values : hl.Bytes) : Void;
 
@@ -65,10 +71,10 @@ extern class AL {
 	public static function sourceiv (source : Source, param : Int, values : hl.Bytes) : Void;
 
 	// Get Source parameters
-	public static function getSourcef  (source : Source, param : Int, value  : hl.Ref<hl.F32>) : Void;
+	public static function getSourcef  (source : Source, param : Int) : hl.F32;
 	public static function getSource3f (source : Source, param : Int, value1 : hl.Ref<hl.F32>, value2 : hl.Ref<hl.F32>, value3 : hl.Ref<hl.F32>) : Void;
 	public static function getSourcefv (source : Source, param : Int, values : hl.Bytes) : Void;
-	public static function getSourcei  (source : Source, param : Int, value  : hl.Ref<Int>) : Void;
+	public static function getSourcei  (source : Source, param : Int) : Int;
 	public static function getSource3i (source : Source, param : Int, value1 : hl.Ref<Int>, value2 : hl.Ref<Int>, value3 : hl.Ref<Int>) : Void;
 	public static function getSourceiv (source : Source, param : Int, values : hl.Bytes) : Void;
 
@@ -102,10 +108,10 @@ extern class AL {
 	public static function bufferiv (buffer : Buffer, param : Int, values : hl.Bytes) : Void;
 
 	// Get Buffer parameters
-	public static function getBufferf  (buffer : Buffer, param : Int, value  : hl.Ref<hl.F32>) : Void;
+	public static function getBufferf  (buffer : Buffer, param : Int) : hl.F32;
 	public static function getBuffer3f (buffer : Buffer, param : Int, value1 : hl.Ref<hl.F32>, value2 : hl.Ref<hl.F32>, value3 : hl.Ref<hl.F32>) : Void;
 	public static function getBufferfv (buffer : Buffer, param : Int, values : hl.Bytes) : Void;
-	public static function getBufferi  (buffer : Buffer, param : Int, value  : hl.Ref<Int>) : Void;
+	public static function getBufferi  (buffer : Buffer, param : Int) : Int;
 	public static function getBuffer3i (buffer : Buffer, param : Int, value1 : hl.Ref<Int>, value2 : hl.Ref<Int>, value3 : hl.Ref<Int>) : Void;
 	public static function getBufferiv (buffer : Buffer, param : Int, values : hl.Bytes) : Void;