diff options
| author | ptitSeb <seebastien.chev@gmail.com> | 2023-09-16 13:49:09 +0200 |
|---|---|---|
| committer | ptitSeb <seebastien.chev@gmail.com> | 2023-09-16 13:49:39 +0200 |
| commit | 5903f0208689b3996ff8c6439ed5b25fc2f8666e (patch) | |
| tree | 7faecc56ffcf9fc38df9dd093d3502cd2a6139d5 /src | |
| parent | 28dcd34624afb9bd14d838d5c1ae6123c8dc49fd (diff) | |
| download | box64-5903f0208689b3996ff8c6439ed5b25fc2f8666e.tar.gz box64-5903f0208689b3996ff8c6439ed5b25fc2f8666e.zip | |
Improvd steam/proton handling, and gstreamer initialization and a large bunch of gtk improvments
Diffstat (limited to 'src')
83 files changed, 5526 insertions, 600 deletions
diff --git a/src/include/gtkclass.h b/src/include/gtkclass.h index 8a88a0d2..4b9cd1f9 100644 --- a/src/include/gtkclass.h +++ b/src/include/gtkclass.h @@ -788,6 +788,314 @@ typedef struct my_GstTaskPoolClass_s { void* _gst_reserved[4-1]; } my_GstTaskPoolClass_t; +typedef struct my_GstElementClass_s { + my_GstObjectClass_t parent_class; + void* metadata; + void* elementfactory; + void* padtemplates; + int numpadtemplates; + uint32_t pad_templ_cookie; + void (*pad_added) (void* element, void* pad); + void (*pad_removed) (void* element, void* pad); + void (*no_more_pads) (void* element); + void* (*request_new_pad) (void* element, void* templ, void* name, void* caps); + void (*release_pad) (void* element, void* pad); + int (*get_state) (void* element, void* state, void* pending, uint64_t timeout); + int (*set_state) (void* element, int state); + int (*change_state) (void* element, int transition); + void (*state_changed) (void* element, int oldstate, int newstate, int pending); + void (*set_bus) (void* element, void* bus); + void* (*provide_clock) (void* element); + int (*set_clock) (void* element, void* clock); + int (*send_event) (void* element, void* event); + int (*query) (void* element, void* query); + int (*post_message) (void* element, void* message); + void (*set_context) (void* element, void* context); + void* _gst_reserved[20-2]; +} my_GstElementClass_t; + +typedef struct my_GstBinClass_s { + my_GstElementClass_t parent_class; + void* pool; + void (*element_added) (void* bin, void* child); + void (*element_removed) (void* bin, void* child); + int (*add_element) (void* bin, void* element); + int (*remove_element) (void* bin, void* element); + void (*handle_message) (void* bin, void* message); + int (*do_latency) (void* bin); + void (*deep_element_added) (void* bin, void* sub_bin, void* child); + void (*deep_element_removed) (void* bin, void* sub_bin, void* child); + void* _gst_reserved[4-2]; +} my_GstBinClass_t; + +typedef struct my_GstBaseTransformClass_s { + my_GstElementClass_t parent_class; + int passthrough_on_same_caps; + int transform_ip_on_passthrough; + void* (*transform_caps) (void* trans, int direction, void* caps, void* filter); + void* (*fixate_caps) (void* trans, int direction, void* caps, void* othercaps); + int (*accept_caps) (void* trans, int direction, void* caps); + int (*set_caps) (void* trans, void* incaps, void* outcaps); + int (*query) (void* trans, int direction, void* query); + int (*decide_allocation) (void* trans, void* query); + int (*filter_meta) (void* trans, void* query, size_t api, void* params); + int (*propose_allocation) (void* trans, void* decide_query, void* query); + int (*transform_size) (void* trans, int direction, void* caps, size_t size, void* othercaps, void* othersize); + int (*get_unit_size) (void* trans, void* caps, void* size); + int (*start) (void* trans); + int (*stop) (void* trans); + int (*sink_event) (void* trans, void* event); + int (*src_event) (void* trans, void* event); + int (*prepare_output_buffer) (void* trans, void* input, void* outbuf); + int (*copy_metadata) (void* trans, void* input, void* outbuf); + int (*transform_meta) (void* trans, void* outbuf, void* meta, void* inbuf); + void (*before_transform) (void* trans, void* buffer); + int (*transform) (void* trans, void* inbuf, void* outbuf); + int (*transform_ip) (void* trans, void* buf); + int (*submit_input_buffer) (void* trans, int is_discont, void* input); + int (*generate_output) (void* trans, void* outbuf); + void* _gst_reserved[20-2]; +} my_GstBaseTransformClass_t; + +typedef struct my_GstVideoDecoderClass_s { + my_GstElementClass_t parent_class; + int (*open) (void* decoder); + int (*close) (void* decoder); + int (*start) (void* decoder); + int (*stop) (void* decoder); + int (*parse) (void* decoder, void* frame, void* adapter, int at_eos); + int (*set_format) (void* decoder, void* state); + int (*reset) (void* decoder, int hard); + int (*finish) (void* decoder); + int (*handle_frame) (void* decoder, void* frame); + int (*sink_event) (void* decoder, void* event); + int (*src_event) (void* decoder, void* event); + int (*negotiate) (void* decoder); + int (*decide_allocation) (void* decoder, void* query); + int (*propose_allocation) (void* decoder, void* query); + int (*flush) (void* decoder); + int (*sink_query) (void* decoder, void* query); + int (*src_query) (void* decoder, void* query); + void* (*getcaps) (void* decoder, void* filter); + int (*drain) (void* decoder); + int (*transform_meta) (void* decoder, void* frame, void* meta); + int (*handle_missing_data) (void* decoder, uint64_t timestamp, uint64_t duration); + void* padding[20-7]; +} my_GstVideoDecoderClass_t; + +typedef struct my_GstVideoEncoderClass_s { + my_GstElementClass_t parent_class; + int (*open) (void* encoder); + int (*close) (void* encoder); + int (*start) (void* encoder); + int (*stop) (void* encoder); + int (*set_format) (void* encoder, void* state); + int (*handle_frame) (void* encoder, void* frame); + int (*reset) (void* encoder, int hard); + int (*finish) (void* encoder); + int (*pre_push) (void* encoder, void* frame); + void* (*getcaps) (void* encoder, void* filter); + int (*sink_event) (void* encoder, void* event); + int (*src_event) (void* encoder, void* event); + int (*negotiate) (void* encoder); + int (*decide_allocation) (void* encoder, void* query); + int (*propose_allocation) (void* encoder, void* query); + int (*flush) (void* encoder); + int (*sink_query) (void* encoder, void* query); + int (*src_query) (void* encoder, void* query); + int (*transform_meta) (void* encoder, void* frame, void* meta); + void* _gst_reserved[20-4]; +} my_GstVideoEncoderClass_t; + +typedef struct my_GstBaseSinkClass_s { + my_GstElementClass_t parent_class; + void* (*get_caps) (void* sink, void* filter); + int (*set_caps) (void* sink, void* caps); + void* (*fixate) (void* sink, void* caps); + int (*activate_pull) (void* sink, int active); + void (*get_times) (void* sink, void* buffer, void* start, void* end); + int (*propose_allocation) (void* sink, void* query); + int (*start) (void* sink); + int (*stop) (void* sink); + int (*unlock) (void* sink); + int (*unlock_stop) (void* sink); + int (*query) (void* sink, void* query); + int (*event) (void* sink, void* event); + int (*wait_event) (void* sink, void* event); + int (*prepare) (void* sink, void* buffer); + int (*prepare_list) (void* sink, void* buffer_list); + int (*preroll) (void* sink, void* buffer); + int (*render) (void* sink, void* buffer); + int (*render_list) (void* sink, void* buffer_list); + void* _gst_reserved[20]; +} my_GstBaseSinkClass_t; + +typedef struct my_GstVideoSinkClass_s +{ + my_GstBaseSinkClass_t parent_class; + int (*show_frame) (void* video_sink, void* buf); + int (*set_info) (void* video_sink, void* caps, void* info); + void* _gst_reserved[4-1]; +} my_GstVideoSinkClass_t; + +typedef struct my_GstGLBaseFilterClass_s +{ + my_GstBaseTransformClass_t parent_class; + int supported_gl_api; + int (*gl_start) (void* filter); + void (*gl_stop) (void* filter); + int (*gl_set_caps) (void* filter, void* incaps, void* outcaps); + void* _padding[4]; +} my_GstGLBaseFilterClass_t; + +typedef struct my_GstGLFilterClass_s +{ + my_GstGLBaseFilterClass_t parent_class; + int (*set_caps) (void* filter, void* incaps, void* outcaps); + int (*filter) (void* filter, void* inbuf, void* outbuf); + int (*filter_texture) (void* filter, void* input, void* output); + int (*init_fbo) (void* filter); + void* (*transform_internal_caps) (void* filter, int direction, void* caps, void* filter_caps); + void* _padding[4]; +} my_GstGLFilterClass_t; + +typedef struct my_GstAggregatorClass_s { + my_GstElementClass_t parent_class; + int (*flush) (void* self); + void* (*clip) (void* self, void* aggregator_pad, void* buf); + int (*finish_buffer) (void* self, void* buffer); + int (*sink_event) (void* self, void* aggregator_pad, void* event); + int (*sink_query) (void* self, void* aggregator_pad, void* query); + int (*src_event) (void* self, void* event); + int (*src_query) (void* self, void* query); + int (*src_activate) (void* self, int mode, int active); + int (*aggregate) (void* self, int timeout); + int (*stop) (void* self); + int (*start) (void* self); + uint64_t (*get_next_time) (void* self); + void* (*create_new_pad) (void* self, void* templ, void* req_name, void* caps); + int (*update_src_caps) (void* self, void* caps, void* ret); + void* (*fixate_src_caps) (void* self, void* caps); + int (*negotiated_src_caps) (void* self, void* caps); + int (*decide_allocation) (void* self, void* query); + int (*propose_allocation) (void* self, void*pad, void* decide_query, void* query); + int (*negotiate) (void* self); + int (*sink_event_pre_queue) (void* self, void* aggregator_pad, void* event); + int (*sink_query_pre_queue) (void* self, void* aggregator_pad, void* query); + int (*finish_buffer_list) (void* self, void* bufferlist); + void (*peek_next_sample) (void* self, void* aggregator_pad); + void* _gst_reserved[20-5]; +} my_GstAggregatorClass_t; + +typedef struct my_GstVideoAggregatorClass_s +{ + my_GstAggregatorClass_t parent_class; + void* (*update_caps) (void* vagg, void* caps); + int (*aggregate_frames) (void* vagg, void* outbuffer); + int (*create_output_buffer) (void* vagg, void* outbuffer); + void (*find_best_format) (void* vagg, void* downstream_caps, void* best_info, void* at_least_one_alpha); + void* _gst_reserved[20]; +} my_GstVideoAggregatorClass_t; + +typedef struct my_GstPadClass_s { + my_GstObjectClass_t parent_class; + void (*linked) (void* pad, void* peer); + void (*unlinked) (void* pad, void* peer); + void* _gst_reserved[4]; +} my_GstPadClass_t; + +typedef struct my_GstAggregatorPadClass_s +{ + my_GstPadClass_t parent_class; + int (*flush) (void* aggpad, void* aggregator); + int (*skip_buffer) (void* aggpad, void* aggregator, void* buffer); + void* _gst_reserved[20]; +} my_GstAggregatorPadClass_t; + +typedef struct my_GstVideoAggregatorPadClass_s +{ + my_GstAggregatorPadClass_t parent_class; + void (*update_conversion_info) (void* pad); + int (*prepare_frame) (void* pad, void* vagg, void* buffer, void* prepared_frame); + void (*clean_frame) (void* pad, void* vagg, void* prepared_frame); + void (*prepare_frame_start) (void* pad, void* vagg, void* buffer, void* prepared_frame); + void (*prepare_frame_finish) (void* pad, void* vagg, void* prepared_frame); + void* _gst_reserved[20-2]; +} my_GstVideoAggregatorPadClass_t; + +typedef struct my_GstBaseSrcClass_s { + my_GstElementClass_t parent_class; + void* (*get_caps) (void* src, void* filter); + int (*negotiate) (void* src); + void* (*fixate) (void* src, void* caps); + int (*set_caps) (void* src, void* caps); + int (*decide_allocation) (void* src, void* query); + int (*start) (void* src); + int (*stop) (void* src); + void (*get_times) (void* src, void* buffer, void* start, void* end); + int (*get_size) (void* src, void* size); + int (*is_seekable) (void* src); + int (*prepare_seek_segment) (void* src, void* seek, void* segment); + int (*do_seek) (void* src, void* segment); + int (*unlock) (void* src); + int (*unlock_stop) (void* src); + int (*query) (void* src, void* query); + int (*event) (void* src, void* event); + int (*create) (void* src, uint64_t offset, uint32_t size, void* buf); + int (*alloc) (void* src, uint64_t offset, uint32_t size, void* buf); + int (*fill) (void* src, uint64_t offset, uint32_t size, void* buf); + void* _gst_reserved[20]; +} my_GstBaseSrcClass_t; + +typedef struct my_GstPushSrcClass_s { + my_GstBaseSrcClass_t parent_class; + int (*create) (void* src, void* buf); + int (*alloc) (void* src, void* buf); + int (*fill) (void* src, void* buf); + void* _gst_reserved[4]; +} my_GstPushSrcClass_t; + +typedef struct my_GstGLBaseSrcClass_s { + my_GstPushSrcClass_t parent_class; + int supported_gl_api; + int (*gl_start) (void* src); + void (*gl_stop) (void* src); + int (*fill_gl_memory) (void* src, void* mem); + void* _padding[4]; +} my_GstGLBaseSrcClass_t; + +typedef struct my_GstAudioDecoderClass_s +{ + my_GstElementClass_t parent_class; + int (*start) (void* dec); + int (*stop) (void* dec); + int (*set_format) (void* dec, void* caps); + int (*parse) (void* dec, void* adapter, void* offset, void* length); + int (*handle_frame) (void* dec, void* buffer); + void (*flush) (void* dec, int hard); + int (*pre_push) (void* dec, void* buffer); + int (*sink_event) (void* dec, void* event); + int (*src_event) (void* dec, void* event); + int (*open) (void* dec); + int (*close) (void* dec); + int (*negotiate) (void* dec); + int (*decide_allocation) (void* dec, void* query); + int (*propose_allocation) (void* dec, void* query); + int (*sink_query) (void* dec, void* query); + int (*src_query) (void* dec, void* query); + void* (*getcaps) (void* dec, void* filter); + int (*transform_meta) (void* enc, void* outbuf, void* meta, void* inbuf); + void* _gst_reserved[20 - 4]; +} my_GstAudioDecoderClass_t; + +typedef struct my_GstVideoFilterClass_s { + my_GstBaseTransformClass_t parent_class; + int (*set_info) (void* filter, void* incaps, void* in_info, void* outcaps, void* out_info); + int (*transform_frame) (void* filter, void* inframe, void* outframe); + int (*transform_frame_ip) (void* filter, void* frame); + void* _gst_reserved[4]; +} my_GstVideoFilterClass_t; + typedef struct my_GDBusProxyClass_s { my_GObjectClass_t parent_class; void (*g_properties_changed) (void* proxy, void* changed_properties, const char* const* invalidated_properties); @@ -795,6 +1103,20 @@ typedef struct my_GDBusProxyClass_s { void* padding[32]; } my_GDBusProxyClass_t; +typedef struct my_GTypeInterface_s { + size_t g_type; + size_t g_instance_type; +} my_GTypeInterface_t; + +typedef struct my_GstURIHandlerInterface_s { + my_GTypeInterface_t parent; + int (* get_type) (size_t type); + void* (* get_protocols) (size_t type); + void* (* get_uri) (void* handler); + int (* set_uri) (void* handler, void* uri, void* error); +} my_GstURIHandlerInterface_t; + + // GTypeValueTable typedef struct my_GTypeValueTable_s { void (*value_init) (void* value); @@ -902,18 +1224,47 @@ GTKCLASS(GstObject) \ GTKCLASS(GstAllocator) \ GTKCLASS(GstTaskPool) \ GTKCLASS(GDBusProxy) \ +GTKCLASS(GstElement) \ +GTKCLASS(GstBin) \ +GTKCLASS(GstBaseTransform) \ +GTKCLASS(GstVideoDecoder) \ +GTKCLASS(GstVideoEncoder) \ +GTKCLASS(GstBaseSink) \ +GTKCLASS(GstVideoSink) \ +GTKCLASS(GstGLBaseFilter) \ +GTKCLASS(GstGLFilter) \ +GTKCLASS(GstAggregator) \ +GTKCLASS(GstVideoAggregator) \ +GTKCLASS(GstPad) \ +GTKCLASS(GstAggregatorPad) \ +GTKCLASS(GstVideoAggregatorPad) \ +GTKCLASS(GstBaseSrc) \ +GTKCLASS(GstPushSrc) \ +GTKCLASS(GstGLBaseSrc) \ +GTKCLASS(GstAudioDecoder) \ +GTKCLASS(GstVideoFilter) \ +GTKIFACE(GstURIHandler) \ #define GTKCLASS(A) void Set##A##ID(size_t id); +#define GTKIFACE(A) GTKCLASS(A) GTKCLASSES() +#undef GTKIFACE #undef GTKCLASS void SetGTypeName(void* f); +void SetGTypeParent(void* f); void SetGClassPeek(void* f); void AutoBridgeGtk(void*(*ref)(size_t), void(*unref)(void*)); void* wrapCopyGTKClass(void* cl, size_t type); void* unwrapCopyGTKClass(void* klass, size_t type); +void unwrapGTKInterface(void* cl, size_t type); +void* wrapCopyGTKInterface(void* cl, size_t type); +void* unwrapCopyGTKInterface(void* iface, size_t type); + +void addRegisteredClass(size_t klass, char* name); + typedef struct my_signal_s { uint64_t sign; // signature void* data; diff --git a/src/include/super80.h b/src/include/super80.h new file mode 100644 index 00000000..b6f7f965 --- /dev/null +++ b/src/include/super80.h @@ -0,0 +1,82 @@ +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) \ +GO(5) \ +GO(6) \ +GO(7) \ +GO(8) \ +GO(9) \ +GO(10) \ +GO(11) \ +GO(12) \ +GO(13) \ +GO(14) \ +GO(15) \ +GO(16) \ +GO(17) \ +GO(18) \ +GO(19) \ +GO(20) \ +GO(21) \ +GO(22) \ +GO(23) \ +GO(24) \ +GO(25) \ +GO(26) \ +GO(27) \ +GO(28) \ +GO(29) \ +GO(30) \ +GO(31) \ +GO(32) \ +GO(33) \ +GO(34) \ +GO(35) \ +GO(36) \ +GO(37) \ +GO(38) \ +GO(39) \ +GO(40) \ +GO(41) \ +GO(42) \ +GO(43) \ +GO(44) \ +GO(45) \ +GO(46) \ +GO(47) \ +GO(48) \ +GO(49) \ +GO(50) \ +GO(51) \ +GO(52) \ +GO(53) \ +GO(54) \ +GO(55) \ +GO(56) \ +GO(57) \ +GO(58) \ +GO(59) \ +GO(60) \ +GO(61) \ +GO(62) \ +GO(63) \ +GO(64) \ +GO(65) \ +GO(66) \ +GO(67) \ +GO(68) \ +GO(69) \ +GO(70) \ +GO(71) \ +GO(72) \ +GO(73) \ +GO(74) \ +GO(75) \ +GO(76) \ +GO(77) \ +GO(78) \ +GO(79) \ + diff --git a/src/library_list.h b/src/library_list.h index 3ff62eac..4167549e 100644 --- a/src/library_list.h +++ b/src/library_list.h @@ -195,11 +195,21 @@ GO("libsecret-1.so.0", secret1) GO("libpci.so.3", libpci) GO("libgmp.so.10", gmp) GO("libFAudio.so.0", faudio) +GO("libgstallocators-1.0.so.0", gstallocators) GO("libgstapp-1.0.so.0", gstapp) GO("libgstaudio-1.0.so.0", gstaudio) GO("libgstbase-1.0.so.0", gstbase) +GO("libgstcheck-1.0.so.0", gstcheck) +GO("libgstcontroller-1.0.so.0", gstcontroller) +GO("libgstfft-1.0.so.0", gstfft) GO("libgstgl-1.0.so.0", gstgl) +GO("libgstnet-1.0.so.0", gstnet) +GO("libgstpbutils-1.0.so.0", gstpbutils) GO("libgstreamer-1.0.so.0", gstreamer) +GO("libgstriff-1.0.so.0", gstriff) +GO("libgstrtp-1.0.so.0", gstrtp) +GO("libgstrtsp-1.0.so.0", gstrtsp) +GO("libgstsdp-1.0.so.0", gstsdp) GO("libgsttag-1.0.so.0", gsttag) GO("libgstvideo-1.0.so.0", gstvideo) GO("libxshmfence.so.1", xshmfence) diff --git a/src/main.c b/src/main.c index 377eea1f..e7957bf5 100644 --- a/src/main.c +++ b/src/main.c @@ -129,6 +129,7 @@ int box64_showsegv = 0; int box64_showbt = 0; int box64_isglibc234 = 0; char* box64_libGL = NULL; +char* box64_custom_gstreamer = NULL; uintptr_t fmod_smc_start = 0; uintptr_t fmod_smc_end = 0; uint32_t default_gs = 0x53; @@ -874,13 +875,16 @@ void LoadEnvPath(path_collection_t *col, const char* defpath, const char* env) { const char* p = getenv(env); if(p) { - printf_log(LOG_INFO, "%s: ", env); ParseList(p, col, 1); } else { - printf_log(LOG_INFO, "Using default %s: ", env); ParseList(defpath, col, 1); } +} + +void PrintCollection(path_collection_t* col, const char* env) +{ if(LOG_INFO<=box64_log) { + printf_log(LOG_INFO, "%s: ", env); for(int i=0; i<col->size; i++) printf_log(LOG_INFO, "%s%s", col->paths[i], (i==col->size-1)?"\n":":"); } @@ -1280,6 +1284,10 @@ void endBox64() box_free(box64_libGL); box64_libGL = NULL; } + if(box64_custom_gstreamer) { + box_free(box64_custom_gstreamer); + box64_custom_gstreamer = NULL; + } } @@ -1305,7 +1313,7 @@ static void load_rcfiles() } } -void pressure_vessel(int argc, const char** argv, int nextarg); +void pressure_vessel(int argc, const char** argv, int nextarg, const char* prog); extern char** environ; int main(int argc, const char **argv, char **env) { init_malloc_hook(); @@ -1383,18 +1391,18 @@ int main(int argc, const char **argv, char **env) { #if 1 // pre-check for pressure-vessel-wrap if(strstr(prog, "pressure-vessel-wrap")==(prog+strlen(prog)-strlen("pressure-vessel-wrap"))) { - // pressure-vessel-wrap detecter, skipping it and all -- args until "--" if needed printf_log(LOG_INFO, "BOX64: pressure-vessel-wrap detected\n"); - pressure_vessel(argc, argv, nextarg+1); + pressure_vessel(argc, argv, nextarg+1, prog); } #endif int ld_libs_args = -1; + int is_custom_gstreamer = 0; // check if this is wine if(!strcmp(prog, "wine64") - || !strcmp(prog, "wine64-development") - || !strcmp(prog, "wine") - || (strlen(prog)>5 && !strcmp(prog+strlen(prog)-strlen("/wine"), "/wine")) - || (strlen(prog)>7 && !strcmp(prog+strlen(prog)-strlen("/wine64"), "/wine64"))) { + || !strcmp(prog, "wine64-development") + || !strcmp(prog, "wine") + || (strrchr(prog, '/') && !strcmp(strrchr(prog,'/'), "/wine")) + || (strrchr(prog, '/') && !strcmp(strrchr(prog,'/'), "/wine64"))) { const char* prereserve = getenv("WINEPRELOADRESERVE"); printf_log(LOG_INFO, "BOX64: Wine64 detected, WINEPRELOADRESERVE=\"%s\"\n", prereserve?prereserve:""); if(wine_preloaded) @@ -1410,9 +1418,23 @@ int main(int argc, const char **argv, char **env) { } } box64_wine = 1; - } else + // check if it's proton, with it's custom gstreamer build, to disable gtk3 loading + char tmp[strlen(prog)+100]; + strcpy(tmp, prog); + char* pp = strrchr(tmp, '/'); + if(pp) { + *pp = '\0'; // remove the wine binary call + strcat(tmp, "/../lib64/gstreamer-1.0"); + // check if it exist + if(FileExist(tmp, 0)) { + //printf_log(LOG_INFO, "BOX64: Custom gstreamer detected, disable gtk wrapping\n"); + //box64_nogtk = 1; + //is_custom_gstreamer = 1; + box64_custom_gstreamer = box_strdup(tmp); + } + } + } else if(strstr(prog, "ld-musl-x86_64.so.1")) { // check if ld-musl-x86_64.so.1 is used - if(strstr(prog, "ld-musl-x86_64.so.1")) { printf_log(LOG_INFO, "BOX64: ld-musl detected, trying to workaround and use system ld-linux\n"); box64_musl = 1; // skip ld-musl and go through args unti "--" is found, handling "--library-path" to add some libs to BOX64_LD_LIBRARY @@ -1443,6 +1465,8 @@ int main(int argc, const char **argv, char **env) { // Append ld_list if it exist if(ld_libs_args!=-1) PrependList(&my_context->box64_ld_lib, argv[ld_libs_args], 1); + if(is_custom_gstreamer) + AddPath("libwayland-client.so.0", &my_context->box64_emulated_libs, 0); my_context->box64path = ResolveFile(argv[0], &my_context->box64_path); // prepare all other env. var @@ -1486,6 +1510,9 @@ int main(int argc, const char **argv, char **env) { } } } + // print PATH and LD_LIB used + PrintCollection(&my_context->box64_ld_lib, "BOX64 LIB PATH"); + PrintCollection(&my_context->box64_path, "BOX64 BIN PATH"); // lets build argc/argv stuff printf_log(LOG_INFO, "Looking for %s\n", prog); my_context->argv[0] = ResolveFile(prog, &my_context->box64_path); diff --git a/src/steam.c b/src/steam.c index 6a955e43..2bbbe6cb 100644 --- a/src/steam.c +++ b/src/steam.c @@ -9,7 +9,11 @@ #include "box64context.h" #include "fileutils.h" -void pressure_vessel(int argc, const char** argv, int nextarg) +#ifndef MAX_PATH +#define MAX_PATH 4096 +#endif + +void pressure_vessel(int argc, const char** argv, int nextarg, const char* prog) { // skip all the parameter, but parse some of them const char* runtime = getenv("PRESSURE_VESSEL_RUNTIME"); @@ -29,11 +33,6 @@ void pressure_vessel(int argc, const char** argv, int nextarg) strcat(tmp, argv[nextarg]+strlen("--env-if-host=PRESSURE_VESSEL_APP_")); char *p = strchr(tmp, '='); *p ='\0'; ++p; - if(runtime) { - memmove(p+strlen(runtime), p, strlen(p)); - memmove(p, runtime, strlen(runtime)); - p[strlen(runtime)]= ':'; - } ld_lib_path = 1; setenv(tmp, p, 1); printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", tmp, p); @@ -62,12 +61,67 @@ void pressure_vessel(int argc, const char** argv, int nextarg) } ++nextarg; } - if(runtime && !ld_lib_path) { - setenv("LD_LIBRARY_PATH", runtime, 1); - printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", "LD_LIBRARY_PATH", runtime); + if(runtime) { + char sniper[MAX_PATH] = {0}; + // build sniper path + strcpy(sniper, prog); + char* p = strrchr(sniper, '/'); + if(p) { + *p = '\0'; + strcat(sniper, "/../../"); + strcat(sniper, runtime); + } else { + printf_log(LOG_INFO, "Warning, could not guess sniper runtime path\n"); + strcpy(sniper, runtime); // it's wrong... + } + printf_log(LOG_DEBUG, "pressure-vessel sniper env: %s\n", sniper); + // TODO: read metadata from sniper folder and analyse [Environment] section + strcat(sniper, "/files"); // this is the sniper root + // do LD_LIBRARY_PATH + { + char tmp[MAX_PATH*4] = {0}; + // prepare folders, using ldconfig + snprintf(tmp, sizeof(tmp), "ldconfig -i -n %s/lib/x86_64-linux-gnu", sniper); + if(system(tmp)<0) printf_log(LOG_INFO, "%s failed\n", tmp); + snprintf(tmp, sizeof(tmp), "ldconfig -i -n %s/lib/i386-linux-gnu", sniper); + if(system(tmp)<0) printf_log(LOG_INFO, "%s failed\n", tmp); + snprintf(tmp, sizeof(tmp), "ldconfig -i -n %s/lib", sniper); + if(system(tmp)<0) printf_log(LOG_INFO, "%s failed\n", tmp); + // setup LD_LIBRARY_PATH + const char* ld = getenv("LD_LIBRARY_PATH"); + snprintf(tmp, sizeof(tmp), "%s/lib/x86_64-linux-gnu:%s/lib/i386-linux-gnu:%s/lib:%s", sniper, sniper, sniper, ld?ld:""); + setenv("LD_LIBRARY_PATH", tmp, 1); + printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", "LD_LIBRARY_PATH", tmp); + } + // do XDG_DATA_DIRS + { + char tmp[MAX_PATH*4] = {0}; + const char* xdg = getenv("XDG_DATA_DIRS"); + snprintf(tmp, sizeof(tmp), "%s/share:%s", sniper, xdg?xdg:""); + setenv("XDG_DATA_DIRS", tmp, 1); + printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", "XDG_DATA_DIRS", tmp); + } + // disabled GI_TYPELIB_PATH for now + if(0) + { + char tmp[MAX_PATH*4] = {0}; + snprintf(tmp, sizeof(tmp), "%s/lib/x86_64-linux-gnu/girepository-1.0:%s/lib/i386-linux-gnu/girepository-1.0:%s/lib/girepository-1.0", sniper, sniper, sniper); + setenv("GI_TYPELIB_PATH", tmp, 1); + printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", "GI_TYPELIB_PATH", tmp); + } + // disabled GST_PLUGIN_SYSTEM_PATH + if(0) + { + char tmp[MAX_PATH*4] = {0}; + snprintf(tmp, sizeof(tmp), "%s/lib/x86_64-linux-gnu/gstreamer-1.0:%s/lib/i386-linux-gnu/gstreamer-1.0:%s/lib/gstreamer-1.0", sniper, sniper, sniper); + setenv("GST_PLUGIN_SYSTEM_PATH", tmp, 1); + printf_log(LOG_DEBUG, "setenv(%s, %s, 1)\n", "GST_PLUGIN_SYSTEM_PATH", tmp); + } + // should disable native gtk on box86 for now, until better wrapping of gstreamer is done on box86 too + // setenv("BOX86_NOGTK", "1", 1); } printf_log(LOG_DEBUG, "Ready to launch \"%s\", nextarg=%d, argc=%d\n", argv[nextarg], nextarg, argc); - const char* prog = argv[nextarg]; + prog = argv[nextarg]; my_context = NewBox64Context(argc - nextarg); int x86 = my_context->box86path?FileIsX86ELF(argv[nextarg]):0; int x64 = my_context->box64path?FileIsX64ELF(argv[nextarg]):0; diff --git a/src/tools/gtkclass.c b/src/tools/gtkclass.c index 269d8429..35f37bd8 100644 --- a/src/tools/gtkclass.c +++ b/src/tools/gtkclass.c @@ -21,9 +21,12 @@ int is_gtk3 = 0; static bridge_t* my_bridge = NULL; static const char* (*g_type_name)(size_t) = NULL; +static size_t (*g_type_parent)(size_t) = NULL; static void* (*g_type_class_peek)(size_t) = NULL; #define GTKCLASS(A) static size_t my_##A = (size_t)-1; +#define GTKIFACE(A) GTKCLASS(A) GTKCLASSES() +#undef GTKIFACE #undef GTKCLASS KHASH_SET_INIT_INT(signalmap) @@ -42,21 +45,11 @@ typedef struct sigoffset_array_s { KHASH_MAP_INIT_INT64(sigoffset, sigoffset_array_t) static kh_sigoffset_t *my_sigoffset = NULL; +KHASH_MAP_INIT_INT64(customclass, char*) +static kh_customclass_t *my_customclass = NULL; + // ---- Defining the multiple functions now ----- -#define SUPER() \ -GO(0) \ -GO(1) \ -GO(2) \ -GO(3) \ -GO(4) \ -GO(5) \ -GO(6) \ -GO(7) \ -GO(8) \ -GO(9) \ -GO(10) \ -GO(11) \ -GO(12) +#include "super80.h" #define WRAPPED(A, NAME, RET, DEF, FMT, ...) \ static uintptr_t my_##NAME##_fct_##A = 0; \ @@ -80,6 +73,38 @@ static void* find_##NAME##_##A(void* fct) \ if(my_##NAME##_##A##_fct_5 == (uintptr_t)fct) return my_##NAME##_##A##_5; \ if(my_##NAME##_##A##_fct_6 == (uintptr_t)fct) return my_##NAME##_##A##_6; \ if(my_##NAME##_##A##_fct_7 == (uintptr_t)fct) return my_##NAME##_##A##_7; \ + if(my_##NAME##_##A##_fct_8 == (uintptr_t)fct) return my_##NAME##_##A##_8; \ + if(my_##NAME##_##A##_fct_9 == (uintptr_t)fct) return my_##NAME##_##A##_9; \ + if(my_##NAME##_##A##_fct_10 == (uintptr_t)fct) return my_##NAME##_##A##_10; \ + if(my_##NAME##_##A##_fct_11 == (uintptr_t)fct) return my_##NAME##_##A##_11; \ + if(my_##NAME##_##A##_fct_12 == (uintptr_t)fct) return my_##NAME##_##A##_12; \ + if(my_##NAME##_##A##_fct_13 == (uintptr_t)fct) return my_##NAME##_##A##_13; \ + if(my_##NAME##_##A##_fct_14 == (uintptr_t)fct) return my_##NAME##_##A##_14; \ + if(my_##NAME##_##A##_fct_15 == (uintptr_t)fct) return my_##NAME##_##A##_15; \ + if(my_##NAME##_##A##_fct_16 == (uintptr_t)fct) return my_##NAME##_##A##_16; \ + if(my_##NAME##_##A##_fct_17 == (uintptr_t)fct) return my_##NAME##_##A##_17; \ + if(my_##NAME##_##A##_fct_18 == (uintptr_t)fct) return my_##NAME##_##A##_18; \ + if(my_##NAME##_##A##_fct_19 == (uintptr_t)fct) return my_##NAME##_##A##_19; \ + if(my_##NAME##_##A##_fct_20 == (uintptr_t)fct) return my_##NAME##_##A##_20; \ + if(my_##NAME##_##A##_fct_21 == (uintptr_t)fct) return my_##NAME##_##A##_21; \ + if(my_##NAME##_##A##_fct_22 == (uintptr_t)fct) return my_##NAME##_##A##_22; \ + if(my_##NAME##_##A##_fct_23 == (uintptr_t)fct) return my_##NAME##_##A##_23; \ + if(my_##NAME##_##A##_fct_24 == (uintptr_t)fct) return my_##NAME##_##A##_24; \ + if(my_##NAME##_##A##_fct_25 == (uintptr_t)fct) return my_##NAME##_##A##_25; \ + if(my_##NAME##_##A##_fct_26 == (uintptr_t)fct) return my_##NAME##_##A##_26; \ + if(my_##NAME##_##A##_fct_27 == (uintptr_t)fct) return my_##NAME##_##A##_27; \ + if(my_##NAME##_##A##_fct_28 == (uintptr_t)fct) return my_##NAME##_##A##_28; \ + if(my_##NAME##_##A##_fct_29 == (uintptr_t)fct) return my_##NAME##_##A##_29; \ + if(my_##NAME##_##A##_fct_30 == (uintptr_t)fct) return my_##NAME##_##A##_30; \ + if(my_##NAME##_##A##_fct_31 == (uintptr_t)fct) return my_##NAME##_##A##_31; \ + if(my_##NAME##_##A##_fct_32 == (uintptr_t)fct) return my_##NAME##_##A##_32; \ + if(my_##NAME##_##A##_fct_33 == (uintptr_t)fct) return my_##NAME##_##A##_33; \ + if(my_##NAME##_##A##_fct_34 == (uintptr_t)fct) return my_##NAME##_##A##_34; \ + if(my_##NAME##_##A##_fct_35 == (uintptr_t)fct) return my_##NAME##_##A##_35; \ + if(my_##NAME##_##A##_fct_36 == (uintptr_t)fct) return my_##NAME##_##A##_36; \ + if(my_##NAME##_##A##_fct_37 == (uintptr_t)fct) return my_##NAME##_##A##_37; \ + if(my_##NAME##_##A##_fct_38 == (uintptr_t)fct) return my_##NAME##_##A##_38; \ + if(my_##NAME##_##A##_fct_39 == (uintptr_t)fct) return my_##NAME##_##A##_39; \ if(my_##NAME##_##A##_fct_0 == 0) {my_##NAME##_##A##_fct_0 = (uintptr_t)fct; return my_##NAME##_##A##_0; } \ if(my_##NAME##_##A##_fct_1 == 0) {my_##NAME##_##A##_fct_1 = (uintptr_t)fct; return my_##NAME##_##A##_1; } \ if(my_##NAME##_##A##_fct_2 == 0) {my_##NAME##_##A##_fct_2 = (uintptr_t)fct; return my_##NAME##_##A##_2; } \ @@ -88,7 +113,39 @@ static void* find_##NAME##_##A(void* fct) \ if(my_##NAME##_##A##_fct_5 == 0) {my_##NAME##_##A##_fct_5 = (uintptr_t)fct; return my_##NAME##_##A##_5; } \ if(my_##NAME##_##A##_fct_6 == 0) {my_##NAME##_##A##_fct_6 = (uintptr_t)fct; return my_##NAME##_##A##_6; } \ if(my_##NAME##_##A##_fct_7 == 0) {my_##NAME##_##A##_fct_7 = (uintptr_t)fct; return my_##NAME##_##A##_7; } \ - printf_log(LOG_NONE, "Warning, no more slot for " #NAME " gtkclass callback\n"); \ + if(my_##NAME##_##A##_fct_8 == 0) {my_##NAME##_##A##_fct_8 = (uintptr_t)fct; return my_##NAME##_##A##_8; } \ + if(my_##NAME##_##A##_fct_9 == 0) {my_##NAME##_##A##_fct_9 = (uintptr_t)fct; return my_##NAME##_##A##_9; } \ + if(my_##NAME##_##A##_fct_10 == 0) {my_##NAME##_##A##_fct_10 = (uintptr_t)fct; return my_##NAME##_##A##_10; } \ + if(my_##NAME##_##A##_fct_11 == 0) {my_##NAME##_##A##_fct_11 = (uintptr_t)fct; return my_##NAME##_##A##_11; } \ + if(my_##NAME##_##A##_fct_12 == 0) {my_##NAME##_##A##_fct_12 = (uintptr_t)fct; return my_##NAME##_##A##_12; } \ + if(my_##NAME##_##A##_fct_13 == 0) {my_##NAME##_##A##_fct_13 = (uintptr_t)fct; return my_##NAME##_##A##_13; } \ + if(my_##NAME##_##A##_fct_14 == 0) {my_##NAME##_##A##_fct_14 = (uintptr_t)fct; return my_##NAME##_##A##_14; } \ + if(my_##NAME##_##A##_fct_15 == 0) {my_##NAME##_##A##_fct_15 = (uintptr_t)fct; return my_##NAME##_##A##_15; } \ + if(my_##NAME##_##A##_fct_16 == 0) {my_##NAME##_##A##_fct_16 = (uintptr_t)fct; return my_##NAME##_##A##_16; } \ + if(my_##NAME##_##A##_fct_17 == 0) {my_##NAME##_##A##_fct_17 = (uintptr_t)fct; return my_##NAME##_##A##_17; } \ + if(my_##NAME##_##A##_fct_18 == 0) {my_##NAME##_##A##_fct_18 = (uintptr_t)fct; return my_##NAME##_##A##_18; } \ + if(my_##NAME##_##A##_fct_19 == 0) {my_##NAME##_##A##_fct_19 = (uintptr_t)fct; return my_##NAME##_##A##_19; } \ + if(my_##NAME##_##A##_fct_20 == 0) {my_##NAME##_##A##_fct_20 = (uintptr_t)fct; return my_##NAME##_##A##_20; } \ + if(my_##NAME##_##A##_fct_21 == 0) {my_##NAME##_##A##_fct_21 = (uintptr_t)fct; return my_##NAME##_##A##_21; } \ + if(my_##NAME##_##A##_fct_22 == 0) {my_##NAME##_##A##_fct_22 = (uintptr_t)fct; return my_##NAME##_##A##_22; } \ + if(my_##NAME##_##A##_fct_23 == 0) {my_##NAME##_##A##_fct_23 = (uintptr_t)fct; return my_##NAME##_##A##_23; } \ + if(my_##NAME##_##A##_fct_24 == 0) {my_##NAME##_##A##_fct_24 = (uintptr_t)fct; return my_##NAME##_##A##_24; } \ + if(my_##NAME##_##A##_fct_25 == 0) {my_##NAME##_##A##_fct_25 = (uintptr_t)fct; return my_##NAME##_##A##_25; } \ + if(my_##NAME##_##A##_fct_26 == 0) {my_##NAME##_##A##_fct_26 = (uintptr_t)fct; return my_##NAME##_##A##_26; } \ + if(my_##NAME##_##A##_fct_27 == 0) {my_##NAME##_##A##_fct_27 = (uintptr_t)fct; return my_##NAME##_##A##_27; } \ + if(my_##NAME##_##A##_fct_28 == 0) {my_##NAME##_##A##_fct_28 = (uintptr_t)fct; return my_##NAME##_##A##_28; } \ + if(my_##NAME##_##A##_fct_29 == 0) {my_##NAME##_##A##_fct_29 = (uintptr_t)fct; return my_##NAME##_##A##_29; } \ + if(my_##NAME##_##A##_fct_30 == 0) {my_##NAME##_##A##_fct_30 = (uintptr_t)fct; return my_##NAME##_##A##_30; } \ + if(my_##NAME##_##A##_fct_31 == 0) {my_##NAME##_##A##_fct_31 = (uintptr_t)fct; return my_##NAME##_##A##_31; } \ + if(my_##NAME##_##A##_fct_32 == 0) {my_##NAME##_##A##_fct_32 = (uintptr_t)fct; return my_##NAME##_##A##_32; } \ + if(my_##NAME##_##A##_fct_33 == 0) {my_##NAME##_##A##_fct_33 = (uintptr_t)fct; return my_##NAME##_##A##_33; } \ + if(my_##NAME##_##A##_fct_34 == 0) {my_##NAME##_##A##_fct_34 = (uintptr_t)fct; return my_##NAME##_##A##_34; } \ + if(my_##NAME##_##A##_fct_35 == 0) {my_##NAME##_##A##_fct_35 = (uintptr_t)fct; return my_##NAME##_##A##_35; } \ + if(my_##NAME##_##A##_fct_36 == 0) {my_##NAME##_##A##_fct_36 = (uintptr_t)fct; return my_##NAME##_##A##_36; } \ + if(my_##NAME##_##A##_fct_37 == 0) {my_##NAME##_##A##_fct_37 = (uintptr_t)fct; return my_##NAME##_##A##_37; } \ + if(my_##NAME##_##A##_fct_38 == 0) {my_##NAME##_##A##_fct_38 = (uintptr_t)fct; return my_##NAME##_##A##_38; } \ + if(my_##NAME##_##A##_fct_39 == 0) {my_##NAME##_##A##_fct_39 = (uintptr_t)fct; return my_##NAME##_##A##_39; } \ + printf_log(LOG_NONE, "Warning, no more slot for " #A " " #NAME " gtkclass callback\n"); \ return NULL; \ } @@ -104,6 +161,38 @@ static void* reverse_##NAME##_##A(wrapper_t W, void* fct) if((void*)my_##NAME##_##A##_5 == fct) return (void*)my_##NAME##_##A##_fct_5;\ if((void*)my_##NAME##_##A##_6 == fct) return (void*)my_##NAME##_##A##_fct_6;\ if((void*)my_##NAME##_##A##_7 == fct) return (void*)my_##NAME##_##A##_fct_7;\ + if((void*)my_##NAME##_##A##_8 == fct) return (void*)my_##NAME##_##A##_fct_8;\ + if((void*)my_##NAME##_##A##_9 == fct) return (void*)my_##NAME##_##A##_fct_9;\ + if((void*)my_##NAME##_##A##_10 == fct) return (void*)my_##NAME##_##A##_fct_10;\ + if((void*)my_##NAME##_##A##_11 == fct) return (void*)my_##NAME##_##A##_fct_11;\ + if((void*)my_##NAME##_##A##_12 == fct) return (void*)my_##NAME##_##A##_fct_12;\ + if((void*)my_##NAME##_##A##_13 == fct) return (void*)my_##NAME##_##A##_fct_13;\ + if((void*)my_##NAME##_##A##_14 == fct) return (void*)my_##NAME##_##A##_fct_14;\ + if((void*)my_##NAME##_##A##_15 == fct) return (void*)my_##NAME##_##A##_fct_15;\ + if((void*)my_##NAME##_##A##_16 == fct) return (void*)my_##NAME##_##A##_fct_16;\ + if((void*)my_##NAME##_##A##_17 == fct) return (void*)my_##NAME##_##A##_fct_17;\ + if((void*)my_##NAME##_##A##_18 == fct) return (void*)my_##NAME##_##A##_fct_18;\ + if((void*)my_##NAME##_##A##_19 == fct) return (void*)my_##NAME##_##A##_fct_19;\ + if((void*)my_##NAME##_##A##_20 == fct) return (void*)my_##NAME##_##A##_fct_20;\ + if((void*)my_##NAME##_##A##_21 == fct) return (void*)my_##NAME##_##A##_fct_21;\ + if((void*)my_##NAME##_##A##_22 == fct) return (void*)my_##NAME##_##A##_fct_22;\ + if((void*)my_##NAME##_##A##_23 == fct) return (void*)my_##NAME##_##A##_fct_23;\ + if((void*)my_##NAME##_##A##_24 == fct) return (void*)my_##NAME##_##A##_fct_24;\ + if((void*)my_##NAME##_##A##_25 == fct) return (void*)my_##NAME##_##A##_fct_25;\ + if((void*)my_##NAME##_##A##_26 == fct) return (void*)my_##NAME##_##A##_fct_26;\ + if((void*)my_##NAME##_##A##_27 == fct) return (void*)my_##NAME##_##A##_fct_27;\ + if((void*)my_##NAME##_##A##_28 == fct) return (void*)my_##NAME##_##A##_fct_28;\ + if((void*)my_##NAME##_##A##_29 == fct) return (void*)my_##NAME##_##A##_fct_29;\ + if((void*)my_##NAME##_##A##_30 == fct) return (void*)my_##NAME##_##A##_fct_30;\ + if((void*)my_##NAME##_##A##_31 == fct) return (void*)my_##NAME##_##A##_fct_31;\ + if((void*)my_##NAME##_##A##_32 == fct) return (void*)my_##NAME##_##A##_fct_32;\ + if((void*)my_##NAME##_##A##_33 == fct) return (void*)my_##NAME##_##A##_fct_33;\ + if((void*)my_##NAME##_##A##_34 == fct) return (void*)my_##NAME##_##A##_fct_34;\ + if((void*)my_##NAME##_##A##_35 == fct) return (void*)my_##NAME##_##A##_fct_35;\ + if((void*)my_##NAME##_##A##_36 == fct) return (void*)my_##NAME##_##A##_fct_36;\ + if((void*)my_##NAME##_##A##_37 == fct) return (void*)my_##NAME##_##A##_fct_37;\ + if((void*)my_##NAME##_##A##_38 == fct) return (void*)my_##NAME##_##A##_fct_38;\ + if((void*)my_##NAME##_##A##_39 == fct) return (void*)my_##NAME##_##A##_fct_39;\ Dl_info info; \ if(dladdr(fct, &info)) \ return (void*)AddCheckBridge(my_bridge, W, fct, 0, NULL); \ @@ -121,14 +210,46 @@ static void autobridge_##NAME##_##A(wrapper_t W, void* fct) \ } #define WRAPPER(A, NAME, RET, DEF, FMT, ...) \ -WRAPPED(0, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ -WRAPPED(1, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ -WRAPPED(2, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ -WRAPPED(3, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ -WRAPPED(4, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ -WRAPPED(5, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ -WRAPPED(6, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ -WRAPPED(7, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 0, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 1, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 2, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 3, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 4, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 5, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 6, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 7, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 8, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED( 9, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(10, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(11, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(12, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(13, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(14, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(15, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(16, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(17, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(18, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(19, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(20, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(21, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(22, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(23, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(24, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(25, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(26, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(27, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(28, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(29, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(30, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(31, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(32, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(33, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(34, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(35, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(36, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(37, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(38, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ +WRAPPED(39, NAME##_##A, RET, DEF, FMT, __VA_ARGS__) \ FIND(A, NAME) \ REVERSE(A, NAME) \ AUTOBRIDGE(A, NAME) @@ -2440,6 +2561,975 @@ static void bridgeGstTaskPoolClass(my_GstTaskPoolClass_t* class) #undef SUPERGO +// ----- GstElementClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstElement,pad_added, void, (void* element, void* pad), "pp", element, pad); +WRAPPER(GstElement,pad_removed, void, (void* element, void* pad), "pp", element, pad); +WRAPPER(GstElement,no_more_pads, void, (void* element), "p", element); +WRAPPER(GstElement,request_new_pad, void*, (void* element, void* templ, void* name, void* caps), "pppp", element, templ, name, caps); +WRAPPER(GstElement,release_pad, void, (void* element, void* pad), "pp", element, pad); +WRAPPER(GstElement,get_state, int, (void* element, void* state, void* pending, uint64_t timeout), "pppU", element, state, pending, timeout); +WRAPPER(GstElement,set_state, int, (void* element, int state), "pi", element, state); +WRAPPER(GstElement,change_state, int, (void* element, int transition), "pi", element, transition); +WRAPPER(GstElement,state_changed, void, (void* element, int oldstate, int newstate, int pending), "piii", element, oldstate, newstate, pending); +WRAPPER(GstElement,set_bus, void, (void* element, void* bus), "pp", element, bus); +WRAPPER(GstElement,provide_clock, void*, (void* element), "p", element); +WRAPPER(GstElement,set_clock, int, (void* element, void* clock), "pp", element, clock); +WRAPPER(GstElement,send_event, int, (void* element, void* event), "pp", element, event); +WRAPPER(GstElement,query, int, (void* element, void* query), "pp", element, query); +WRAPPER(GstElement,post_message, int, (void* element, void* message), "pp", element, message); +WRAPPER(GstElement,set_context, void, (void* element, void* context), "pp", element, context); + +#define SUPERGO() \ + GO(pad_added, vFpp); \ + GO(pad_removed, vFpp); \ + GO(no_more_pads, vFp); \ + GO(request_new_pad, pFpppp);\ + GO(release_pad, vFpp); \ + GO(get_state, iFppU); \ + GO(set_state, iFpi); \ + GO(change_state, iFpi); \ + GO(state_changed, vFpiii); \ + GO(set_bus, vFpp); \ + GO(provide_clock, pFp); \ + GO(set_clock, iFpp); \ + GO(send_event, iFpp); \ + GO(query, iFpp); \ + GO(post_message, iFpp); \ + GO(set_context, vFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstElementClass(my_GstElementClass_t* class) +{ + wrapGstObjectClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstElement (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstElementClass(my_GstElementClass_t* class) +{ + unwrapGstObjectClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstElement (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstElementClass(my_GstElementClass_t* class) +{ + bridgeGstObjectClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstElement (W, class->A) + SUPERGO() + #undef GO +} + +#undef SUPERGO + +// ----- GstBinClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstBin,element_added, void, (void* bin, void* child), "pp", bin, child); +WRAPPER(GstBin,element_removed, void, (void* bin, void* child), "pp", bin, child); +WRAPPER(GstBin,add_element, int, (void* bin, void* element), "pp", bin, element); +WRAPPER(GstBin,remove_element, int, (void* bin, void* element), "pp", bin, element); +WRAPPER(GstBin,handle_message, void, (void* bin, void* message), "pp", bin, message); +WRAPPER(GstBin,do_latency, int, (void* bin), "p", bin); +WRAPPER(GstBin,deep_element_added, void, (void* bin, void* sub_bin, void* child), "ppp", bin, sub_bin, child); +WRAPPER(GstBin,deep_element_removed, void, (void* bin, void* sub_bin, void* child), "ppp", bin, sub_bin, child); + +#define SUPERGO() \ + GO(element_added, vFpp); \ + GO(element_removed, vFpp); \ + GO(add_element, iFpp); \ + GO(remove_element, iFpp); \ + GO(handle_message, vFpp); \ + GO(do_latency, iFp); \ + GO(deep_element_added, vFppp); \ + GO(deep_element_removed, vFppp);\ + +// wrap (so bridge all calls, just in case) +static void wrapGstBinClass(my_GstBinClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstBin (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstBinClass(my_GstBinClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstBin (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstBinClass(my_GstBinClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstBin (W, class->A) + SUPERGO() + #undef GO +} + +#undef SUPERGO + +// ----- GstBaseTransformClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstBaseTransform, transform_caps, void*, (void* trans, int direction, void* caps, void* filter), "pipp", trans, direction, caps, filter); +WRAPPER(GstBaseTransform, fixate_caps, void*, (void* trans, int direction, void* caps, void* othercaps), "pipp", trans, direction, caps, othercaps); +WRAPPER(GstBaseTransform, accept_caps, int, (void* trans, int direction, void* caps), "pip", trans, direction, caps); +WRAPPER(GstBaseTransform, set_caps, int, (void* trans, void* incaps, void* outcaps), "ppp", trans, incaps, outcaps); +WRAPPER(GstBaseTransform, query, int, (void* trans, int direction, void* query), "pip", trans, direction, query); +WRAPPER(GstBaseTransform, decide_allocation, int, (void* trans, void* query), "pp", trans, query ); +WRAPPER(GstBaseTransform, filter_meta, int, (void* trans, void* query, size_t api, void* params), "ppLp", trans, query, api, params); +WRAPPER(GstBaseTransform, propose_allocation, int, (void* trans, void* decide_query, void* query), "ppp", trans, decide_query, query ); +WRAPPER(GstBaseTransform, transform_size, int, (void* trans, int direction, void* caps, size_t size, void* othercaps, void* othersize), "pipLpp", trans, direction, caps, size, othercaps, othersize); +WRAPPER(GstBaseTransform, get_unit_size, int, (void* trans, void* caps, void* size), "ppp", trans, caps, size); +WRAPPER(GstBaseTransform, start, int, (void* trans), "p", trans); +WRAPPER(GstBaseTransform, stop, int, (void* trans), "p", trans); +WRAPPER(GstBaseTransform, sink_event, int, (void* trans, void* event), "pp", trans, event ); +WRAPPER(GstBaseTransform, src_event, int, (void* trans, void* event), "pp", trans, event ); +WRAPPER(GstBaseTransform, prepare_output_buffer, int, (void* trans, void* input, void* outbuf), "ppp", trans, input, outbuf ); +WRAPPER(GstBaseTransform, copy_metadata, int, (void* trans, void* input, void* outbuf), "ppp", trans, input, outbuf ); +WRAPPER(GstBaseTransform, transform_meta, int, (void* trans, void* outbuf, void* meta, void* inbuf), "pppp", trans, outbuf, meta, inbuf ); +WRAPPER(GstBaseTransform, before_transform, void, (void* trans, void* buffer), "pp", trans, buffer ); +WRAPPER(GstBaseTransform, transform, int, (void* trans, void* inbuf, void* outbuf), "ppp", trans, inbuf, outbuf ); +WRAPPER(GstBaseTransform, transform_ip, int, (void* trans, void* buf), "pp", trans, buf ); +WRAPPER(GstBaseTransform, submit_input_buffer, int, (void* trans, int is_discont, void* input), "pip", trans, is_discont, input ); +WRAPPER(GstBaseTransform, generate_output, int, (void* trans, void* outbuf), "pp", trans, outbuf ); + +#define SUPERGO() \ + GO(transform_caps, pFpipp); \ + GO(fixate_caps, pFpipp); \ + GO(accept_caps, iFpip); \ + GO(set_caps, iFppp); \ + GO(query, iFpip); \ + GO(decide_allocation, iFpp); \ + GO(filter_meta, iFppLp); \ + GO(propose_allocation, iFppp); \ + GO(transform_size, iFpipLpp); \ + GO(get_unit_size, iFppp); \ + GO(start, iFp); \ + GO(stop, iFp); \ + GO(sink_event, iFpp); \ + GO(src_event, iFpp); \ + GO(prepare_output_buffer, iFppp); \ + GO(copy_metadata, iFppp); \ + GO(transform_meta, iFpppp); \ + GO(before_transform, vFpp); \ + GO(transform, iFppp); \ + GO(transform_ip, iFpp); \ + GO(submit_input_buffer, iFpip); \ + GO(generate_output, iFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstBaseTransformClass(my_GstBaseTransformClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstBaseTransform (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstBaseTransformClass(my_GstBaseTransformClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstBaseTransform (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstBaseTransformClass(my_GstBaseTransformClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstBaseTransform (W, class->A) + SUPERGO() + #undef GO +} + +#undef SUPERGO +// ----- GstVideoDecoderClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstVideoDecoder, open, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, close, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, start, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, stop, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, parse, int, (void* decoder, void* frame, void* adapter, int at_eos), "pppi", decoder, frame, adapter, at_eos); +WRAPPER(GstVideoDecoder, set_format, int, (void* decoder, void* state), "pp", decoder, state); +WRAPPER(GstVideoDecoder, reset, int, (void* decoder, int hard), "pi", decoder, hard); +WRAPPER(GstVideoDecoder, finish, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, handle_frame, int, (void* decoder, void* frame), "pp", decoder, frame); +WRAPPER(GstVideoDecoder, sink_event, int, (void* decoder, void* event), "pp", decoder, event); +WRAPPER(GstVideoDecoder, src_event, int, (void* decoder, void* event), "pp", decoder, event); +WRAPPER(GstVideoDecoder, negotiate, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, decide_allocation, int, (void* decoder, void* query), "pp", decoder, query); +WRAPPER(GstVideoDecoder, propose_allocation, int, (void* decoder, void* query), "pp", decoder, query); +WRAPPER(GstVideoDecoder, flush, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, sink_query, int, (void* decoder, void* query), "pp", decoder, query); +WRAPPER(GstVideoDecoder, src_query, int, (void* decoder, void* query), "pp", decoder, query); +WRAPPER(GstVideoDecoder, getcaps, void*, (void* decoder, void* filter), "pp", decoder, filter); +WRAPPER(GstVideoDecoder, drain, int, (void* decoder), "p", decoder); +WRAPPER(GstVideoDecoder, transform_meta, int, (void* decoder, void* frame, void* meta), "ppp", decoder, frame, meta); +WRAPPER(GstVideoDecoder, handle_missing_data, int, (void* decoder, uint64_t timestamp, uint64_t duration), "pUU", decoder, timestamp, duration); + +#define SUPERGO() \ + GO(open, iFp); \ + GO(close, iFp); \ + GO(start, iFp); \ + GO(stop, iFp); \ + GO(parse, iFpppi); \ + GO(set_format, iFpp); \ + GO(reset, iFp); \ + GO(finish, iFp); \ + GO(handle_frame, iFpp); \ + GO(sink_event, iFpp); \ + GO(src_event, iFpp); \ + GO(negotiate, iFp); \ + GO(decide_allocation, iFpp); \ + GO(propose_allocation, iFpp); \ + GO(flush, iFp); \ + GO(sink_query, iFpp); \ + GO(src_query, iFpp); \ + GO(getcaps, pFpp); \ + GO(drain, iFp); \ + GO(transform_meta, iFppp); \ + GO(handle_missing_data, iFpUU); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstVideoDecoderClass(my_GstVideoDecoderClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstVideoDecoder (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstVideoDecoderClass(my_GstVideoDecoderClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstVideoDecoder (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstVideoDecoderClass(my_GstVideoDecoderClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstVideoDecoder (W, class->A) + SUPERGO() + #undef GO +} + +#undef SUPERGO +// ----- GstVideoEncoderClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstVideoEncoder, open, int, (void* encoder), "p", encoder); +WRAPPER(GstVideoEncoder, close, int, (void* encoder), "p", encoder); +WRAPPER(GstVideoEncoder, start, int, (void* encoder), "p", encoder); +WRAPPER(GstVideoEncoder, stop, int, (void* encoder), "p", encoder); +WRAPPER(GstVideoEncoder, set_format, int, (void* encoder, void* state), "pp", encoder, state); +WRAPPER(GstVideoEncoder, handle_frame, int, (void* encoder, void* frame), "pp", encoder, frame); +WRAPPER(GstVideoEncoder, reset, int, (void* encoder, int hard), "pi", encoder, hard); +WRAPPER(GstVideoEncoder, finish, int, (void* encoder), "p", encoder); +WRAPPER(GstVideoEncoder, pre_push, int, (void* encoder, void* frame), "pp", encoder, frame); +WRAPPER(GstVideoEncoder, getcaps, void*, (void* encoder, void* filter), "pp", encoder, filter); +WRAPPER(GstVideoEncoder, sink_event, int, (void* encoder, void* event), "pp", encoder, event); +WRAPPER(GstVideoEncoder, src_event, int, (void* encoder, void* event), "pp", encoder, event); +WRAPPER(GstVideoEncoder, negotiate, int, (void* encoder), "p", encoder); +WRAPPER(GstVideoEncoder, decide_allocation, int, (void* encoder, void* query), "pp", encoder, query); +WRAPPER(GstVideoEncoder, propose_allocation, int, (void* encoder, void* query), "pp", encoder, query); +WRAPPER(GstVideoEncoder, flush, int, (void* encoder), "p", encoder); +WRAPPER(GstVideoEncoder, sink_query, int, (void* encoder, void* query), "pp", encoder, query); +WRAPPER(GstVideoEncoder, src_query, int, (void* encoder, void* query), "pp", encoder, query); +WRAPPER(GstVideoEncoder, transform_meta, int, (void* encoder, void* frame, void* meta), "ppp", encoder, frame, meta); + +#define SUPERGO() \ + GO(open, iFp); \ + GO(close, iFp); \ + GO(start, iFp); \ + GO(stop, iFp); \ + GO(set_format, iFpp); \ + GO(handle_frame, iFpp); \ + GO(reset, iFp); \ + GO(finish, iFp); \ + GO(pre_push, iFpp); \ + GO(getcaps, pFpp); \ + GO(sink_event, iFpp); \ + GO(src_event, iFpp); \ + GO(negotiate, iFp); \ + GO(decide_allocation, iFpp); \ + GO(propose_allocation, iFpp); \ + GO(flush, iFp); \ + GO(sink_query, iFpp); \ + GO(src_query, iFpp); \ + GO(transform_meta, iFppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstVideoEncoderClass(my_GstVideoEncoderClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstVideoEncoder (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstVideoEncoderClass(my_GstVideoEncoderClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstVideoEncoder (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstVideoEncoderClass(my_GstVideoEncoderClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstVideoEncoder (W, class->A) + SUPERGO() + #undef GO +} + +#undef SUPERGO +// ----- GstBaseSinkClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstBaseSink, get_caps, void*, (void* sink, void* filter), "pp", sink, filter); +WRAPPER(GstBaseSink, set_caps, int, (void* sink, void* caps), "pp", sink, caps); +WRAPPER(GstBaseSink, fixate, void* , (void* sink, void* caps), "pp", sink, caps); +WRAPPER(GstBaseSink, activate_pull, int, (void* sink, int active), "pi", sink, active); +WRAPPER(GstBaseSink, get_times, void, (void* sink, void* buffer, void* start, void* end), "pppp", sink, buffer, start, end); +WRAPPER(GstBaseSink, propose_allocation, int, (void* sink, void* query), "pp", sink, query); +WRAPPER(GstBaseSink, start, int, (void* sink), "p", sink); +WRAPPER(GstBaseSink, stop, int, (void* sink), "p", sink); +WRAPPER(GstBaseSink, unlock, int, (void* sink), "p", sink); +WRAPPER(GstBaseSink, unlock_stop, int, (void* sink), "p", sink); +WRAPPER(GstBaseSink, query, int, (void* sink, void* query), "pp", sink, query); +WRAPPER(GstBaseSink, event, int, (void* sink, void* event), "pp", sink, event); +WRAPPER(GstBaseSink, wait_event, int, (void* sink, void* event), "pp", sink, event); +WRAPPER(GstBaseSink, prepare, int, (void* sink, void* buffer), "pp", sink, buffer); +WRAPPER(GstBaseSink, prepare_list, int, (void* sink, void* buffer_list), "pp", sink, buffer_list); +WRAPPER(GstBaseSink, preroll, int, (void* sink, void* buffer), "pp", sink, buffer); +WRAPPER(GstBaseSink, render, int, (void* sink, void* buffer), "pp", sink, buffer); +WRAPPER(GstBaseSink, render_list, int, (void* sink, void* buffer_list), "pp", sink, buffer_list); + +#define SUPERGO() \ + GO(get_caps, pFpp); \ + GO(set_caps, iFpp); \ + GO(fixate, pFpp); \ + GO(activate_pull, iFpi); \ + GO(get_times, vFpppp); \ + GO(propose_allocation, iFpp); \ + GO(start, iFp); \ + GO(stop, iFp); \ + GO(unlock, iFp); \ + GO(unlock_stop, iFp); \ + GO(query, iFpp); \ + GO(event, iFpp); \ + GO(wait_event, iFpp); \ + GO(prepare, iFpp); \ + GO(prepare_list, iFpp); \ + GO(preroll, iFpp); \ + GO(render, iFpp); \ + GO(render_list, iFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstBaseSinkClass(my_GstBaseSinkClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstBaseSink (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstBaseSinkClass(my_GstBaseSinkClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstBaseSink (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstBaseSinkClass(my_GstBaseSinkClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstBaseSink (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstVideoSinkClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstVideoSink, show_frame, int, (void* video_sink, void* buf), "pp", video_sink, buf); +WRAPPER(GstVideoSink, set_info, int, (void* video_sink, void* caps, void* info), "ppp", video_sink, caps, info); + +#define SUPERGO() \ + GO(show_frame, iFpp); \ + GO(set_info, iFppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstVideoSinkClass(my_GstVideoSinkClass_t* class) +{ + wrapGstBaseSinkClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstVideoSink (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstVideoSinkClass(my_GstVideoSinkClass_t* class) +{ + unwrapGstBaseSinkClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstVideoSink (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstVideoSinkClass(my_GstVideoSinkClass_t* class) +{ + bridgeGstBaseSinkClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstVideoSink (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstGLBaseFilterClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstGLBaseFilter, gl_start, int, (void* filter), "p", filter); +WRAPPER(GstGLBaseFilter, gl_stop, void, (void* filter), "p", filter); +WRAPPER(GstGLBaseFilter, gl_set_caps, int, (void* filter, void* incaps, void* outcaps), "ppp", filter, incaps, outcaps); + +#define SUPERGO() \ + GO(gl_start, iFp); \ + GO(gl_stop, vFp); \ + GO(gl_set_caps, iFppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstGLBaseFilterClass(my_GstGLBaseFilterClass_t* class) +{ + wrapGstBaseTransformClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstGLBaseFilter (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstGLBaseFilterClass(my_GstGLBaseFilterClass_t* class) +{ + unwrapGstBaseTransformClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstGLBaseFilter (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstGLBaseFilterClass(my_GstGLBaseFilterClass_t* class) +{ + bridgeGstBaseTransformClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstGLBaseFilter (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstGLFilterClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstGLFilter, set_caps, int, (void* filter, void* incaps, void* outcaps), "ppp", filter, incaps, outcaps); +WRAPPER(GstGLFilter, filter, int, (void* filter, void* inbuf, void* outbuf), "ppp", filter, inbuf, outbuf); +WRAPPER(GstGLFilter, filter_texture, int, (void* filter, void* input, void* output), "ppp", filter, input, output); +WRAPPER(GstGLFilter, init_fbo, int, (void* filter), "p", filter); +WRAPPER(GstGLFilter, transform_internal_caps, void*, (void* filter, int direction, void* caps, void* filter_caps), "pipp", filter, direction, caps, filter_caps); + +#define SUPERGO() \ + GO(set_caps, iFppp); \ + GO(filter, iFppp); \ + GO(filter_texture, iFppp); \ + GO(init_fbo, iFp); \ + GO(transform_internal_caps, pFpipp);\ + +// wrap (so bridge all calls, just in case) +static void wrapGstGLFilterClass(my_GstGLFilterClass_t* class) +{ + wrapGstGLBaseFilterClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstGLFilter (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstGLFilterClass(my_GstGLFilterClass_t* class) +{ + unwrapGstGLBaseFilterClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstGLFilter (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstGLFilterClass(my_GstGLFilterClass_t* class) +{ + bridgeGstGLBaseFilterClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstGLFilter (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstAggregatorClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstAggregator, flush, int, (void* self), "p", self); +WRAPPER(GstAggregator, clip, void*, (void* self, void* aggregator_pad, void* buf), "ppp", self, aggregator_pad, buf); +WRAPPER(GstAggregator, finish_buffer, int, (void* self, void* buffer), "pp", self, buffer); +WRAPPER(GstAggregator, sink_event, int, (void* self, void* aggregator_pad, void* event), "ppp", self, aggregator_pad, event); +WRAPPER(GstAggregator, sink_query, int, (void* self, void* aggregator_pad, void* query), "ppp", self, aggregator_pad, query); +WRAPPER(GstAggregator, src_event, int, (void* self, void* event), "pp", self, event); +WRAPPER(GstAggregator, src_query, int, (void* self, void* query), "pp", self, query); +WRAPPER(GstAggregator, src_activate, int, (void* self, int mode, int active), "pii", self, mode, active); +WRAPPER(GstAggregator, aggregate, int, (void* self, int timeout), "pi", self, timeout); +WRAPPER(GstAggregator, stop, int, (void* self), "p", self); +WRAPPER(GstAggregator, start, int, (void* self), "p", self); +WRAPPER(GstAggregator, get_next_time, uint64_t, (void* self), "p", self); +WRAPPER(GstAggregator, create_new_pad, void*, (void* self, void* templ, void* req_name, void* caps), "pppp", self, templ, req_name, caps); +WRAPPER(GstAggregator, update_src_caps, int, (void* self, void* caps, void* ret), "ppp", self, caps, ret); +WRAPPER(GstAggregator, fixate_src_caps, void*, (void* self, void* caps), "pp", self, caps); +WRAPPER(GstAggregator, negotiated_src_caps, int, (void* self, void* caps), "pp", self, caps); +WRAPPER(GstAggregator, decide_allocation, int, (void* self, void* query), "pp", self, query); +WRAPPER(GstAggregator, propose_allocation, int, (void* self, void* pad, void* decide_query, void* query), "pppp", self, pad, decide_query, query); +WRAPPER(GstAggregator, negotiate, int, (void* self), "p", self); +WRAPPER(GstAggregator, sink_event_pre_queue, int, (void* self, void* aggregator_pad, void* event), "ppp", self, aggregator_pad, event); +WRAPPER(GstAggregator, sink_query_pre_queue, int, (void* self, void* aggregator_pad, void* query), "ppp", self, aggregator_pad, query); +WRAPPER(GstAggregator, finish_buffer_list, int, (void* self, void* bufferlist), "pp", self, bufferlist); +WRAPPER(GstAggregator, peek_next_sample, void, (void* self, void* aggregator_pad), "pp", self, aggregator_pad); + +#define SUPERGO() \ + GO(flush, iFp); \ + GO(clip, pFppp); \ + GO(finish_buffer, iFpp); \ + GO(sink_event, iFppp); \ + GO(sink_query, iFppp); \ + GO(src_event, iFpp); \ + GO(src_query, iFpp); \ + GO(src_activate, iFpii); \ + GO(aggregate, iFpi); \ + GO(stop, iFp); \ + GO(start, iFp); \ + GO(get_next_time, UFp); \ + GO(create_new_pad, pFpppp); \ + GO(update_src_caps, iFppp); \ + GO(fixate_src_caps, pFpp); \ + GO(negotiated_src_caps, iFpp); \ + GO(decide_allocation, iFpp); \ + GO(propose_allocation, iFpppp); \ + GO(negotiate, iFp); \ + GO(sink_event_pre_queue, iFppp); \ + GO(sink_query_pre_queue, iFppp); \ + GO(finish_buffer_list, iFpp); \ + GO(peek_next_sample, vFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstAggregatorClass(my_GstAggregatorClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstAggregator (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstAggregatorClass(my_GstAggregatorClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstAggregator (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstAggregatorClass(my_GstAggregatorClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstAggregator (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstVideoAggregatorClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstVideoAggregator, update_caps, void*, (void* vagg, void* caps), "pp", vagg, caps); +WRAPPER(GstVideoAggregator, aggregate_frames, int, (void* vagg, void* outbuffer), "pp", vagg, outbuffer); +WRAPPER(GstVideoAggregator, create_output_buffer, int, (void* vagg, void* outbuffer), "pp", vagg, outbuffer); +WRAPPER(GstVideoAggregator, find_best_format, void, (void* vagg, void* downstream_caps, void* best_info, void* at_least_one_alpha), "pppp", vagg, downstream_caps, best_info, at_least_one_alpha); + +#define SUPERGO() \ + GO(update_caps, pFpp); \ + GO(aggregate_frames, iFpp); \ + GO(create_output_buffer, iFpp); \ + GO(find_best_format, vFpppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstVideoAggregatorClass(my_GstVideoAggregatorClass_t* class) +{ + wrapGstAggregatorClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstVideoAggregator (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstVideoAggregatorClass(my_GstVideoAggregatorClass_t* class) +{ + unwrapGstAggregatorClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstVideoAggregator (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstVideoAggregatorClass(my_GstVideoAggregatorClass_t* class) +{ + bridgeGstAggregatorClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstVideoAggregator (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstPadClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstPad, linked, void, (void* pad, void* peer), "pp", pad, peer); +WRAPPER(GstPad, unlinked, void, (void* pad, void* peer), "pp", pad, peer); + +#define SUPERGO() \ + GO(linked, vFpp); \ + GO(unlinked, vFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstPadClass(my_GstPadClass_t* class) +{ + wrapGstObjectClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstPad (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstPadClass(my_GstPadClass_t* class) +{ + unwrapGstObjectClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstPad (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstPadClass(my_GstPadClass_t* class) +{ + bridgeGstObjectClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstPad (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstAggregatorPadClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstAggregatorPad, flush, int, (void* aggpad, void* aggregator), "pp", aggpad, aggregator); +WRAPPER(GstAggregatorPad, skip_buffer, int, (void* aggpad, void* aggregator, void* buffer), "ppp", aggpad, aggregator, buffer); + +#define SUPERGO() \ + GO(flush, iFpp); \ + GO(skip_buffer, iFppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstAggregatorPadClass(my_GstAggregatorPadClass_t* class) +{ + wrapGstPadClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstAggregatorPad (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstAggregatorPadClass(my_GstAggregatorPadClass_t* class) +{ + unwrapGstPadClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstAggregatorPad (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstAggregatorPadClass(my_GstAggregatorPadClass_t* class) +{ + bridgeGstPadClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstAggregatorPad (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstVideoAggregatorPadClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstVideoAggregatorPad, update_conversion_info, void, (void* pad), "p", pad); +WRAPPER(GstVideoAggregatorPad, prepare_frame, int, (void* pad, void* vagg, void* buffer, void* prepared_frame), "pppp", pad, vagg, buffer, prepared_frame); +WRAPPER(GstVideoAggregatorPad, clean_frame, void, (void* pad, void* vagg, void* prepared_frame), "ppp", pad, vagg, prepared_frame); +WRAPPER(GstVideoAggregatorPad, prepare_frame_start, void, (void* pad, void* vagg, void* buffer, void* prepared_frame), "pppp", pad, vagg, buffer, prepared_frame); +WRAPPER(GstVideoAggregatorPad, prepare_frame_finish, void, (void* pad, void* vagg, void* prepared_frame), "ppp", pad, vagg, prepared_frame); + +#define SUPERGO() \ + GO(update_conversion_info, vFp); \ + GO(prepare_frame, iFpppp); \ + GO(clean_frame, vFppp); \ + GO(prepare_frame_start, vFpppp); \ + GO(prepare_frame_finish, vFppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstVideoAggregatorPadClass(my_GstVideoAggregatorPadClass_t* class) +{ + wrapGstAggregatorPadClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstVideoAggregatorPad (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstVideoAggregatorPadClass(my_GstVideoAggregatorPadClass_t* class) +{ + unwrapGstAggregatorPadClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstVideoAggregatorPad (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstVideoAggregatorPadClass(my_GstVideoAggregatorPadClass_t* class) +{ + bridgeGstAggregatorPadClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstVideoAggregatorPad (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstBaseSrcClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstBaseSrc, get_caps, void*, (void* src, void* filter), "pp", src, filter); +WRAPPER(GstBaseSrc, negotiate, int, (void* src), "p", src); +WRAPPER(GstBaseSrc, fixate, void*, (void* src, void* caps), "pp", src, caps); +WRAPPER(GstBaseSrc, set_caps, int, (void* src, void* caps), "pp", src, caps); +WRAPPER(GstBaseSrc, decide_allocation, int, (void* src, void* query), "pp", src, query); +WRAPPER(GstBaseSrc, start, int, (void* src), "p", src); +WRAPPER(GstBaseSrc, stop, int, (void* src), "p", src); +WRAPPER(GstBaseSrc, get_times, void , (void* src, void* buffer, void* start, void* end), "pppp", src, buffer, start, end); +WRAPPER(GstBaseSrc, get_size, int, (void* src, void* size), "pp", src, size); +WRAPPER(GstBaseSrc, is_seekable, int, (void* src), "p", src); +WRAPPER(GstBaseSrc, prepare_seek_segment, int, (void* src, void* seek, void* segment), "ppp", src, seek, segment); +WRAPPER(GstBaseSrc, do_seek, int, (void* src, void* segment), "pp", src, segment); +WRAPPER(GstBaseSrc, unlock, int, (void* src), "p", src); +WRAPPER(GstBaseSrc, unlock_stop, int, (void* src), "p", src); +WRAPPER(GstBaseSrc, query, int, (void* src, void* query), "pp", src, query); +WRAPPER(GstBaseSrc, event, int, (void* src, void* event), "pp", src, event); +WRAPPER(GstBaseSrc, create, int, (void* src, uint64_t offset, uint32_t size, void* buf), "pUup", src, offset, size, buf); +WRAPPER(GstBaseSrc, alloc, int, (void* src, uint64_t offset, uint32_t size, void* buf), "pUup", src, offset, size, buf); +WRAPPER(GstBaseSrc, fill, int, (void* src, uint64_t offset, uint32_t size, void* buf), "pUup", src, offset, size, buf); + +#define SUPERGO() \ + GO(get_caps, pFpp); \ + GO(negotiate, iFp); \ + GO(fixate, pFpp); \ + GO(set_caps, iFpp); \ + GO(decide_allocation, iFpp); \ + GO(start, iFp); \ + GO(stop, iFp); \ + GO(get_times, vFpppp); \ + GO(get_size, iFpp); \ + GO(is_seekable, iFp); \ + GO(prepare_seek_segment, iFppp); \ + GO(do_seek, iFpp); \ + GO(unlock, iFp); \ + GO(unlock_stop, iFp); \ + GO(query, iFpp); \ + GO(event, iFpp); \ + GO(create, iFpUup); \ + GO(alloc, iFpUup); \ + GO(fill, iFpUup); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstBaseSrcClass(my_GstBaseSrcClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstBaseSrc (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstBaseSrcClass(my_GstBaseSrcClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstBaseSrc (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstBaseSrcClass(my_GstBaseSrcClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstBaseSrc (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstPushSrcClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstPushSrc, create, int, (void* src, void* buf), "pp", src, buf); +WRAPPER(GstPushSrc, alloc, int, (void* src, void* buf), "pp", src, buf); +WRAPPER(GstPushSrc, fill, int, (void* src, void* buf), "pp", src, buf); + +#define SUPERGO() \ + GO(create, iFpp); \ + GO(alloc, iFpp); \ + GO(fill, iFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstPushSrcClass(my_GstPushSrcClass_t* class) +{ + wrapGstBaseSrcClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstPushSrc (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstPushSrcClass(my_GstPushSrcClass_t* class) +{ + unwrapGstBaseSrcClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstPushSrc (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstPushSrcClass(my_GstPushSrcClass_t* class) +{ + bridgeGstBaseSrcClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstPushSrc (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstGLBaseSrcClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstGLBaseSrc, gl_start, int, (void* src), "p", src); +WRAPPER(GstGLBaseSrc, gl_stop, void, (void* src), "p", src); +WRAPPER(GstGLBaseSrc, fill_gl_memory, int, (void* src, void* mem), "pp", src, mem); + +#define SUPERGO() \ + GO(gl_start, iFp); \ + GO(gl_stop, vFp); \ + GO(fill_gl_memory, iFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstGLBaseSrcClass(my_GstGLBaseSrcClass_t* class) +{ + wrapGstPushSrcClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstGLBaseSrc (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstGLBaseSrcClass(my_GstGLBaseSrcClass_t* class) +{ + unwrapGstPushSrcClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstGLBaseSrc (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstGLBaseSrcClass(my_GstGLBaseSrcClass_t* class) +{ + bridgeGstPushSrcClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstGLBaseSrc (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstAudioDecoderClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstAudioDecoder, start, int,(void* dec), "p", dec); +WRAPPER(GstAudioDecoder, stop, int,(void* dec), "p", dec); +WRAPPER(GstAudioDecoder, set_format, int,(void* dec, void* caps), "pp", dec, caps); +WRAPPER(GstAudioDecoder, parse, int,(void* dec, void* adapter, void* offset, void* length), "pppp", dec, adapter, offset, length); +WRAPPER(GstAudioDecoder, handle_frame, int,(void* dec, void* buffer), "pp", dec, buffer); +WRAPPER(GstAudioDecoder, flush, void ,(void* dec, int hard), "pi", dec, hard); +WRAPPER(GstAudioDecoder, pre_push, int,(void* dec, void* buffer), "pp", dec, buffer); +WRAPPER(GstAudioDecoder, sink_event, int,(void* dec, void* event), "pp", dec, event); +WRAPPER(GstAudioDecoder, src_event, int,(void* dec, void* event), "pp", dec, event); +WRAPPER(GstAudioDecoder, open, int,(void* dec), "p", dec); +WRAPPER(GstAudioDecoder, close, int,(void* dec), "p", dec); +WRAPPER(GstAudioDecoder, negotiate, int,(void* dec), "p", dec); +WRAPPER(GstAudioDecoder, decide_allocation, int,(void* dec, void* query), "pp", dec, query); +WRAPPER(GstAudioDecoder, propose_allocation, int,(void* dec, void* query), "pp", dec, query); +WRAPPER(GstAudioDecoder, sink_query, int,(void* dec, void* query), "pp", dec, query); +WRAPPER(GstAudioDecoder, src_query, int,(void* dec, void* query), "pp", dec, query); +WRAPPER(GstAudioDecoder, getcaps, void*,(void* dec, void* filter), "pp", dec, filter); +WRAPPER(GstAudioDecoder, transform_meta, int,(void* enc, void* outbuf, void* meta, void* inbuf), "pppp", enc, outbuf, meta, inbuf); + +#define SUPERGO() \ + GO(start, iFp); \ + GO(stop, iFp); \ + GO(set_format, iFpp); \ + GO(parse, iFpppp); \ + GO(handle_frame, iFpp); \ + GO(flush, vFpi); \ + GO(pre_push, iFpp); \ + GO(sink_event, iFpp); \ + GO(src_event, iFpp); \ + GO(open, iFp); \ + GO(close, iFp); \ + GO(negotiate, iFp); \ + GO(decide_allocation, iFpp); \ + GO(propose_allocation, iFpp); \ + GO(sink_query, iFpp); \ + GO(src_query, iFpp); \ + GO(getcaps, vFpp); \ + GO(transform_meta, iFpppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstAudioDecoderClass(my_GstAudioDecoderClass_t* class) +{ + wrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstAudioDecoder (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstAudioDecoderClass(my_GstAudioDecoderClass_t* class) +{ + unwrapGstElementClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstAudioDecoder (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstAudioDecoderClass(my_GstAudioDecoderClass_t* class) +{ + bridgeGstElementClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstAudioDecoder (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO +// ----- GstVideoFilterClass ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstVideoFilter, set_info, int, (void* filter, void* incaps, void* in_info, void* outcaps, void* out_info), "ppppp", filter, incaps, in_info, outcaps, out_info); +WRAPPER(GstVideoFilter, transform_frame, int, (void* filter, void* inframe, void* outframe), "ppp", filter, inframe, outframe); +WRAPPER(GstVideoFilter, transform_frame_ip, int, (void* filter, void* frame), "pp", filter, frame); + +#define SUPERGO() \ + GO(set_info, iFppppp); \ + GO(transform_frame, iFppp); \ + GO(transform_frame_ip, iFpp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstVideoFilterClass(my_GstVideoFilterClass_t* class) +{ + wrapGstBaseTransformClass(&class->parent_class); + #define GO(A, W) class->A = reverse_##A##_GstVideoFilter (W, class->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstVideoFilterClass(my_GstVideoFilterClass_t* class) +{ + unwrapGstBaseTransformClass(&class->parent_class); + #define GO(A, W) class->A = find_##A##_GstVideoFilter (class->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstVideoFilterClass(my_GstVideoFilterClass_t* class) +{ + bridgeGstBaseTransformClass(&class->parent_class); + #define GO(A, W) autobridge_##A##_GstVideoFilter (W, class->A) + SUPERGO() + #undef GO +} +#undef SUPERGO // ----- GDBusProxyClass ------ // wrapper x86 -> natives of callbacks WRAPPER(GDBusProxy, g_properties_changed, void, (void* proxy, void* changed_properties, const char* const* invalidated_properties), "ppp", proxy, changed_properties, invalidated_properties); @@ -2475,16 +3565,77 @@ static void bridgeGDBusProxyClass(my_GDBusProxyClass_t* class) } #undef SUPERGO +// ----- GstURIHandlerInterface ------ +// wrapper x86 -> natives of callbacks +WRAPPER(GstURIHandler,get_type, int, (size_t type), "L", type); +WRAPPER(GstURIHandler,get_protocols, void*, (size_t type), "L", type); +WRAPPER(GstURIHandler,get_uri, void*, (void* handler), "p", handler); +WRAPPER(GstURIHandler,set_uri, int, (void* handler, void* uri, void* error), "ppp", handler, uri, error); + +#define SUPERGO() \ + GO(get_type, iFL); \ + GO(get_protocols, pFL); \ + GO(get_uri, pFp); \ + GO(set_uri, iFppp); \ + +// wrap (so bridge all calls, just in case) +static void wrapGstURIHandlerInterface(my_GstURIHandlerInterface_t* iface) +{ + // parent don't need wrazpping + #define GO(A, W) iface->A = reverse_##A##_GstURIHandler (W, iface->A) + SUPERGO() + #undef GO +} +// unwrap (and use callback if not a native call anymore) +static void unwrapGstURIHandlerInterface(my_GstURIHandlerInterface_t* iface) +{ + // parent don't need wrazpping + #define GO(A, W) iface->A = find_##A##_GstURIHandler (iface->A) + SUPERGO() + #undef GO +} +// autobridge +static void bridgeGstURIHandlerInterface(my_GstURIHandlerInterface_t* iface) +{ + // parent don't need wrazpping + #define GO(A, W) autobridge_##A##_GstURIHandler (W, iface->A) + SUPERGO() + #undef GO +} +#undef SUPERGO // No more wrap/unwrap #undef WRAPPER #undef FIND #undef REVERSE #undef WRAPPED +// a class to collection of custom defined class... +void addRegisteredClass(size_t klass, char* name) +{ + if(!klass) + return; + if(!my_customclass) { + my_customclass = kh_init(customclass); + } + khint_t k; + int ret; + k = kh_put(customclass, my_customclass, klass, &ret); + kh_value(my_customclass, k) = strdup(name); +} + +int checkRegisteredClass(size_t klass) +{ + if(!my_customclass) + return 0; + khint_t k = kh_get(customclass, my_customclass, klass); + return (k==kh_end(my_customclass))?0:1; +} + // g_type_class_peek_parent static void wrapGTKClass(void* cl, size_t type) { + #define GTKIFACE(A) #define GTKCLASS(A) \ if(type==my_##A) \ wrap##A##Class((my_##A##Class_t*)cl); \ @@ -2498,13 +3649,15 @@ static void wrapGTKClass(void* cl, size_t type) my_MetaFrames2 = type; wrapMetaFrames2Class((my_MetaFrames2Class_t*)cl); } else - printf_log(LOG_NONE, "Warning, Custom Class initializer with unknown class type %zd (%s)\n", type, g_type_name(type)); + printf_log(LOG_NONE, "Warning, Custom Class initializer with unknown class type 0w%zx (%s)\n", type, g_type_name(type)); } #undef GTKCLASS + #undef GTKIFACE } static void unwrapGTKClass(void* cl, size_t type) { + #define GTKIFACE(A) #define GTKCLASS(A) \ if(type==my_##A) \ unwrap##A##Class((my_##A##Class_t*)cl); \ @@ -2516,10 +3669,12 @@ static void unwrapGTKClass(void* cl, size_t type) else {} // else no warning, one is enough... #undef GTKCLASS + #undef GTKIFACE } static void bridgeGTKClass(void* cl, size_t type) { + #define GTKIFACE(A) #define GTKCLASS(A) \ if(type==my_##A) \ bridge##A##Class((my_##A##Class_t*)cl); \ @@ -2529,15 +3684,70 @@ static void bridgeGTKClass(void* cl, size_t type) GTKCLASSES() if(type==8) {} // GInterface have no structure else { - printf_log(LOG_NONE, "Warning, AutoBridge GTK Class with unknown class type %zd (%s)\n", type, g_type_name(type)); + printf_log(LOG_NONE, "Warning, AutoBridge GTK Class with unknown class type 0w%zx (%s)\n", type, g_type_name(type)); } #undef GTKCLASS + #undef GTKIFACE } +static void wrapGTKInterface(void* cl, size_t type) +{ + #define GTKCLASS(A) + #define GTKIFACE(A) \ + if(type==my_##A) \ + wrap##A##Interface((my_##A##Interface_t*)cl); \ + else + + printf_log(LOG_DEBUG, "wrapGTKInterface(%p, %zd (%s))\n", cl, type, g_type_name(type)); + GTKCLASSES() + if(type==8) {} // GInterface have no structure + else { + printf_log(LOG_NONE, "Warning, Custom Interface initializer with unknown class type 0x%zx (%s)\n", type, g_type_name(type)); + } + #undef GTKIFACE + #undef GTKCLASS +} + +void unwrapGTKInterface(void* cl, size_t type) +{ + #define GTKCLASS(A) + #define GTKIFACE(A) \ + if(type==my_##A) \ + unwrap##A##Interface((my_##A##Interface_t*)cl); \ + else + + printf_log(LOG_DEBUG, "unwrapGTKInterface(%p, %zd (%s))\n", cl, type, g_type_name(type)); + GTKCLASSES() + if(type==8) {} // GInterface have no structure + else + {} // else no warning, one is enough... + #undef GTKIFACE + #undef GTKCLASS +} + +static void bridgeGTKInterface(void* cl, size_t type) +{ + #define GTKCLASS(A) + #define GTKIFACE(A) \ + if(type==my_##A) \ + bridge##A##Interface((my_##A##Interface_t*)cl); \ + else + + printf_log(LOG_DEBUG, "bridgeGTKInterface(%p, %zd (%s))\n", cl, type, g_type_name(type)); + GTKCLASSES() + if(type==8) {} // GInterface have no structure + else { + printf_log(LOG_NONE, "Warning, AutoBridge GTK Interface with unknown class type 0x%zx (%s)\n", type, g_type_name(type)); + } + #undef GTKCLASS + #undef GTKIFACE +} typedef union my_GClassAll_s { #define GTKCLASS(A) my_##A##Class_t A; + #define GTKIFACE(A) my_##A##Interface_t A; GTKCLASSES() + #undef GTKIFACE #undef GTKCLASS } my_GClassAll_t; @@ -2551,19 +3761,23 @@ SUPER() void* unwrapCopyGTKClass(void* klass, size_t type) { if(!klass) return klass; + if(checkRegisteredClass(type)) + return klass; #define GO(A) if(klass == my_gclassall_ref_##A) return &my_gclassall_##A; SUPER() #undef GO // check if class is the exact type we know size_t sz = 0; + #define GTKIFACE(A) #define GTKCLASS(A) if(type==my_##A) sz = sizeof(my_##A##Class_t); else GTKCLASSES() if(type==8) {} // GInterface have no structure else { - printf_log(LOG_NONE, "Warning, unwrapCopyGTKClass called with unknown class type %zu (%s)\n", type, g_type_name(type)); + printf_log(LOG_NONE, "Warning, unwrapCopyGTKClass called with unknown class type 0x%zx (%s)\n", type, g_type_name(type)); return klass; } #undef GTKCLASS + #undef GTKIFACE my_GClassAll_t *newklass = NULL; #define GO(A) if(!newklass && !my_gclassall_ref_##A) {my_gclassall_ref_##A = klass; newklass = &my_gclassall_##A;} SUPER() @@ -2577,6 +3791,39 @@ void* unwrapCopyGTKClass(void* klass, size_t type) return newklass; } +void* unwrapCopyGTKInterface(void* iface, size_t type) +{ + if(!iface) return iface; + if(checkRegisteredClass(type)) + return iface; + #define GO(A) if(iface == my_gclassall_ref_##A) return &my_gclassall_##A; + SUPER() + #undef GO + // check if class is the exact type we know + size_t sz = 0; + #define GTKIFACE(A) if(type==my_##A) sz = sizeof(my_##A##Interface_t); else + #define GTKCLASS(A) + GTKCLASSES() + if(type==8) {} // GInterface have no structure + else { + printf_log(LOG_NONE, "Warning, unwrapCopyGTKInterface called with unknown class type 0x%zx (%s)\n", type, g_type_name(type)); + return iface; + } + #undef GTKCLASS + #undef GTKIFACE + my_GClassAll_t *newiface = NULL; + #define GO(A) if(!newiface && !my_gclassall_ref_##A) {my_gclassall_ref_##A = iface; newiface = &my_gclassall_##A;} + SUPER() + #undef GO + if(!newiface) { + printf_log(LOG_NONE, "Warning: no more slot for unwrapCopyGTKInterface\n"); + return iface; + } + memcpy(newiface, iface, sz); + unwrapGTKInterface(newiface, type); + return newiface; +} + // gtk_type_class #define GO(A) \ @@ -2588,12 +3835,15 @@ SUPER() void* wrapCopyGTKClass(void* klass, size_t type) { if(!klass) return klass; + while(checkRegisteredClass(type)) + type = g_type_parent(type); printf_log(LOG_DEBUG, "wrapCopyGTKClass(%p, %zd (%s))\n", klass, type, g_type_name(type)); #define GO(A) if(klass == my_gclassallu_ref_##A) return &my_gclassallu_##A; SUPER() #undef GO // check if class is the exact type we know int sz = 0; + #define GTKIFACE(A) #define GTKCLASS(A) if(type==my_##A) sz = sizeof(my_##A##Class_t); else GTKCLASSES() if(type==8) {} // GInterface have no structure @@ -2606,21 +3856,41 @@ void* wrapCopyGTKClass(void* klass, size_t type) return klass; } } + #undef GTKIFACE #undef GTKCLASS - my_GClassAll_t *newklass = NULL; - #define GO(A) if(!newklass && !my_gclassallu_ref_##A) {my_gclassallu_ref_##A = klass; newklass = &my_gclassallu_##A;} + bridgeGTKClass(klass, type); + return klass; +} + +void* wrapCopyGTKInterface(void* iface, size_t type) +{ + if(!iface) return iface; + while(checkRegisteredClass(type)) + type = g_type_parent(type); + printf_log(LOG_DEBUG, "wrapCopyGTKInterface(%p, %zd (%s))\n", iface, type, g_type_name(type)); + #define GO(A) if(iface == my_gclassallu_ref_##A) return &my_gclassallu_##A; SUPER() #undef GO - if(!newklass) { - printf_log(LOG_NONE, "Warning: no more slot for wrapCopyGTKClass\n"); - return klass; + // check if class is the exact type we know + int sz = 0; + #define GTKIFACE(A) if(type==my_##A) sz = sizeof(my_##A##Interface_t); else + #define GTKCLASS(A) + GTKCLASSES() + if(type==8) {} // GInterface have no structure + else { + if(my_MetaFrames2==-1 && !strcmp(g_type_name(type), "MetaFrames")) { + my_MetaFrames2 = type; + sz = sizeof(my_MetaFrames2Class_t); + } else { + printf_log(LOG_NONE, "Warning, wrapCopyGTKInterface called with unknown class type 0x%zx (%s)\n", type, g_type_name(type)); + return iface; + } } - memcpy(newklass, klass, sz); - //wrapGTKClass(newklass, type); - bridgeGTKClass(newklass, type); - return newklass; + #undef GTKIFACE + #undef GTKCLASS + bridgeGTKInterface(iface, type); + return iface; } - // ---- GTypeValueTable ---- // First the structure GTypeInfo statics, with paired x64 source pointer @@ -3038,13 +4308,16 @@ static int my_class_init_##A(void* a, void* b) \ { \ printf_log(LOG_DEBUG, "Custom Class init %d for class %p (parent=%p:%s)\n", A, a, (void*)parent_class_init_##A, g_type_name(parent_class_init_##A));\ int ret = RunFunctionFmt(my_class_init_fct_##A, "pp", a, b);\ - unwrapGTKClass(a, parent_class_init_##A); \ - bridgeGTKClass(a, parent_class_init_##A); \ + size_t type = parent_class_init_##A; \ + while(checkRegisteredClass(type)) \ + type = g_type_parent(type); \ + unwrapGTKClass(a, type); \ + bridgeGTKClass(a, type); \ my_unwrap_signal_offset(a); \ - if(!strcmp(g_type_name(parent_class_init_##A), "AtkUtil")) { \ - my_AtkUtilClass_t* p = (my_AtkUtilClass_t*)g_type_class_peek(parent_class_init_##A);\ - unwrapGTKClass(p, parent_class_init_##A); \ - bridgeGTKClass(p, parent_class_init_##A); \ + if(!strcmp(g_type_name(type), "AtkUtil")) { \ + my_AtkUtilClass_t* p = (my_AtkUtilClass_t*)g_type_class_peek(type);\ + unwrapGTKClass(p, type); \ + bridgeGTKClass(p, type); \ } \ return ret; \ } @@ -3232,12 +4505,15 @@ void Set##A##ID(size_t id) \ { \ my_##A = id; \ } +#define GTKIFACE(A) GTKCLASS(A) GTKCLASSES() +#undef GTKIFACE #undef GTKCLASS void AutoBridgeGtk(void*(*ref)(size_t), void(*unref)(void*)) { void* p; + #define GTKIFACE(A) #define GTKCLASS(A) \ if(my_##A && my_##A!=-1) { \ p = ref(my_##A); \ @@ -3245,6 +4521,7 @@ void AutoBridgeGtk(void*(*ref)(size_t), void(*unref)(void*)) unref(p); \ } GTKCLASSES() + #undef GTKIFACE #undef GTKCLASS } @@ -3258,6 +4535,11 @@ void SetGClassPeek(void* f) g_type_class_peek = f; } +void SetGTypeParent(void* f) +{ + g_type_parent = f; +} + my_signal_t* new_mysignal(void* f, void* data, void* destroy) { my_signal_t* sig = (my_signal_t*)box_calloc(1, sizeof(my_signal_t)); diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 034e575e..b3bd60c6 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -99,6 +99,7 @@ #() pFL #() pFp #() pFV +#() pFA #() HFi #() HFp #() xFx @@ -204,6 +205,7 @@ #() IFpi #() IFpu #() IFpd +#() IFpp #() CFip #() CFCi #() CFui @@ -423,6 +425,7 @@ #() vFppl #() vFppL #() vFppp +#() vFppV #() cFpdp #() wFppp #() iFEiw @@ -566,6 +569,7 @@ #() uFppi #() uFppu #() uFppp +#() UFUii #() UFUUU #() UFpiU #() UFppi @@ -641,7 +645,6 @@ #() pFuip #() pFuui #() pFuuu -#() pFuup #() pFulu #() pFulp #() pFupi @@ -651,6 +654,7 @@ #() pFupp #() pFdip #() pFdUU +#() pFddi #() pFddd #() pFDip #() pFlpi @@ -675,6 +679,7 @@ #() pFpuL #() pFpup #() pFpUi +#() pFpUu #() pFpUp #() pFpdu #() pFpdd @@ -694,6 +699,7 @@ #() pFppl #() pFppL #() pFppp +#() pFppA #() pFpOM #() pFSpl #() vWpup @@ -1113,6 +1119,7 @@ #() LFpppL #() LFpppp #() pFEipp +#() pFEuup #() pFEupp #() pFELpV #() pFELpA @@ -1157,6 +1164,7 @@ #() pFpiLL #() pFpipi #() pFpipd +#() pFpipL #() pFpipp #() pFpCip #() pFpCWp @@ -1175,6 +1183,7 @@ #() pFpupu #() pFpupp #() pFpdIU +#() pFpddi #() pFplil #() pFplip #() pFplpl @@ -1615,6 +1624,8 @@ #() pFEpppi #() pFEpppu #() pFEpppp +#() pFEpppV +#() pFEpppA #() pFiiiii #() pFiiipL #() pFipipL @@ -1627,15 +1638,18 @@ #() pFudddp #() pFupLpl #() pFupLpL +#() pFddddi #() pFLuppp #() pFLpppi #() pFpiiii #() pFpiiip #() pFpiiuu #() pFpiipi +#() pFpiipL #() pFpiipp #() pFpiCCC #() pFpiuuu +#() pFpiuup #() pFpiupp #() pFpiLip #() pFpipip @@ -1663,6 +1677,7 @@ #() pFpLLLp #() pFpLpii #() pFpLpip +#() pFpLpup #() pFppiii #() pFppiiu #() pFppiip @@ -1896,6 +1911,7 @@ #() iFpipipi #() iFpipipp #() iFpipupp +#() iFpipLpp #() iFpippip #() iFpippup #() iFpipppL @@ -2009,6 +2025,7 @@ #() lFpppLpp #() LFEupppp #() LFELpppi +#() LFEpippp #() LFEppppi #() LFpipipi #() LFpLippp @@ -2021,6 +2038,7 @@ #() pFEpuupp #() pFEpuppp #() pFEpLLiN +#() pFEppupi #() pFEppLLp #() pFEpppLp #() pFEppppi @@ -2031,16 +2049,19 @@ #() pFiiiiid #() pFipippp #() pFWCiWCi +#() pFuCCCCp #() pFuuipip #() pFuuuiip #() pFuuuuii #() pFuuuuuu #() pFuuuuup #() pFuuppuu +#() pFuppppp #() pFdddddd #() pFpiiiiu #() pFpiiipp #() pFpiiCCC +#() pFpiiuup #() pFpiUUUU #() pFpipipp #() pFpippip @@ -2048,6 +2069,7 @@ #() pFpCuuCC #() pFpCuuWW #() pFpCuuup +#() pFpuiiip #() pFpuuwwu #() pFpuuuuu #() pFpuuupu @@ -2304,6 +2326,7 @@ #() pFEppppip #() pFEpppppi #() pFifffppp +#() pFWpppppp #() pFuuuiiip #() pFuupupup #() pFfiiiiid @@ -2319,6 +2342,7 @@ #() pFpWppWpp #() pFpuuuwwu #() pFpuupwwC +#() pFpuLpipp #() pFpupiipp #() pFpuppipp #() pFplppppp @@ -2346,6 +2370,7 @@ #() pFpppuipp #() pFpppuuui #() pFpppuupp +#() pFpppupii #() pFpppupup #() pFpppuppp #() pFpppfffi @@ -2368,6 +2393,7 @@ #() vFEiupippp #() vFEipAippp #() vFEppipppp +#() vFEppLippp #() vFEpppippp #() vFEpppuipV #() vFEpppppuu @@ -2498,6 +2524,7 @@ #() LFEpiupppp #() LFpLpuuLLu #() pFEiplllpp +#() pFEipLLLpp #() pFEpiuCppp #() pFEppLiiip #() pFEpppuipV @@ -2507,8 +2534,10 @@ #() pFiippipip #() pFiupppppp #() pFuiiiuuuu +#() pFuCCCCpWw #() pFuupupipp #() pFpiiiiiuu +#() pFpiiuuupp #() pFpiUdiiUi #() pFpipiiiip #() pFpCCuuwwC @@ -2594,6 +2623,7 @@ #() vFppppipiip #() vFpppppippp #() iFEpiiiiipi +#() iFEppuppppp #() iFEpppipppp #() iFEppplPPPP #() iFEpppppupp @@ -2602,6 +2632,7 @@ #() iFiiiipiiip #() iFipiipippi #() iFdddpppppp +#() iFpipippppi #() iFpipLpiiip #() iFpuuuuuuuu #() iFpuuuuduup @@ -2759,6 +2790,7 @@ #() vFppupipiuuuu #() vFppupppuiiii #() vFppppppppppp +#() iFEiipppppppp #() iFEpppipppppp #() iFEppppiiiiuu #() iFEpppppppppp @@ -3222,6 +3254,8 @@ wrappedgio2: - g_async_initable_new_valist_async - vFppipppp: - g_dbus_connection_new +- vFppLippp: + - g_input_stream_read_async - vFpppuipV: - g_simple_async_report_error_in_idle - uFipipppp: @@ -3314,6 +3348,7 @@ wrappedglib2: - g_option_group_set_parse_hooks - g_ptr_array_foreach - g_ptr_array_sort_with_data + - g_queue_foreach - g_static_private_set - vFppV: - g_string_append_printf @@ -3344,11 +3379,13 @@ wrappedglib2: - g_list_insert_sorted - g_list_sort_with_data - g_node_copy_deep + - g_once_impl - g_queue_find_custom - g_slist_find_custom - g_slist_foreach - g_slist_insert_sorted - g_slist_sort_with_data + - g_thread_new - g_variant_new_va - pFppV: - g_build_path @@ -3496,48 +3533,134 @@ wrappedgobject2: wrappedgomp: wrappedgssapi: wrappedgssapikrb5: +wrappedgstallocators: wrappedgstapp: wrappedgstaudio: wrappedgstbase: +- vFppp: + - gst_collect_pads_set_buffer_function + - gst_collect_pads_set_clip_function + - gst_collect_pads_set_event_function + - gst_collect_pads_set_function + - gst_collect_pads_set_query_function +- pFppupi: + - gst_collect_pads_add_pad +wrappedgstcheck: +wrappedgstcontroller: +wrappedgstfft: wrappedgstgl: +- pFup: + - gst_gl_context_default_get_proc_address +- vFppp: + - gst_gl_context_thread_add + - gst_gl_window_send_message +- vFppV: + - gst_gl_insert_debug_marker +- pFuup: + - gst_gl_context_get_proc_address_with_platform +- vFpppp: + - gst_gl_window_set_close_callback + - gst_gl_window_set_draw_callback + - gst_gl_window_set_resize_callback +- iFpppp: + - gst_gl_framebuffer_draw_to_texture +- iFppppp: + - gst_gl_filter_render_to_target +wrappedgstnet: +wrappedgstpbutils: wrappedgstreamer: +- pFA: + - gst_tag_list_new_valist +- vFpp: + - gst_init +- pFpp: + - gst_plugin_load_file +- pFpV: + - _gst_element_error_printf + - gst_caps_features_new + - gst_make_element_message_details + - gst_tag_list_new +- pFpA: + - gst_caps_features_new_valist +- vFppp: + - gst_structure_filter_and_map_in_place + - gst_tag_list_foreach - vFppV: - gst_bin_add_many - gst_caps_set_simple - gst_structure_remove_fields + - gst_structure_set - vFppA: - gst_caps_set_simple_valist - gst_structure_remove_fields_valist + - gst_structure_set_valist - iFppp: - gst_caps_foreach + - gst_element_foreach_sink_pad + - gst_init_check + - gst_structure_foreach - iFppV: - gst_element_link_many - gst_structure_get - iFppA: + - gst_info_vasprintf - gst_structure_get_valist - uFppp: - gst_bus_add_watch +- pFppp: + - gst_task_new - pFppV: - gst_caps_new_simple - gst_structure_new +- pFppA: + - gst_structure_new_valist +- vFpipV: + - gst_tag_list_add + - gst_tag_list_add_values +- vFpipA: + - gst_tag_list_add_valist + - gst_tag_list_add_valist_values - vFpppp: - gst_bus_set_sync_handler - gst_mini_object_set_qdata + - gst_pad_set_activate_function_full - gst_pad_set_activatemode_function_full - gst_pad_set_chain_function_full - gst_pad_set_event_function_full - gst_pad_set_getrange_function_full + - gst_pad_set_link_function_full - gst_pad_set_query_function_full +- iFpppp: + - gst_iterator_fold + - gst_pad_start_task - pFppip: - gst_registry_feature_filter +- pFpppV: + - gst_pad_create_stream_id_printf +- pFpppA: + - gst_pad_create_stream_id_printf_valist - uFpippp: - gst_bus_add_watch_full +- LFpippp: + - gst_pad_add_probe - pFiplllpp: - gst_buffer_new_wrapped_full +- pFipLLLpp: + - gst_memory_new_wrapped +- pFpuLpipp: + - gst_util_array_binary_search - vFpippippV: - gst_debug_log - vFpippippA: - gst_debug_log_valist +- iFppuppppp: + - gst_type_find_register +- iFiipppppppp: + - gst_plugin_register_static +wrappedgstriff: +wrappedgstrtp: +wrappedgstrtsp: +wrappedgstsdp: wrappedgsttag: wrappedgstvideo: wrappedgthread2: diff --git a/src/wrapped/generated/wrappedgio2types.h b/src/wrapped/generated/wrappedgio2types.h index f2c5fe11..a9d5a6a0 100644 --- a/src/wrapped/generated/wrappedgio2types.h +++ b/src/wrapped/generated/wrappedgio2types.h @@ -29,6 +29,7 @@ typedef void (*vFiippppV_t)(int32_t, int32_t, void*, void*, void*, void*, ...); typedef void (*vFiupippp_t)(int32_t, uint32_t, void*, int32_t, void*, void*, void*); typedef void (*vFipAippp_t)(int32_t, void*, va_list, int32_t, void*, void*, void*); typedef void (*vFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*); +typedef void (*vFppLippp_t)(void*, void*, uintptr_t, int32_t, void*, void*, void*); typedef void (*vFpppuipV_t)(void*, void*, void*, uint32_t, int32_t, void*, ...); typedef uint32_t (*uFipipppp_t)(int32_t, void*, int32_t, void*, void*, void*, void*); typedef uint32_t (*uFppipppp_t)(void*, void*, int32_t, void*, void*, void*, void*); @@ -70,6 +71,7 @@ typedef void (*vFpppppppiippp_t)(void*, void*, void*, void*, void*, void*, void* GO(g_async_initable_newv_async, vFiupippp_t) \ GO(g_async_initable_new_valist_async, vFipAippp_t) \ GO(g_dbus_connection_new, vFppipppp_t) \ + GO(g_input_stream_read_async, vFppLippp_t) \ GO(g_simple_async_report_error_in_idle, vFpppuipV_t) \ GO(g_bus_watch_name, uFipipppp_t) \ GO(g_bus_own_name_on_connection, uFppipppp_t) \ diff --git a/src/wrapped/generated/wrappedglib2types.h b/src/wrapped/generated/wrappedglib2types.h index fe5a9006..e806b7ff 100644 --- a/src/wrapped/generated/wrappedglib2types.h +++ b/src/wrapped/generated/wrappedglib2types.h @@ -111,6 +111,7 @@ typedef int32_t (*iFpppippppppp_t)(void*, void*, void*, int32_t, void*, void*, v GO(g_option_group_set_parse_hooks, vFppp_t) \ GO(g_ptr_array_foreach, vFppp_t) \ GO(g_ptr_array_sort_with_data, vFppp_t) \ + GO(g_queue_foreach, vFppp_t) \ GO(g_static_private_set, vFppp_t) \ GO(g_string_append_printf, vFppV_t) \ GO(g_string_printf, vFppV_t) \ @@ -133,11 +134,13 @@ typedef int32_t (*iFpppippppppp_t)(void*, void*, void*, int32_t, void*, void*, v GO(g_list_insert_sorted, pFppp_t) \ GO(g_list_sort_with_data, pFppp_t) \ GO(g_node_copy_deep, pFppp_t) \ + GO(g_once_impl, pFppp_t) \ GO(g_queue_find_custom, pFppp_t) \ GO(g_slist_find_custom, pFppp_t) \ GO(g_slist_foreach, pFppp_t) \ GO(g_slist_insert_sorted, pFppp_t) \ GO(g_slist_sort_with_data, pFppp_t) \ + GO(g_thread_new, pFppp_t) \ GO(g_variant_new_va, pFppp_t) \ GO(g_build_path, pFppV_t) \ GO(g_log, vFpipV_t) \ diff --git a/src/wrapped/generated/wrappedgstallocatorsdefs.h b/src/wrapped/generated/wrappedgstallocatorsdefs.h new file mode 100644 index 00000000..3f0366b6 --- /dev/null +++ b/src/wrapped/generated/wrappedgstallocatorsdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstallocatorsDEFS_H_ +#define __wrappedgstallocatorsDEFS_H_ + + +#endif // __wrappedgstallocatorsDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstallocatorstypes.h b/src/wrapped/generated/wrappedgstallocatorstypes.h new file mode 100644 index 00000000..64e19372 --- /dev/null +++ b/src/wrapped/generated/wrappedgstallocatorstypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstallocatorsTYPES_H_ +#define __wrappedgstallocatorsTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstallocatorsTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstallocatorsundefs.h b/src/wrapped/generated/wrappedgstallocatorsundefs.h new file mode 100644 index 00000000..00a94fa0 --- /dev/null +++ b/src/wrapped/generated/wrappedgstallocatorsundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstallocatorsUNDEFS_H_ +#define __wrappedgstallocatorsUNDEFS_H_ + + +#endif // __wrappedgstallocatorsUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstbasetypes.h b/src/wrapped/generated/wrappedgstbasetypes.h index 46ac9086..bf7099ba 100644 --- a/src/wrapped/generated/wrappedgstbasetypes.h +++ b/src/wrapped/generated/wrappedgstbasetypes.h @@ -11,7 +11,15 @@ #define ADDED_FUNCTIONS() #endif +typedef void (*vFppp_t)(void*, void*, void*); +typedef void* (*pFppupi_t)(void*, void*, uint32_t, void*, int32_t); -#define SUPER() ADDED_FUNCTIONS() +#define SUPER() ADDED_FUNCTIONS() \ + GO(gst_collect_pads_set_buffer_function, vFppp_t) \ + GO(gst_collect_pads_set_clip_function, vFppp_t) \ + GO(gst_collect_pads_set_event_function, vFppp_t) \ + GO(gst_collect_pads_set_function, vFppp_t) \ + GO(gst_collect_pads_set_query_function, vFppp_t) \ + GO(gst_collect_pads_add_pad, pFppupi_t) #endif // __wrappedgstbaseTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstcheckdefs.h b/src/wrapped/generated/wrappedgstcheckdefs.h new file mode 100644 index 00000000..ba619ba4 --- /dev/null +++ b/src/wrapped/generated/wrappedgstcheckdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstcheckDEFS_H_ +#define __wrappedgstcheckDEFS_H_ + + +#endif // __wrappedgstcheckDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstchecktypes.h b/src/wrapped/generated/wrappedgstchecktypes.h new file mode 100644 index 00000000..681e13c4 --- /dev/null +++ b/src/wrapped/generated/wrappedgstchecktypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstcheckTYPES_H_ +#define __wrappedgstcheckTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstcheckTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstcheckundefs.h b/src/wrapped/generated/wrappedgstcheckundefs.h new file mode 100644 index 00000000..9d11182a --- /dev/null +++ b/src/wrapped/generated/wrappedgstcheckundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstcheckUNDEFS_H_ +#define __wrappedgstcheckUNDEFS_H_ + + +#endif // __wrappedgstcheckUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstcontrollerdefs.h b/src/wrapped/generated/wrappedgstcontrollerdefs.h new file mode 100644 index 00000000..6d228266 --- /dev/null +++ b/src/wrapped/generated/wrappedgstcontrollerdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstcontrollerDEFS_H_ +#define __wrappedgstcontrollerDEFS_H_ + + +#endif // __wrappedgstcontrollerDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstcontrollertypes.h b/src/wrapped/generated/wrappedgstcontrollertypes.h new file mode 100644 index 00000000..47bda0c0 --- /dev/null +++ b/src/wrapped/generated/wrappedgstcontrollertypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstcontrollerTYPES_H_ +#define __wrappedgstcontrollerTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstcontrollerTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstcontrollerundefs.h b/src/wrapped/generated/wrappedgstcontrollerundefs.h new file mode 100644 index 00000000..ea3e45cb --- /dev/null +++ b/src/wrapped/generated/wrappedgstcontrollerundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstcontrollerUNDEFS_H_ +#define __wrappedgstcontrollerUNDEFS_H_ + + +#endif // __wrappedgstcontrollerUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstfftdefs.h b/src/wrapped/generated/wrappedgstfftdefs.h new file mode 100644 index 00000000..f0d88904 --- /dev/null +++ b/src/wrapped/generated/wrappedgstfftdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstfftDEFS_H_ +#define __wrappedgstfftDEFS_H_ + + +#endif // __wrappedgstfftDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstffttypes.h b/src/wrapped/generated/wrappedgstffttypes.h new file mode 100644 index 00000000..45e2b887 --- /dev/null +++ b/src/wrapped/generated/wrappedgstffttypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstfftTYPES_H_ +#define __wrappedgstfftTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstfftTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstfftundefs.h b/src/wrapped/generated/wrappedgstfftundefs.h new file mode 100644 index 00000000..ade928e7 --- /dev/null +++ b/src/wrapped/generated/wrappedgstfftundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstfftUNDEFS_H_ +#define __wrappedgstfftUNDEFS_H_ + + +#endif // __wrappedgstfftUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstgltypes.h b/src/wrapped/generated/wrappedgstgltypes.h index e5f7daf4..400d2a1a 100644 --- a/src/wrapped/generated/wrappedgstgltypes.h +++ b/src/wrapped/generated/wrappedgstgltypes.h @@ -11,7 +11,24 @@ #define ADDED_FUNCTIONS() #endif +typedef void* (*pFup_t)(uint32_t, void*); +typedef void (*vFppp_t)(void*, void*, void*); +typedef void (*vFppV_t)(void*, void*, ...); +typedef void* (*pFuup_t)(uint32_t, uint32_t, void*); +typedef void (*vFpppp_t)(void*, void*, void*, void*); +typedef int32_t (*iFpppp_t)(void*, void*, void*, void*); +typedef int32_t (*iFppppp_t)(void*, void*, void*, void*, void*); -#define SUPER() ADDED_FUNCTIONS() +#define SUPER() ADDED_FUNCTIONS() \ + GO(gst_gl_context_default_get_proc_address, pFup_t) \ + GO(gst_gl_context_thread_add, vFppp_t) \ + GO(gst_gl_window_send_message, vFppp_t) \ + GO(gst_gl_insert_debug_marker, vFppV_t) \ + GO(gst_gl_context_get_proc_address_with_platform, pFuup_t) \ + GO(gst_gl_window_set_close_callback, vFpppp_t) \ + GO(gst_gl_window_set_draw_callback, vFpppp_t) \ + GO(gst_gl_window_set_resize_callback, vFpppp_t) \ + GO(gst_gl_framebuffer_draw_to_texture, iFpppp_t) \ + GO(gst_gl_filter_render_to_target, iFppppp_t) #endif // __wrappedgstglTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstnetdefs.h b/src/wrapped/generated/wrappedgstnetdefs.h new file mode 100644 index 00000000..109e75a6 --- /dev/null +++ b/src/wrapped/generated/wrappedgstnetdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstnetDEFS_H_ +#define __wrappedgstnetDEFS_H_ + + +#endif // __wrappedgstnetDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstnettypes.h b/src/wrapped/generated/wrappedgstnettypes.h new file mode 100644 index 00000000..8416dbb2 --- /dev/null +++ b/src/wrapped/generated/wrappedgstnettypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstnetTYPES_H_ +#define __wrappedgstnetTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstnetTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstnetundefs.h b/src/wrapped/generated/wrappedgstnetundefs.h new file mode 100644 index 00000000..82e0773c --- /dev/null +++ b/src/wrapped/generated/wrappedgstnetundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstnetUNDEFS_H_ +#define __wrappedgstnetUNDEFS_H_ + + +#endif // __wrappedgstnetUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstpbutilsdefs.h b/src/wrapped/generated/wrappedgstpbutilsdefs.h new file mode 100644 index 00000000..44eaea60 --- /dev/null +++ b/src/wrapped/generated/wrappedgstpbutilsdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstpbutilsDEFS_H_ +#define __wrappedgstpbutilsDEFS_H_ + + +#endif // __wrappedgstpbutilsDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstpbutilstypes.h b/src/wrapped/generated/wrappedgstpbutilstypes.h new file mode 100644 index 00000000..e217d550 --- /dev/null +++ b/src/wrapped/generated/wrappedgstpbutilstypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstpbutilsTYPES_H_ +#define __wrappedgstpbutilsTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstpbutilsTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstpbutilsundefs.h b/src/wrapped/generated/wrappedgstpbutilsundefs.h new file mode 100644 index 00000000..03cff549 --- /dev/null +++ b/src/wrapped/generated/wrappedgstpbutilsundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstpbutilsUNDEFS_H_ +#define __wrappedgstpbutilsUNDEFS_H_ + + +#endif // __wrappedgstpbutilsUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstreamertypes.h b/src/wrapped/generated/wrappedgstreamertypes.h index a5d43518..16936cf5 100644 --- a/src/wrapped/generated/wrappedgstreamertypes.h +++ b/src/wrapped/generated/wrappedgstreamertypes.h @@ -11,44 +11,95 @@ #define ADDED_FUNCTIONS() #endif +typedef void* (*pFA_t)(va_list); +typedef void (*vFpp_t)(void*, void*); +typedef void* (*pFpp_t)(void*, void*); +typedef void* (*pFpV_t)(void*, ...); +typedef void* (*pFpA_t)(void*, va_list); +typedef void (*vFppp_t)(void*, void*, void*); typedef void (*vFppV_t)(void*, void*, ...); typedef void (*vFppA_t)(void*, void*, va_list); typedef int32_t (*iFppp_t)(void*, void*, void*); typedef int32_t (*iFppV_t)(void*, void*, ...); typedef int32_t (*iFppA_t)(void*, void*, va_list); typedef uint32_t (*uFppp_t)(void*, void*, void*); +typedef void* (*pFppp_t)(void*, void*, void*); typedef void* (*pFppV_t)(void*, void*, ...); +typedef void* (*pFppA_t)(void*, void*, va_list); +typedef void (*vFpipV_t)(void*, int32_t, void*, ...); +typedef void (*vFpipA_t)(void*, int32_t, void*, va_list); typedef void (*vFpppp_t)(void*, void*, void*, void*); +typedef int32_t (*iFpppp_t)(void*, void*, void*, void*); typedef void* (*pFppip_t)(void*, void*, int32_t, void*); +typedef void* (*pFpppV_t)(void*, void*, void*, ...); +typedef void* (*pFpppA_t)(void*, void*, void*, va_list); typedef uint32_t (*uFpippp_t)(void*, int32_t, void*, void*, void*); +typedef uintptr_t (*LFpippp_t)(void*, int32_t, void*, void*, void*); typedef void* (*pFiplllpp_t)(int32_t, void*, intptr_t, intptr_t, intptr_t, void*, void*); +typedef void* (*pFipLLLpp_t)(int32_t, void*, uintptr_t, uintptr_t, uintptr_t, void*, void*); +typedef void* (*pFpuLpipp_t)(void*, uint32_t, uintptr_t, void*, int32_t, void*, void*); typedef void (*vFpippippV_t)(void*, int32_t, void*, void*, int32_t, void*, void*, ...); typedef void (*vFpippippA_t)(void*, int32_t, void*, void*, int32_t, void*, void*, va_list); +typedef int32_t (*iFppuppppp_t)(void*, void*, uint32_t, void*, void*, void*, void*, void*); +typedef int32_t (*iFiipppppppp_t)(int32_t, int32_t, void*, void*, void*, void*, void*, void*, void*, void*); #define SUPER() ADDED_FUNCTIONS() \ + GO(gst_tag_list_new_valist, pFA_t) \ + GO(gst_init, vFpp_t) \ + GO(gst_plugin_load_file, pFpp_t) \ + GO(_gst_element_error_printf, pFpV_t) \ + GO(gst_caps_features_new, pFpV_t) \ + GO(gst_make_element_message_details, pFpV_t) \ + GO(gst_tag_list_new, pFpV_t) \ + GO(gst_caps_features_new_valist, pFpA_t) \ + GO(gst_structure_filter_and_map_in_place, vFppp_t) \ + GO(gst_tag_list_foreach, vFppp_t) \ GO(gst_bin_add_many, vFppV_t) \ GO(gst_caps_set_simple, vFppV_t) \ GO(gst_structure_remove_fields, vFppV_t) \ + GO(gst_structure_set, vFppV_t) \ GO(gst_caps_set_simple_valist, vFppA_t) \ GO(gst_structure_remove_fields_valist, vFppA_t) \ + GO(gst_structure_set_valist, vFppA_t) \ GO(gst_caps_foreach, iFppp_t) \ + GO(gst_element_foreach_sink_pad, iFppp_t) \ + GO(gst_init_check, iFppp_t) \ + GO(gst_structure_foreach, iFppp_t) \ GO(gst_element_link_many, iFppV_t) \ GO(gst_structure_get, iFppV_t) \ + GO(gst_info_vasprintf, iFppA_t) \ GO(gst_structure_get_valist, iFppA_t) \ GO(gst_bus_add_watch, uFppp_t) \ + GO(gst_task_new, pFppp_t) \ GO(gst_caps_new_simple, pFppV_t) \ GO(gst_structure_new, pFppV_t) \ + GO(gst_structure_new_valist, pFppA_t) \ + GO(gst_tag_list_add, vFpipV_t) \ + GO(gst_tag_list_add_values, vFpipV_t) \ + GO(gst_tag_list_add_valist, vFpipA_t) \ + GO(gst_tag_list_add_valist_values, vFpipA_t) \ GO(gst_bus_set_sync_handler, vFpppp_t) \ GO(gst_mini_object_set_qdata, vFpppp_t) \ + GO(gst_pad_set_activate_function_full, vFpppp_t) \ GO(gst_pad_set_activatemode_function_full, vFpppp_t) \ GO(gst_pad_set_chain_function_full, vFpppp_t) \ GO(gst_pad_set_event_function_full, vFpppp_t) \ GO(gst_pad_set_getrange_function_full, vFpppp_t) \ + GO(gst_pad_set_link_function_full, vFpppp_t) \ GO(gst_pad_set_query_function_full, vFpppp_t) \ + GO(gst_iterator_fold, iFpppp_t) \ + GO(gst_pad_start_task, iFpppp_t) \ GO(gst_registry_feature_filter, pFppip_t) \ + GO(gst_pad_create_stream_id_printf, pFpppV_t) \ + GO(gst_pad_create_stream_id_printf_valist, pFpppA_t) \ GO(gst_bus_add_watch_full, uFpippp_t) \ + GO(gst_pad_add_probe, LFpippp_t) \ GO(gst_buffer_new_wrapped_full, pFiplllpp_t) \ + GO(gst_memory_new_wrapped, pFipLLLpp_t) \ + GO(gst_util_array_binary_search, pFpuLpipp_t) \ GO(gst_debug_log, vFpippippV_t) \ - GO(gst_debug_log_valist, vFpippippA_t) + GO(gst_debug_log_valist, vFpippippA_t) \ + GO(gst_type_find_register, iFppuppppp_t) \ + GO(gst_plugin_register_static, iFiipppppppp_t) #endif // __wrappedgstreamerTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstriffdefs.h b/src/wrapped/generated/wrappedgstriffdefs.h new file mode 100644 index 00000000..1d7db024 --- /dev/null +++ b/src/wrapped/generated/wrappedgstriffdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstriffDEFS_H_ +#define __wrappedgstriffDEFS_H_ + + +#endif // __wrappedgstriffDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstrifftypes.h b/src/wrapped/generated/wrappedgstrifftypes.h new file mode 100644 index 00000000..b65c2d98 --- /dev/null +++ b/src/wrapped/generated/wrappedgstrifftypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstriffTYPES_H_ +#define __wrappedgstriffTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstriffTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstriffundefs.h b/src/wrapped/generated/wrappedgstriffundefs.h new file mode 100644 index 00000000..2b885ab3 --- /dev/null +++ b/src/wrapped/generated/wrappedgstriffundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstriffUNDEFS_H_ +#define __wrappedgstriffUNDEFS_H_ + + +#endif // __wrappedgstriffUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstrtpdefs.h b/src/wrapped/generated/wrappedgstrtpdefs.h new file mode 100644 index 00000000..d294c561 --- /dev/null +++ b/src/wrapped/generated/wrappedgstrtpdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstrtpDEFS_H_ +#define __wrappedgstrtpDEFS_H_ + + +#endif // __wrappedgstrtpDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstrtptypes.h b/src/wrapped/generated/wrappedgstrtptypes.h new file mode 100644 index 00000000..838ba801 --- /dev/null +++ b/src/wrapped/generated/wrappedgstrtptypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstrtpTYPES_H_ +#define __wrappedgstrtpTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstrtpTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstrtpundefs.h b/src/wrapped/generated/wrappedgstrtpundefs.h new file mode 100644 index 00000000..fed1e6fa --- /dev/null +++ b/src/wrapped/generated/wrappedgstrtpundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstrtpUNDEFS_H_ +#define __wrappedgstrtpUNDEFS_H_ + + +#endif // __wrappedgstrtpUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstrtspdefs.h b/src/wrapped/generated/wrappedgstrtspdefs.h new file mode 100644 index 00000000..84fc53c9 --- /dev/null +++ b/src/wrapped/generated/wrappedgstrtspdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstrtspDEFS_H_ +#define __wrappedgstrtspDEFS_H_ + + +#endif // __wrappedgstrtspDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstrtsptypes.h b/src/wrapped/generated/wrappedgstrtsptypes.h new file mode 100644 index 00000000..66cebe62 --- /dev/null +++ b/src/wrapped/generated/wrappedgstrtsptypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstrtspTYPES_H_ +#define __wrappedgstrtspTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstrtspTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstrtspundefs.h b/src/wrapped/generated/wrappedgstrtspundefs.h new file mode 100644 index 00000000..fb4d87d9 --- /dev/null +++ b/src/wrapped/generated/wrappedgstrtspundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstrtspUNDEFS_H_ +#define __wrappedgstrtspUNDEFS_H_ + + +#endif // __wrappedgstrtspUNDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstsdpdefs.h b/src/wrapped/generated/wrappedgstsdpdefs.h new file mode 100644 index 00000000..30a83cf0 --- /dev/null +++ b/src/wrapped/generated/wrappedgstsdpdefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstsdpDEFS_H_ +#define __wrappedgstsdpDEFS_H_ + + +#endif // __wrappedgstsdpDEFS_H_ diff --git a/src/wrapped/generated/wrappedgstsdptypes.h b/src/wrapped/generated/wrappedgstsdptypes.h new file mode 100644 index 00000000..43e14ad5 --- /dev/null +++ b/src/wrapped/generated/wrappedgstsdptypes.h @@ -0,0 +1,17 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstsdpTYPES_H_ +#define __wrappedgstsdpTYPES_H_ + +#ifndef LIBNAME +#error You should only #include this file inside a wrapped*.c file +#endif +#ifndef ADDED_FUNCTIONS +#define ADDED_FUNCTIONS() +#endif + + +#define SUPER() ADDED_FUNCTIONS() + +#endif // __wrappedgstsdpTYPES_H_ diff --git a/src/wrapped/generated/wrappedgstsdpundefs.h b/src/wrapped/generated/wrappedgstsdpundefs.h new file mode 100644 index 00000000..d418a803 --- /dev/null +++ b/src/wrapped/generated/wrappedgstsdpundefs.h @@ -0,0 +1,8 @@ +/******************************************************************* + * File automatically generated by rebuild_wrappers.py (v2.2.0.18) * + *******************************************************************/ +#ifndef __wrappedgstsdpUNDEFS_H_ +#define __wrappedgstsdpUNDEFS_H_ + + +#endif // __wrappedgstsdpUNDEFS_H_ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index bfb15101..b2dd5a19 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -135,6 +135,7 @@ typedef void* (*pFl_t)(intptr_t); typedef void* (*pFL_t)(uintptr_t); typedef void* (*pFp_t)(void*); typedef void* (*pFV_t)(void*); +typedef void* (*pFA_t)(void*); typedef unsigned __int128 (*HFi_t)(int32_t); typedef unsigned __int128 (*HFp_t)(void*); typedef complexf_t (*xFx_t)(complexf_t); @@ -240,6 +241,7 @@ typedef int64_t (*IFII_t)(int64_t, int64_t); typedef int64_t (*IFpi_t)(void*, int32_t); typedef int64_t (*IFpu_t)(void*, uint32_t); typedef int64_t (*IFpd_t)(void*, double); +typedef int64_t (*IFpp_t)(void*, void*); typedef uint8_t (*CFip_t)(int32_t, void*); typedef uint8_t (*CFCi_t)(uint8_t, int32_t); typedef uint8_t (*CFui_t)(uint32_t, int32_t); @@ -459,6 +461,7 @@ typedef void (*vFppd_t)(void*, void*, double); typedef void (*vFppl_t)(void*, void*, intptr_t); typedef void (*vFppL_t)(void*, void*, uintptr_t); typedef void (*vFppp_t)(void*, void*, void*); +typedef void (*vFppV_t)(void*, void*, void*); typedef int8_t (*cFpdp_t)(void*, double, void*); typedef int16_t (*wFppp_t)(void*, void*, void*); typedef int32_t (*iFEiw_t)(x64emu_t*, int32_t, int16_t); @@ -602,6 +605,7 @@ typedef uint32_t (*uFpLp_t)(void*, uintptr_t, void*); typedef uint32_t (*uFppi_t)(void*, void*, int32_t); typedef uint32_t (*uFppu_t)(void*, void*, uint32_t); typedef uint32_t (*uFppp_t)(void*, void*, void*); +typedef uint64_t (*UFUii_t)(uint64_t, int32_t, int32_t); typedef uint64_t (*UFUUU_t)(uint64_t, uint64_t, uint64_t); typedef uint64_t (*UFpiU_t)(void*, int32_t, uint64_t); typedef uint64_t (*UFppi_t)(void*, void*, int32_t); @@ -677,7 +681,6 @@ typedef void* (*pFWWW_t)(uint16_t, uint16_t, uint16_t); typedef void* (*pFuip_t)(uint32_t, int32_t, void*); typedef void* (*pFuui_t)(uint32_t, uint32_t, int32_t); typedef void* (*pFuuu_t)(uint32_t, uint32_t, uint32_t); -typedef void* (*pFuup_t)(uint32_t, uint32_t, void*); typedef void* (*pFulu_t)(uint32_t, intptr_t, uint32_t); typedef void* (*pFulp_t)(uint32_t, intptr_t, void*); typedef void* (*pFupi_t)(uint32_t, void*, int32_t); @@ -687,6 +690,7 @@ typedef void* (*pFupL_t)(uint32_t, void*, uintptr_t); typedef void* (*pFupp_t)(uint32_t, void*, void*); typedef void* (*pFdip_t)(double, int32_t, void*); typedef void* (*pFdUU_t)(double, uint64_t, uint64_t); +typedef void* (*pFddi_t)(double, double, int32_t); typedef void* (*pFddd_t)(double, double, double); typedef void* (*pFDip_t)(long double, int32_t, void*); typedef void* (*pFlpi_t)(intptr_t, void*, int32_t); @@ -711,6 +715,7 @@ typedef void* (*pFpuu_t)(void*, uint32_t, uint32_t); typedef void* (*pFpuL_t)(void*, uint32_t, uintptr_t); typedef void* (*pFpup_t)(void*, uint32_t, void*); typedef void* (*pFpUi_t)(void*, uint64_t, int32_t); +typedef void* (*pFpUu_t)(void*, uint64_t, uint32_t); typedef void* (*pFpUp_t)(void*, uint64_t, void*); typedef void* (*pFpdu_t)(void*, double, uint32_t); typedef void* (*pFpdd_t)(void*, double, double); @@ -730,6 +735,7 @@ typedef void* (*pFppf_t)(void*, void*, float); typedef void* (*pFppl_t)(void*, void*, intptr_t); typedef void* (*pFppL_t)(void*, void*, uintptr_t); typedef void* (*pFppp_t)(void*, void*, void*); +typedef void* (*pFppA_t)(void*, void*, void*); typedef void* (*pFpOM_t)(void*, int32_t, ...); typedef void* (*pFSpl_t)(void*, void*, intptr_t); typedef void (*vWpup_t)(void*, uint32_t, void*); @@ -1149,6 +1155,7 @@ typedef uintptr_t (*LFpppi_t)(void*, void*, void*, int32_t); typedef uintptr_t (*LFpppL_t)(void*, void*, void*, uintptr_t); typedef uintptr_t (*LFpppp_t)(void*, void*, void*, void*); typedef void* (*pFEipp_t)(x64emu_t*, int32_t, void*, void*); +typedef void* (*pFEuup_t)(x64emu_t*, uint32_t, uint32_t, void*); typedef void* (*pFEupp_t)(x64emu_t*, uint32_t, void*, void*); typedef void* (*pFELpV_t)(x64emu_t*, uintptr_t, void*, void*); typedef void* (*pFELpA_t)(x64emu_t*, uintptr_t, void*, void*); @@ -1193,6 +1200,7 @@ typedef void* (*pFpiLi_t)(void*, int32_t, uintptr_t, int32_t); typedef void* (*pFpiLL_t)(void*, int32_t, uintptr_t, uintptr_t); typedef void* (*pFpipi_t)(void*, int32_t, void*, int32_t); typedef void* (*pFpipd_t)(void*, int32_t, void*, double); +typedef void* (*pFpipL_t)(void*, int32_t, void*, uintptr_t); typedef void* (*pFpipp_t)(void*, int32_t, void*, void*); typedef void* (*pFpCip_t)(void*, uint8_t, int32_t, void*); typedef void* (*pFpCWp_t)(void*, uint8_t, uint16_t, void*); @@ -1211,6 +1219,7 @@ typedef void* (*pFpupi_t)(void*, uint32_t, void*, int32_t); typedef void* (*pFpupu_t)(void*, uint32_t, void*, uint32_t); typedef void* (*pFpupp_t)(void*, uint32_t, void*, void*); typedef void* (*pFpdIU_t)(void*, double, int64_t, uint64_t); +typedef void* (*pFpddi_t)(void*, double, double, int32_t); typedef void* (*pFplil_t)(void*, intptr_t, int32_t, intptr_t); typedef void* (*pFplip_t)(void*, intptr_t, int32_t, void*); typedef void* (*pFplpl_t)(void*, intptr_t, void*, intptr_t); @@ -1651,6 +1660,8 @@ typedef void* (*pFEppLp_t)(x64emu_t*, void*, void*, uintptr_t, void*); typedef void* (*pFEpppi_t)(x64emu_t*, void*, void*, void*, int32_t); typedef void* (*pFEpppu_t)(x64emu_t*, void*, void*, void*, uint32_t); typedef void* (*pFEpppp_t)(x64emu_t*, void*, void*, void*, void*); +typedef void* (*pFEpppV_t)(x64emu_t*, void*, void*, void*, void*); +typedef void* (*pFEpppA_t)(x64emu_t*, void*, void*, void*, void*); typedef void* (*pFiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t); typedef void* (*pFiiipL_t)(int32_t, int32_t, int32_t, void*, uintptr_t); typedef void* (*pFipipL_t)(int32_t, void*, int32_t, void*, uintptr_t); @@ -1663,15 +1674,18 @@ typedef void* (*pFuupuu_t)(uint32_t, uint32_t, void*, uint32_t, uint32_t); typedef void* (*pFudddp_t)(uint32_t, double, double, double, void*); typedef void* (*pFupLpl_t)(uint32_t, void*, uintptr_t, void*, intptr_t); typedef void* (*pFupLpL_t)(uint32_t, void*, uintptr_t, void*, uintptr_t); +typedef void* (*pFddddi_t)(double, double, double, double, int32_t); typedef void* (*pFLuppp_t)(uintptr_t, uint32_t, void*, void*, void*); typedef void* (*pFLpppi_t)(uintptr_t, void*, void*, void*, int32_t); typedef void* (*pFpiiii_t)(void*, int32_t, int32_t, int32_t, int32_t); typedef void* (*pFpiiip_t)(void*, int32_t, int32_t, int32_t, void*); typedef void* (*pFpiiuu_t)(void*, int32_t, int32_t, uint32_t, uint32_t); typedef void* (*pFpiipi_t)(void*, int32_t, int32_t, void*, int32_t); +typedef void* (*pFpiipL_t)(void*, int32_t, int32_t, void*, uintptr_t); typedef void* (*pFpiipp_t)(void*, int32_t, int32_t, void*, void*); typedef void* (*pFpiCCC_t)(void*, int32_t, uint8_t, uint8_t, uint8_t); typedef void* (*pFpiuuu_t)(void*, int32_t, uint32_t, uint32_t, uint32_t); +typedef void* (*pFpiuup_t)(void*, int32_t, uint32_t, uint32_t, void*); typedef void* (*pFpiupp_t)(void*, int32_t, uint32_t, void*, void*); typedef void* (*pFpiLip_t)(void*, int32_t, uintptr_t, int32_t, void*); typedef void* (*pFpipip_t)(void*, int32_t, void*, int32_t, void*); @@ -1699,6 +1713,7 @@ typedef void* (*pFpLLip_t)(void*, uintptr_t, uintptr_t, int32_t, void*); typedef void* (*pFpLLLp_t)(void*, uintptr_t, uintptr_t, uintptr_t, void*); typedef void* (*pFpLpii_t)(void*, uintptr_t, void*, int32_t, int32_t); typedef void* (*pFpLpip_t)(void*, uintptr_t, void*, int32_t, void*); +typedef void* (*pFpLpup_t)(void*, uintptr_t, void*, uint32_t, void*); typedef void* (*pFppiii_t)(void*, void*, int32_t, int32_t, int32_t); typedef void* (*pFppiiu_t)(void*, void*, int32_t, int32_t, uint32_t); typedef void* (*pFppiip_t)(void*, void*, int32_t, int32_t, void*); @@ -1932,6 +1947,7 @@ typedef int32_t (*iFpiuupp_t)(void*, int32_t, uint32_t, uint32_t, void*, void*); typedef int32_t (*iFpipipi_t)(void*, int32_t, void*, int32_t, void*, int32_t); typedef int32_t (*iFpipipp_t)(void*, int32_t, void*, int32_t, void*, void*); typedef int32_t (*iFpipupp_t)(void*, int32_t, void*, uint32_t, void*, void*); +typedef int32_t (*iFpipLpp_t)(void*, int32_t, void*, uintptr_t, void*, void*); typedef int32_t (*iFpippip_t)(void*, int32_t, void*, void*, int32_t, void*); typedef int32_t (*iFpippup_t)(void*, int32_t, void*, void*, uint32_t, void*); typedef int32_t (*iFpipppL_t)(void*, int32_t, void*, void*, void*, uintptr_t); @@ -2045,6 +2061,7 @@ typedef intptr_t (*lFppLipp_t)(void*, void*, uintptr_t, int32_t, void*, void*); typedef intptr_t (*lFpppLpp_t)(void*, void*, void*, uintptr_t, void*, void*); typedef uintptr_t (*LFEupppp_t)(x64emu_t*, uint32_t, void*, void*, void*, void*); typedef uintptr_t (*LFELpppi_t)(x64emu_t*, uintptr_t, void*, void*, void*, int32_t); +typedef uintptr_t (*LFEpippp_t)(x64emu_t*, void*, int32_t, void*, void*, void*); typedef uintptr_t (*LFEppppi_t)(x64emu_t*, void*, void*, void*, void*, int32_t); typedef uintptr_t (*LFpipipi_t)(void*, int32_t, void*, int32_t, void*, int32_t); typedef uintptr_t (*LFpLippp_t)(void*, uintptr_t, int32_t, void*, void*, void*); @@ -2057,6 +2074,7 @@ typedef void* (*pFEpuipp_t)(x64emu_t*, void*, uint32_t, int32_t, void*, void*); typedef void* (*pFEpuupp_t)(x64emu_t*, void*, uint32_t, uint32_t, void*, void*); typedef void* (*pFEpuppp_t)(x64emu_t*, void*, uint32_t, void*, void*, void*); typedef void* (*pFEpLLiN_t)(x64emu_t*, void*, uintptr_t, uintptr_t, int32_t, ...); +typedef void* (*pFEppupi_t)(x64emu_t*, void*, void*, uint32_t, void*, int32_t); typedef void* (*pFEppLLp_t)(x64emu_t*, void*, void*, uintptr_t, uintptr_t, void*); typedef void* (*pFEpppLp_t)(x64emu_t*, void*, void*, void*, uintptr_t, void*); typedef void* (*pFEppppi_t)(x64emu_t*, void*, void*, void*, void*, int32_t); @@ -2067,16 +2085,19 @@ typedef void* (*pFiiiiii_t)(int32_t, int32_t, int32_t, int32_t, int32_t, int32_t typedef void* (*pFiiiiid_t)(int32_t, int32_t, int32_t, int32_t, int32_t, double); typedef void* (*pFipippp_t)(int32_t, void*, int32_t, void*, void*, void*); typedef void* (*pFWCiWCi_t)(uint16_t, uint8_t, int32_t, uint16_t, uint8_t, int32_t); +typedef void* (*pFuCCCCp_t)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t, void*); typedef void* (*pFuuipip_t)(uint32_t, uint32_t, int32_t, void*, int32_t, void*); typedef void* (*pFuuuiip_t)(uint32_t, uint32_t, uint32_t, int32_t, int32_t, void*); typedef void* (*pFuuuuii_t)(uint32_t, uint32_t, uint32_t, uint32_t, int32_t, int32_t); typedef void* (*pFuuuuuu_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); typedef void* (*pFuuuuup_t)(uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, void*); typedef void* (*pFuuppuu_t)(uint32_t, uint32_t, void*, void*, uint32_t, uint32_t); +typedef void* (*pFuppppp_t)(uint32_t, void*, void*, void*, void*, void*); typedef void* (*pFdddddd_t)(double, double, double, double, double, double); typedef void* (*pFpiiiiu_t)(void*, int32_t, int32_t, int32_t, int32_t, uint32_t); typedef void* (*pFpiiipp_t)(void*, int32_t, int32_t, int32_t, void*, void*); typedef void* (*pFpiiCCC_t)(void*, int32_t, int32_t, uint8_t, uint8_t, uint8_t); +typedef void* (*pFpiiuup_t)(void*, int32_t, int32_t, uint32_t, uint32_t, void*); typedef void* (*pFpiUUUU_t)(void*, int32_t, uint64_t, uint64_t, uint64_t, uint64_t); typedef void* (*pFpipipp_t)(void*, int32_t, void*, int32_t, void*, void*); typedef void* (*pFpippip_t)(void*, int32_t, void*, void*, int32_t, void*); @@ -2084,6 +2105,7 @@ typedef void* (*pFpipppp_t)(void*, int32_t, void*, void*, void*, void*); typedef void* (*pFpCuuCC_t)(void*, uint8_t, uint32_t, uint32_t, uint8_t, uint8_t); typedef void* (*pFpCuuWW_t)(void*, uint8_t, uint32_t, uint32_t, uint16_t, uint16_t); typedef void* (*pFpCuuup_t)(void*, uint8_t, uint32_t, uint32_t, uint32_t, void*); +typedef void* (*pFpuiiip_t)(void*, uint32_t, int32_t, int32_t, int32_t, void*); typedef void* (*pFpuuwwu_t)(void*, uint32_t, uint32_t, int16_t, int16_t, uint32_t); typedef void* (*pFpuuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); typedef void* (*pFpuuupu_t)(void*, uint32_t, uint32_t, uint32_t, void*, uint32_t); @@ -2340,6 +2362,7 @@ typedef void* (*pFEppuipp_t)(x64emu_t*, void*, void*, uint32_t, int32_t, void*, typedef void* (*pFEppppip_t)(x64emu_t*, void*, void*, void*, void*, int32_t, void*); typedef void* (*pFEpppppi_t)(x64emu_t*, void*, void*, void*, void*, void*, int32_t); typedef void* (*pFifffppp_t)(int32_t, float, float, float, void*, void*, void*); +typedef void* (*pFWpppppp_t)(uint16_t, void*, void*, void*, void*, void*, void*); typedef void* (*pFuuuiiip_t)(uint32_t, uint32_t, uint32_t, int32_t, int32_t, int32_t, void*); typedef void* (*pFuupupup_t)(uint32_t, uint32_t, void*, uint32_t, void*, uint32_t, void*); typedef void* (*pFfiiiiid_t)(float, int32_t, int32_t, int32_t, int32_t, int32_t, double); @@ -2355,6 +2378,7 @@ typedef void* (*pFpCpWWup_t)(void*, uint8_t, void*, uint16_t, uint16_t, uint32_t typedef void* (*pFpWppWpp_t)(void*, uint16_t, void*, void*, uint16_t, void*, void*); typedef void* (*pFpuuuwwu_t)(void*, uint32_t, uint32_t, uint32_t, int16_t, int16_t, uint32_t); typedef void* (*pFpuupwwC_t)(void*, uint32_t, uint32_t, void*, int16_t, int16_t, uint8_t); +typedef void* (*pFpuLpipp_t)(void*, uint32_t, uintptr_t, void*, int32_t, void*, void*); typedef void* (*pFpupiipp_t)(void*, uint32_t, void*, int32_t, int32_t, void*, void*); typedef void* (*pFpuppipp_t)(void*, uint32_t, void*, void*, int32_t, void*, void*); typedef void* (*pFplppppp_t)(void*, intptr_t, void*, void*, void*, void*, void*); @@ -2382,6 +2406,7 @@ typedef void* (*pFpppCCCi_t)(void*, void*, void*, uint8_t, uint8_t, uint8_t, int typedef void* (*pFpppuipp_t)(void*, void*, void*, uint32_t, int32_t, void*, void*); typedef void* (*pFpppuuui_t)(void*, void*, void*, uint32_t, uint32_t, uint32_t, int32_t); typedef void* (*pFpppuupp_t)(void*, void*, void*, uint32_t, uint32_t, void*, void*); +typedef void* (*pFpppupii_t)(void*, void*, void*, uint32_t, void*, int32_t, int32_t); typedef void* (*pFpppupup_t)(void*, void*, void*, uint32_t, void*, uint32_t, void*); typedef void* (*pFpppuppp_t)(void*, void*, void*, uint32_t, void*, void*, void*); typedef void* (*pFpppfffi_t)(void*, void*, void*, float, float, float, int32_t); @@ -2404,6 +2429,7 @@ typedef void (*vFEiippppV_t)(x64emu_t*, int32_t, int32_t, void*, void*, void*, v typedef void (*vFEiupippp_t)(x64emu_t*, int32_t, uint32_t, void*, int32_t, void*, void*, void*); typedef void (*vFEipAippp_t)(x64emu_t*, int32_t, void*, void*, int32_t, void*, void*, void*); typedef void (*vFEppipppp_t)(x64emu_t*, void*, void*, int32_t, void*, void*, void*, void*); +typedef void (*vFEppLippp_t)(x64emu_t*, void*, void*, uintptr_t, int32_t, void*, void*, void*); typedef void (*vFEpppippp_t)(x64emu_t*, void*, void*, void*, int32_t, void*, void*, void*); typedef void (*vFEpppuipV_t)(x64emu_t*, void*, void*, void*, uint32_t, int32_t, void*, void*); typedef void (*vFEpppppuu_t)(x64emu_t*, void*, void*, void*, void*, void*, uint32_t, uint32_t); @@ -2534,6 +2560,7 @@ typedef uintptr_t (*LFELpupupu_t)(x64emu_t*, uintptr_t, void*, uint32_t, void*, typedef uintptr_t (*LFEpiupppp_t)(x64emu_t*, void*, int32_t, uint32_t, void*, void*, void*, void*); typedef uintptr_t (*LFpLpuuLLu_t)(void*, uintptr_t, void*, uint32_t, uint32_t, uintptr_t, uintptr_t, uint32_t); typedef void* (*pFEiplllpp_t)(x64emu_t*, int32_t, void*, intptr_t, intptr_t, intptr_t, void*, void*); +typedef void* (*pFEipLLLpp_t)(x64emu_t*, int32_t, void*, uintptr_t, uintptr_t, uintptr_t, void*, void*); typedef void* (*pFEpiuCppp_t)(x64emu_t*, void*, int32_t, uint32_t, uint8_t, void*, void*, void*); typedef void* (*pFEppLiiip_t)(x64emu_t*, void*, void*, uintptr_t, int32_t, int32_t, int32_t, void*); typedef void* (*pFEpppuipV_t)(x64emu_t*, void*, void*, void*, uint32_t, int32_t, void*, void*); @@ -2543,8 +2570,10 @@ typedef void* (*pFEppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void typedef void* (*pFiippipip_t)(int32_t, int32_t, void*, void*, int32_t, void*, int32_t, void*); typedef void* (*pFiupppppp_t)(int32_t, uint32_t, void*, void*, void*, void*, void*, void*); typedef void* (*pFuiiiuuuu_t)(uint32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t, uint32_t, uint32_t); +typedef void* (*pFuCCCCpWw_t)(uint32_t, uint8_t, uint8_t, uint8_t, uint8_t, void*, uint16_t, int16_t); typedef void* (*pFuupupipp_t)(uint32_t, uint32_t, void*, uint32_t, void*, int32_t, void*, void*); typedef void* (*pFpiiiiiuu_t)(void*, int32_t, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t); +typedef void* (*pFpiiuuupp_t)(void*, int32_t, int32_t, uint32_t, uint32_t, uint32_t, void*, void*); typedef void* (*pFpiUdiiUi_t)(void*, int32_t, uint64_t, double, int32_t, int32_t, uint64_t, int32_t); typedef void* (*pFpipiiiip_t)(void*, int32_t, void*, int32_t, int32_t, int32_t, int32_t, void*); typedef void* (*pFpCCuuwwC_t)(void*, uint8_t, uint8_t, uint32_t, uint32_t, int16_t, int16_t, uint8_t); @@ -2630,6 +2659,7 @@ typedef void (*vFpppffffff_t)(void*, void*, void*, float, float, float, float, f typedef void (*vFppppipiip_t)(void*, void*, void*, void*, int32_t, void*, int32_t, int32_t, void*); typedef void (*vFpppppippp_t)(void*, void*, void*, void*, void*, int32_t, void*, void*, void*); typedef int32_t (*iFEpiiiiipi_t)(x64emu_t*, void*, int32_t, int32_t, int32_t, int32_t, int32_t, void*, int32_t); +typedef int32_t (*iFEppuppppp_t)(x64emu_t*, void*, void*, uint32_t, void*, void*, void*, void*, void*); typedef int32_t (*iFEpppipppp_t)(x64emu_t*, void*, void*, void*, int32_t, void*, void*, void*, void*); typedef int32_t (*iFEppplPPPP_t)(x64emu_t*, void*, void*, void*, intptr_t, void*, void*, void*, void*); typedef int32_t (*iFEpppppupp_t)(x64emu_t*, void*, void*, void*, void*, void*, uint32_t, void*, void*); @@ -2638,6 +2668,7 @@ typedef int32_t (*iFiiiiiiiip_t)(int32_t, int32_t, int32_t, int32_t, int32_t, in typedef int32_t (*iFiiiipiiip_t)(int32_t, int32_t, int32_t, int32_t, void*, int32_t, int32_t, int32_t, void*); typedef int32_t (*iFipiipippi_t)(int32_t, void*, int32_t, int32_t, void*, int32_t, void*, void*, int32_t); typedef int32_t (*iFdddpppppp_t)(double, double, double, void*, void*, void*, void*, void*, void*); +typedef int32_t (*iFpipippppi_t)(void*, int32_t, void*, int32_t, void*, void*, void*, void*, int32_t); typedef int32_t (*iFpipLpiiip_t)(void*, int32_t, void*, uintptr_t, void*, int32_t, int32_t, int32_t, void*); typedef int32_t (*iFpuuuuuuuu_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t, uint32_t); typedef int32_t (*iFpuuuuduup_t)(void*, uint32_t, uint32_t, uint32_t, uint32_t, double, uint32_t, uint32_t, void*); @@ -2795,6 +2826,7 @@ typedef void (*vFppuupppiiii_t)(void*, void*, uint32_t, uint32_t, void*, void*, typedef void (*vFppupipiuuuu_t)(void*, void*, uint32_t, void*, int32_t, void*, int32_t, uint32_t, uint32_t, uint32_t, uint32_t); typedef void (*vFppupppuiiii_t)(void*, void*, uint32_t, void*, void*, void*, uint32_t, int32_t, int32_t, int32_t, int32_t); typedef void (*vFppppppppppp_t)(void*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); +typedef int32_t (*iFEiipppppppp_t)(x64emu_t*, int32_t, int32_t, void*, void*, void*, void*, void*, void*, void*, void*); typedef int32_t (*iFEpppipppppp_t)(x64emu_t*, void*, void*, void*, int32_t, void*, void*, void*, void*, void*, void*); typedef int32_t (*iFEppppiiiiuu_t)(x64emu_t*, void*, void*, void*, void*, int32_t, int32_t, int32_t, int32_t, uint32_t, uint32_t); typedef int32_t (*iFEpppppppppp_t)(x64emu_t*, void*, void*, void*, void*, void*, void*, void*, void*, void*, void*); @@ -3042,6 +3074,7 @@ void pFl(x64emu_t *emu, uintptr_t fcn) { pFl_t fn = (pFl_t)fcn; R_RAX=(uintptr_t void pFL(x64emu_t *emu, uintptr_t fcn) { pFL_t fn = (pFL_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI); } void pFp(x64emu_t *emu, uintptr_t fcn) { pFp_t fn = (pFp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI); } void pFV(x64emu_t *emu, uintptr_t fcn) { pFV_t fn = (pFV_t)fcn; R_RAX=(uintptr_t)fn((void*)(R_RSP + 8)); } +void pFA(x64emu_t *emu, uintptr_t fcn) { pFA_t fn = (pFA_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI); } void HFi(x64emu_t *emu, uintptr_t fcn) { HFi_t fn = (HFi_t)fcn; unsigned __int128 u128 = fn((int32_t)R_RDI); R_RAX=(u128&0xFFFFFFFFFFFFFFFFL); R_RDX=(u128>>64)&0xFFFFFFFFFFFFFFFFL; } void HFp(x64emu_t *emu, uintptr_t fcn) { HFp_t fn = (HFp_t)fcn; unsigned __int128 u128 = fn((void*)R_RDI); R_RAX=(u128&0xFFFFFFFFFFFFFFFFL); R_RDX=(u128>>64)&0xFFFFFFFFFFFFFFFFL; } void xFx(x64emu_t *emu, uintptr_t fcn) { xFx_t fn = (xFx_t)fcn; from_complexf(emu, fn(to_complexf(emu, 0))); } @@ -3147,6 +3180,7 @@ void IFII(x64emu_t *emu, uintptr_t fcn) { IFII_t fn = (IFII_t)fcn; R_RAX=(int64_ void IFpi(x64emu_t *emu, uintptr_t fcn) { IFpi_t fn = (IFpi_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (int32_t)R_RSI); } void IFpu(x64emu_t *emu, uintptr_t fcn) { IFpu_t fn = (IFpu_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (uint32_t)R_RSI); } void IFpd(x64emu_t *emu, uintptr_t fcn) { IFpd_t fn = (IFpd_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, emu->xmm[0].d[0]); } +void IFpp(x64emu_t *emu, uintptr_t fcn) { IFpp_t fn = (IFpp_t)fcn; R_RAX=(int64_t)fn((void*)R_RDI, (void*)R_RSI); } void CFip(x64emu_t *emu, uintptr_t fcn) { CFip_t fn = (CFip_t)fcn; R_RAX=(unsigned char)fn((int32_t)R_RDI, (void*)R_RSI); } void CFCi(x64emu_t *emu, uintptr_t fcn) { CFCi_t fn = (CFCi_t)fcn; R_RAX=(unsigned char)fn((uint8_t)R_RDI, (int32_t)R_RSI); } void CFui(x64emu_t *emu, uintptr_t fcn) { CFui_t fn = (CFui_t)fcn; R_RAX=(unsigned char)fn((uint32_t)R_RDI, (int32_t)R_RSI); } @@ -3366,6 +3400,7 @@ void vFppd(x64emu_t *emu, uintptr_t fcn) { vFppd_t fn = (vFppd_t)fcn; fn((void*) void vFppl(x64emu_t *emu, uintptr_t fcn) { vFppl_t fn = (vFppl_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX); } void vFppL(x64emu_t *emu, uintptr_t fcn) { vFppL_t fn = (vFppL_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); } void vFppp(x64emu_t *emu, uintptr_t fcn) { vFppp_t fn = (vFppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } +void vFppV(x64emu_t *emu, uintptr_t fcn) { vFppV_t fn = (vFppV_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); } void cFpdp(x64emu_t *emu, uintptr_t fcn) { cFpdp_t fn = (cFpdp_t)fcn; R_RAX=fn((void*)R_RDI, emu->xmm[0].d[0], (void*)R_RSI); } void wFppp(x64emu_t *emu, uintptr_t fcn) { wFppp_t fn = (wFppp_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } void iFEiw(x64emu_t *emu, uintptr_t fcn) { iFEiw_t fn = (iFEiw_t)fcn; R_RAX=(int32_t)fn(emu, (int32_t)R_RDI, (int16_t)R_RSI); } @@ -3509,6 +3544,7 @@ void uFpLp(x64emu_t *emu, uintptr_t fcn) { uFpLp_t fn = (uFpLp_t)fcn; R_RAX=(uin void uFppi(x64emu_t *emu, uintptr_t fcn) { uFppi_t fn = (uFppi_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); } void uFppu(x64emu_t *emu, uintptr_t fcn) { uFppu_t fn = (uFppu_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX); } void uFppp(x64emu_t *emu, uintptr_t fcn) { uFppp_t fn = (uFppp_t)fcn; R_RAX=(uint32_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } +void UFUii(x64emu_t *emu, uintptr_t fcn) { UFUii_t fn = (UFUii_t)fcn; R_RAX=fn((uint64_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX); } void UFUUU(x64emu_t *emu, uintptr_t fcn) { UFUUU_t fn = (UFUUU_t)fcn; R_RAX=fn((uint64_t)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX); } void UFpiU(x64emu_t *emu, uintptr_t fcn) { UFpiU_t fn = (UFpiU_t)fcn; R_RAX=fn((void*)R_RDI, (int32_t)R_RSI, (uint64_t)R_RDX); } void UFppi(x64emu_t *emu, uintptr_t fcn) { UFppi_t fn = (UFppi_t)fcn; R_RAX=fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX); } @@ -3584,7 +3620,6 @@ void pFWWW(x64emu_t *emu, uintptr_t fcn) { pFWWW_t fn = (pFWWW_t)fcn; R_RAX=(uin void pFuip(x64emu_t *emu, uintptr_t fcn) { pFuip_t fn = (pFuip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX); } void pFuui(x64emu_t *emu, uintptr_t fcn) { pFuui_t fn = (pFuui_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX); } void pFuuu(x64emu_t *emu, uintptr_t fcn) { pFuuu_t fn = (pFuuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX); } -void pFuup(x64emu_t *emu, uintptr_t fcn) { pFuup_t fn = (pFuup_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); } void pFulu(x64emu_t *emu, uintptr_t fcn) { pFulu_t fn = (pFulu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (intptr_t)R_RSI, (uint32_t)R_RDX); } void pFulp(x64emu_t *emu, uintptr_t fcn) { pFulp_t fn = (pFulp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (intptr_t)R_RSI, (void*)R_RDX); } void pFupi(x64emu_t *emu, uintptr_t fcn) { pFupi_t fn = (pFupi_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX); } @@ -3594,6 +3629,7 @@ void pFupL(x64emu_t *emu, uintptr_t fcn) { pFupL_t fn = (pFupL_t)fcn; R_RAX=(uin void pFupp(x64emu_t *emu, uintptr_t fcn) { pFupp_t fn = (pFupp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void pFdip(x64emu_t *emu, uintptr_t fcn) { pFdip_t fn = (pFdip_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], (int32_t)R_RDI, (void*)R_RSI); } void pFdUU(x64emu_t *emu, uintptr_t fcn) { pFdUU_t fn = (pFdUU_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], (uint64_t)R_RDI, (uint64_t)R_RSI); } +void pFddi(x64emu_t *emu, uintptr_t fcn) { pFddi_t fn = (pFddi_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RDI); } void pFddd(x64emu_t *emu, uintptr_t fcn) { pFddd_t fn = (pFddd_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0]); } void pFDip(x64emu_t *emu, uintptr_t fcn) { pFDip_t fn = (pFDip_t)fcn; R_RAX=(uintptr_t)fn(LD2localLD((void*)(R_RSP + 8)), (int32_t)R_RDI, (void*)R_RSI); } void pFlpi(x64emu_t *emu, uintptr_t fcn) { pFlpi_t fn = (pFlpi_t)fcn; R_RAX=(uintptr_t)fn((intptr_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX); } @@ -3618,6 +3654,7 @@ void pFpuu(x64emu_t *emu, uintptr_t fcn) { pFpuu_t fn = (pFpuu_t)fcn; R_RAX=(uin void pFpuL(x64emu_t *emu, uintptr_t fcn) { pFpuL_t fn = (pFpuL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX); } void pFpup(x64emu_t *emu, uintptr_t fcn) { pFpup_t fn = (pFpup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); } void pFpUi(x64emu_t *emu, uintptr_t fcn) { pFpUi_t fn = (pFpUi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (int32_t)R_RDX); } +void pFpUu(x64emu_t *emu, uintptr_t fcn) { pFpUu_t fn = (pFpUu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (uint32_t)R_RDX); } void pFpUp(x64emu_t *emu, uintptr_t fcn) { pFpUp_t fn = (pFpUp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX); } void pFpdu(x64emu_t *emu, uintptr_t fcn) { pFpdu_t fn = (pFpdu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], (uint32_t)R_RSI); } void pFpdd(x64emu_t *emu, uintptr_t fcn) { pFpdd_t fn = (pFpdd_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0]); } @@ -3637,6 +3674,7 @@ void pFppf(x64emu_t *emu, uintptr_t fcn) { pFppf_t fn = (pFppf_t)fcn; R_RAX=(uin void pFppl(x64emu_t *emu, uintptr_t fcn) { pFppl_t fn = (pFppl_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (intptr_t)R_RDX); } void pFppL(x64emu_t *emu, uintptr_t fcn) { pFppL_t fn = (pFppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX); } void pFppp(x64emu_t *emu, uintptr_t fcn) { pFppp_t fn = (pFppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } +void pFppA(x64emu_t *emu, uintptr_t fcn) { pFppA_t fn = (pFppA_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX); } void pFpOM(x64emu_t *emu, uintptr_t fcn) { pFpOM_t fn = (pFpOM_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, of_convert((int32_t)R_RSI), (void*)R_RDX, (void*)R_RCX); } void pFSpl(x64emu_t *emu, uintptr_t fcn) { pFSpl_t fn = (pFSpl_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (intptr_t)R_RDX); } void vWpup(x64emu_t *emu, uintptr_t fcn) { vWpup_t fn = (vWpup_t)fcn; fn((void*)R_RCX, (uint32_t)R_RDX, (void*)R_R8); } @@ -4056,6 +4094,7 @@ void LFpppi(x64emu_t *emu, uintptr_t fcn) { LFpppi_t fn = (LFpppi_t)fcn; R_RAX=( void LFpppL(x64emu_t *emu, uintptr_t fcn) { LFpppL_t fn = (LFpppL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void LFpppp(x64emu_t *emu, uintptr_t fcn) { LFpppp_t fn = (LFpppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFEipp(x64emu_t *emu, uintptr_t fcn) { pFEipp_t fn = (pFEipp_t)fcn; R_RAX=(uintptr_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } +void pFEuup(x64emu_t *emu, uintptr_t fcn) { pFEuup_t fn = (pFEuup_t)fcn; R_RAX=(uintptr_t)fn(emu, (uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX); } void pFEupp(x64emu_t *emu, uintptr_t fcn) { pFEupp_t fn = (pFEupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } void pFELpV(x64emu_t *emu, uintptr_t fcn) { pFELpV_t fn = (pFELpV_t)fcn; R_RAX=(uintptr_t)fn(emu, (uintptr_t)R_RDI, (void*)R_RSI, (void*)(R_RSP + 8)); } void pFELpA(x64emu_t *emu, uintptr_t fcn) { pFELpA_t fn = (pFELpA_t)fcn; R_RAX=(uintptr_t)fn(emu, (uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX); } @@ -4100,6 +4139,7 @@ void pFpiLi(x64emu_t *emu, uintptr_t fcn) { pFpiLi_t fn = (pFpiLi_t)fcn; R_RAX=( void pFpiLL(x64emu_t *emu, uintptr_t fcn) { pFpiLL_t fn = (pFpiLL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX); } void pFpipi(x64emu_t *emu, uintptr_t fcn) { pFpipi_t fn = (pFpipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX); } void pFpipd(x64emu_t *emu, uintptr_t fcn) { pFpipd_t fn = (pFpipd_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, emu->xmm[0].d[0]); } +void pFpipL(x64emu_t *emu, uintptr_t fcn) { pFpipL_t fn = (pFpipL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX); } void pFpipp(x64emu_t *emu, uintptr_t fcn) { pFpipp_t fn = (pFpipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFpCip(x64emu_t *emu, uintptr_t fcn) { pFpCip_t fn = (pFpCip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void pFpCWp(x64emu_t *emu, uintptr_t fcn) { pFpCWp_t fn = (pFpCWp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint16_t)R_RDX, (void*)R_RCX); } @@ -4118,6 +4158,7 @@ void pFpupi(x64emu_t *emu, uintptr_t fcn) { pFpupi_t fn = (pFpupi_t)fcn; R_RAX=( void pFpupu(x64emu_t *emu, uintptr_t fcn) { pFpupu_t fn = (pFpupu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); } void pFpupp(x64emu_t *emu, uintptr_t fcn) { pFpupp_t fn = (pFpupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFpdIU(x64emu_t *emu, uintptr_t fcn) { pFpdIU_t fn = (pFpdIU_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], (int64_t)R_RSI, (uint64_t)R_RDX); } +void pFpddi(x64emu_t *emu, uintptr_t fcn) { pFpddi_t fn = (pFpddi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], (int32_t)R_RSI); } void pFplil(x64emu_t *emu, uintptr_t fcn) { pFplil_t fn = (pFplil_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (int32_t)R_RDX, (intptr_t)R_RCX); } void pFplip(x64emu_t *emu, uintptr_t fcn) { pFplip_t fn = (pFplip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void pFplpl(x64emu_t *emu, uintptr_t fcn) { pFplpl_t fn = (pFplpl_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (void*)R_RDX, (intptr_t)R_RCX); } @@ -4558,6 +4599,8 @@ void pFEppLp(x64emu_t *emu, uintptr_t fcn) { pFEppLp_t fn = (pFEppLp_t)fcn; R_RA void pFEpppi(x64emu_t *emu, uintptr_t fcn) { pFEpppi_t fn = (pFEpppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX); } void pFEpppu(x64emu_t *emu, uintptr_t fcn) { pFEpppu_t fn = (pFEpppu_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX); } void pFEpppp(x64emu_t *emu, uintptr_t fcn) { pFEpppp_t fn = (pFEpppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } +void pFEpppV(x64emu_t *emu, uintptr_t fcn) { pFEpppV_t fn = (pFEpppV_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); } +void pFEpppA(x64emu_t *emu, uintptr_t fcn) { pFEpppA_t fn = (pFEpppA_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFiiiii(x64emu_t *emu, uintptr_t fcn) { pFiiiii_t fn = (pFiiiii_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); } void pFiiipL(x64emu_t *emu, uintptr_t fcn) { pFiiipL_t fn = (pFiiipL_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } void pFipipL(x64emu_t *emu, uintptr_t fcn) { pFipipL_t fn = (pFipipL_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } @@ -4570,15 +4613,18 @@ void pFuupuu(x64emu_t *emu, uintptr_t fcn) { pFuupuu_t fn = (pFuupuu_t)fcn; R_RA void pFudddp(x64emu_t *emu, uintptr_t fcn) { pFudddp_t fn = (pFudddp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], (void*)R_RSI); } void pFupLpl(x64emu_t *emu, uintptr_t fcn) { pFupLpl_t fn = (pFupLpl_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (intptr_t)R_R8); } void pFupLpL(x64emu_t *emu, uintptr_t fcn) { pFupLpL_t fn = (pFupLpL_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } +void pFddddi(x64emu_t *emu, uintptr_t fcn) { pFddddi_t fn = (pFddddi_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], (int32_t)R_RDI); } void pFLuppp(x64emu_t *emu, uintptr_t fcn) { pFLuppp_t fn = (pFLuppp_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void pFLpppi(x64emu_t *emu, uintptr_t fcn) { pFLpppi_t fn = (pFLpppi_t)fcn; R_RAX=(uintptr_t)fn((uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); } void pFpiiii(x64emu_t *emu, uintptr_t fcn) { pFpiiii_t fn = (pFpiiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); } void pFpiiip(x64emu_t *emu, uintptr_t fcn) { pFpiiip_t fn = (pFpiiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); } void pFpiiuu(x64emu_t *emu, uintptr_t fcn) { pFpiiuu_t fn = (pFpiiuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); } void pFpiipi(x64emu_t *emu, uintptr_t fcn) { pFpiipi_t fn = (pFpiipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); } +void pFpiipL(x64emu_t *emu, uintptr_t fcn) { pFpiipL_t fn = (pFpiipL_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8); } void pFpiipp(x64emu_t *emu, uintptr_t fcn) { pFpiipp_t fn = (pFpiipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void pFpiCCC(x64emu_t *emu, uintptr_t fcn) { pFpiCCC_t fn = (pFpiCCC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8); } void pFpiuuu(x64emu_t *emu, uintptr_t fcn) { pFpiuuu_t fn = (pFpiuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8); } +void pFpiuup(x64emu_t *emu, uintptr_t fcn) { pFpiuup_t fn = (pFpiuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8); } void pFpiupp(x64emu_t *emu, uintptr_t fcn) { pFpiupp_t fn = (pFpiupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void pFpiLip(x64emu_t *emu, uintptr_t fcn) { pFpiLip_t fn = (pFpiLip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); } void pFpipip(x64emu_t *emu, uintptr_t fcn) { pFpipip_t fn = (pFpipip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8); } @@ -4606,6 +4652,7 @@ void pFpLLip(x64emu_t *emu, uintptr_t fcn) { pFpLLip_t fn = (pFpLLip_t)fcn; R_RA void pFpLLLp(x64emu_t *emu, uintptr_t fcn) { pFpLLLp_t fn = (pFpLLLp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); } void pFpLpii(x64emu_t *emu, uintptr_t fcn) { pFpLpii_t fn = (pFpLpii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); } void pFpLpip(x64emu_t *emu, uintptr_t fcn) { pFpLpip_t fn = (pFpLpip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8); } +void pFpLpup(x64emu_t *emu, uintptr_t fcn) { pFpLpup_t fn = (pFpLpup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8); } void pFppiii(x64emu_t *emu, uintptr_t fcn) { pFppiii_t fn = (pFppiii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8); } void pFppiiu(x64emu_t *emu, uintptr_t fcn) { pFppiiu_t fn = (pFppiiu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8); } void pFppiip(x64emu_t *emu, uintptr_t fcn) { pFppiip_t fn = (pFppiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); } @@ -4839,6 +4886,7 @@ void iFpiuupp(x64emu_t *emu, uintptr_t fcn) { iFpiuupp_t fn = (iFpiuupp_t)fcn; R void iFpipipi(x64emu_t *emu, uintptr_t fcn) { iFpipipi_t fn = (iFpipipi_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); } void iFpipipp(x64emu_t *emu, uintptr_t fcn) { iFpipipp_t fn = (iFpipipp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); } void iFpipupp(x64emu_t *emu, uintptr_t fcn) { iFpipupp_t fn = (iFpipupp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9); } +void iFpipLpp(x64emu_t *emu, uintptr_t fcn) { iFpipLpp_t fn = (iFpipLpp_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)R_R9); } void iFpippip(x64emu_t *emu, uintptr_t fcn) { iFpippip_t fn = (iFpippip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); } void iFpippup(x64emu_t *emu, uintptr_t fcn) { iFpippup_t fn = (iFpippup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (void*)R_R9); } void iFpipppL(x64emu_t *emu, uintptr_t fcn) { iFpipppL_t fn = (iFpipppL_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uintptr_t)R_R9); } @@ -4952,6 +5000,7 @@ void lFppLipp(x64emu_t *emu, uintptr_t fcn) { lFppLipp_t fn = (lFppLipp_t)fcn; R void lFpppLpp(x64emu_t *emu, uintptr_t fcn) { lFpppLpp_t fn = (lFpppLpp_t)fcn; R_RAX=(intptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (void*)R_R9); } void LFEupppp(x64emu_t *emu, uintptr_t fcn) { LFEupppp_t fn = (LFEupppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void LFELpppi(x64emu_t *emu, uintptr_t fcn) { LFELpppi_t fn = (LFELpppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (uintptr_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); } +void LFEpippp(x64emu_t *emu, uintptr_t fcn) { LFEpippp_t fn = (LFEpippp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void LFEppppi(x64emu_t *emu, uintptr_t fcn) { LFEppppi_t fn = (LFEppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); } void LFpipipi(x64emu_t *emu, uintptr_t fcn) { LFpipipi_t fn = (LFpipipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9); } void LFpLippp(x64emu_t *emu, uintptr_t fcn) { LFpLippp_t fn = (LFpLippp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } @@ -4964,6 +5013,7 @@ void pFEpuipp(x64emu_t *emu, uintptr_t fcn) { pFEpuipp_t fn = (pFEpuipp_t)fcn; R void pFEpuupp(x64emu_t *emu, uintptr_t fcn) { pFEpuupp_t fn = (pFEpuupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8); } void pFEpuppp(x64emu_t *emu, uintptr_t fcn) { pFEpuppp_t fn = (pFEpuppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); } void pFEpLLiN(x64emu_t *emu, uintptr_t fcn) { pFEpLLiN_t fn = (pFEpLLiN_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uintptr_t)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8); } +void pFEppupi(x64emu_t *emu, uintptr_t fcn) { pFEppupi_t fn = (pFEppupi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8); } void pFEppLLp(x64emu_t *emu, uintptr_t fcn) { pFEppLLp_t fn = (pFEppLLp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); } void pFEpppLp(x64emu_t *emu, uintptr_t fcn) { pFEpppLp_t fn = (pFEpppLp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8); } void pFEppppi(x64emu_t *emu, uintptr_t fcn) { pFEppppi_t fn = (pFEppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8); } @@ -4974,16 +5024,19 @@ void pFiiiiii(x64emu_t *emu, uintptr_t fcn) { pFiiiiii_t fn = (pFiiiiii_t)fcn; R void pFiiiiid(x64emu_t *emu, uintptr_t fcn) { pFiiiiid_t fn = (pFiiiiid_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[0].d[0]); } void pFipippp(x64emu_t *emu, uintptr_t fcn) { pFipippp_t fn = (pFipippp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void pFWCiWCi(x64emu_t *emu, uintptr_t fcn) { pFWCiWCi_t fn = (pFWCiWCi_t)fcn; R_RAX=(uintptr_t)fn((uint16_t)R_RDI, (uint8_t)R_RSI, (int32_t)R_RDX, (uint16_t)R_RCX, (uint8_t)R_R8, (int32_t)R_R9); } +void pFuCCCCp(x64emu_t *emu, uintptr_t fcn) { pFuCCCCp_t fn = (pFuCCCCp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (void*)R_R9); } void pFuuipip(x64emu_t *emu, uintptr_t fcn) { pFuuipip_t fn = (pFuuipip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); } void pFuuuiip(x64emu_t *emu, uintptr_t fcn) { pFuuuiip_t fn = (pFuuuiip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } void pFuuuuii(x64emu_t *emu, uintptr_t fcn) { pFuuuuii_t fn = (pFuuuuii_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9); } void pFuuuuuu(x64emu_t *emu, uintptr_t fcn) { pFuuuuuu_t fn = (pFuuuuuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); } void pFuuuuup(x64emu_t *emu, uintptr_t fcn) { pFuuuuup_t fn = (pFuuuuup_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); } void pFuuppuu(x64emu_t *emu, uintptr_t fcn) { pFuuppuu_t fn = (pFuuppuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); } +void pFuppppp(x64emu_t *emu, uintptr_t fcn) { pFuppppp_t fn = (pFuppppp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } void pFdddddd(x64emu_t *emu, uintptr_t fcn) { pFdddddd_t fn = (pFdddddd_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], emu->xmm[3].d[0], emu->xmm[4].d[0], emu->xmm[5].d[0]); } void pFpiiiiu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiu_t fn = (pFpiiiiu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (uint32_t)R_R9); } void pFpiiipp(x64emu_t *emu, uintptr_t fcn) { pFpiiipp_t fn = (pFpiiipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); } void pFpiiCCC(x64emu_t *emu, uintptr_t fcn) { pFpiiCCC_t fn = (pFpiiCCC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9); } +void pFpiiuup(x64emu_t *emu, uintptr_t fcn) { pFpiiuup_t fn = (pFpiiuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); } void pFpiUUUU(x64emu_t *emu, uintptr_t fcn) { pFpiUUUU_t fn = (pFpiUUUU_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint64_t)R_RDX, (uint64_t)R_RCX, (uint64_t)R_R8, (uint64_t)R_R9); } void pFpipipp(x64emu_t *emu, uintptr_t fcn) { pFpipipp_t fn = (pFpipipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9); } void pFpippip(x64emu_t *emu, uintptr_t fcn) { pFpippip_t fn = (pFpippip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); } @@ -4991,6 +5044,7 @@ void pFpipppp(x64emu_t *emu, uintptr_t fcn) { pFpipppp_t fn = (pFpipppp_t)fcn; R void pFpCuuCC(x64emu_t *emu, uintptr_t fcn) { pFpCuuCC_t fn = (pFpCuuCC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint8_t)R_R8, (uint8_t)R_R9); } void pFpCuuWW(x64emu_t *emu, uintptr_t fcn) { pFpCuuWW_t fn = (pFpCuuWW_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint16_t)R_R8, (uint16_t)R_R9); } void pFpCuuup(x64emu_t *emu, uintptr_t fcn) { pFpCuuup_t fn = (pFpCuuup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9); } +void pFpuiiip(x64emu_t *emu, uintptr_t fcn) { pFpuiiip_t fn = (pFpuiiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9); } void pFpuuwwu(x64emu_t *emu, uintptr_t fcn) { pFpuuwwu_t fn = (pFpuuwwu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int16_t)R_RCX, (int16_t)R_R8, (uint32_t)R_R9); } void pFpuuuuu(x64emu_t *emu, uintptr_t fcn) { pFpuuuuu_t fn = (pFpuuuuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9); } void pFpuuupu(x64emu_t *emu, uintptr_t fcn) { pFpuuupu_t fn = (pFpuuupu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9); } @@ -5247,6 +5301,7 @@ void pFEppuipp(x64emu_t *emu, uintptr_t fcn) { pFEppuipp_t fn = (pFEppuipp_t)fcn void pFEppppip(x64emu_t *emu, uintptr_t fcn) { pFEppppip_t fn = (pFEppppip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9); } void pFEpppppi(x64emu_t *emu, uintptr_t fcn) { pFEpppppi_t fn = (pFEpppppi_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9); } void pFifffppp(x64emu_t *emu, uintptr_t fcn) { pFifffppp_t fn = (pFifffppp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], (void*)R_RSI, (void*)R_RDX, (void*)R_RCX); } +void pFWpppppp(x64emu_t *emu, uintptr_t fcn) { pFWpppppp_t fn = (pFWpppppp_t)fcn; R_RAX=(uintptr_t)fn((uint16_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFuuuiiip(x64emu_t *emu, uintptr_t fcn) { pFuuuiiip_t fn = (pFuuuiiip_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); } void pFuupupup(x64emu_t *emu, uintptr_t fcn) { pFuupupup_t fn = (pFuupupup_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); } void pFfiiiiid(x64emu_t *emu, uintptr_t fcn) { pFfiiiiid_t fn = (pFfiiiiid_t)fcn; R_RAX=(uintptr_t)fn(emu->xmm[0].f[0], (int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, emu->xmm[1].d[0]); } @@ -5262,6 +5317,7 @@ void pFpCpWWup(x64emu_t *emu, uintptr_t fcn) { pFpCpWWup_t fn = (pFpCpWWup_t)fcn void pFpWppWpp(x64emu_t *emu, uintptr_t fcn) { pFpWppWpp_t fn = (pFpWppWpp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint16_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (uint16_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpuuuwwu(x64emu_t *emu, uintptr_t fcn) { pFpuuuwwu_t fn = (pFpuuuwwu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(uint32_t*)(R_RSP + 8)); } void pFpuupwwC(x64emu_t *emu, uintptr_t fcn) { pFpuupwwC_t fn = (pFpuupwwC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int16_t)R_R8, (int16_t)R_R9, *(uint8_t*)(R_RSP + 8)); } +void pFpuLpipp(x64emu_t *emu, uintptr_t fcn) { pFpuLpipp_t fn = (pFpuLpipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpupiipp(x64emu_t *emu, uintptr_t fcn) { pFpupiipp_t fn = (pFpupiipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpuppipp(x64emu_t *emu, uintptr_t fcn) { pFpuppipp_t fn = (pFpuppipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFplppppp(x64emu_t *emu, uintptr_t fcn) { pFplppppp_t fn = (pFplppppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (intptr_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } @@ -5289,6 +5345,7 @@ void pFpppCCCi(x64emu_t *emu, uintptr_t fcn) { pFpppCCCi_t fn = (pFpppCCCi_t)fcn void pFpppuipp(x64emu_t *emu, uintptr_t fcn) { pFpppuipp_t fn = (pFpppuipp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpppuuui(x64emu_t *emu, uintptr_t fcn) { pFpppuuui_t fn = (pFpppuuui_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(int32_t*)(R_RSP + 8)); } void pFpppuupp(x64emu_t *emu, uintptr_t fcn) { pFpppuupp_t fn = (pFpppuupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } +void pFpppupii(x64emu_t *emu, uintptr_t fcn) { pFpppupii_t fn = (pFpppupii_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8)); } void pFpppupup(x64emu_t *emu, uintptr_t fcn) { pFpppupup_t fn = (pFpppupup_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8)); } void pFpppuppp(x64emu_t *emu, uintptr_t fcn) { pFpppuppp_t fn = (pFpppuppp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFpppfffi(x64emu_t *emu, uintptr_t fcn) { pFpppfffi_t fn = (pFpppfffi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, emu->xmm[0].f[0], emu->xmm[1].f[0], emu->xmm[2].f[0], (int32_t)R_RCX); } @@ -5311,6 +5368,7 @@ void vFEiippppV(x64emu_t *emu, uintptr_t fcn) { vFEiippppV_t fn = (vFEiippppV_t) void vFEiupippp(x64emu_t *emu, uintptr_t fcn) { vFEiupippp_t fn = (vFEiupippp_t)fcn; fn(emu, (int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void vFEipAippp(x64emu_t *emu, uintptr_t fcn) { vFEipAippp_t fn = (vFEipAippp_t)fcn; fn(emu, (int32_t)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void vFEppipppp(x64emu_t *emu, uintptr_t fcn) { vFEppipppp_t fn = (vFEppipppp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } +void vFEppLippp(x64emu_t *emu, uintptr_t fcn) { vFEppLippp_t fn = (vFEppLippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void vFEpppippp(x64emu_t *emu, uintptr_t fcn) { vFEpppippp_t fn = (vFEpppippp_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void vFEpppuipV(x64emu_t *emu, uintptr_t fcn) { vFEpppuipV_t fn = (vFEpppuipV_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, (void*)(R_RSP + 8)); } void vFEpppppuu(x64emu_t *emu, uintptr_t fcn) { vFEpppppuu_t fn = (vFEpppppuu_t)fcn; fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8)); } @@ -5441,6 +5499,7 @@ void LFELpupupu(x64emu_t *emu, uintptr_t fcn) { LFELpupupu_t fn = (LFELpupupu_t) void LFEpiupppp(x64emu_t *emu, uintptr_t fcn) { LFEpiupppp_t fn = (LFEpiupppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void LFpLpuuLLu(x64emu_t *emu, uintptr_t fcn) { LFpLpuuLLu_t fn = (LFpLpuuLLu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uintptr_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uintptr_t)R_R9, *(uintptr_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); } void pFEiplllpp(x64emu_t *emu, uintptr_t fcn) { pFEiplllpp_t fn = (pFEiplllpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (intptr_t)R_RDX, (intptr_t)R_RCX, (intptr_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } +void pFEipLLLpp(x64emu_t *emu, uintptr_t fcn) { pFEipLLLpp_t fn = (pFEipLLLpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (int32_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (uintptr_t)R_RCX, (uintptr_t)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFEpiuCppp(x64emu_t *emu, uintptr_t fcn) { pFEpiuCppp_t fn = (pFEpiuCppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (uint32_t)R_RDX, (uint8_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8)); } void pFEppLiiip(x64emu_t *emu, uintptr_t fcn) { pFEppLiiip_t fn = (pFEppLiiip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8)); } void pFEpppuipV(x64emu_t *emu, uintptr_t fcn) { pFEpppuipV_t fn = (pFEpppuipV_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (int32_t)R_R8, (void*)R_R9, (void*)(R_RSP + 8)); } @@ -5450,8 +5509,10 @@ void pFEppppppp(x64emu_t *emu, uintptr_t fcn) { pFEppppppp_t fn = (pFEppppppp_t) void pFiippipip(x64emu_t *emu, uintptr_t fcn) { pFiippipip_t fn = (pFiippipip_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } void pFiupppppp(x64emu_t *emu, uintptr_t fcn) { pFiupppppp_t fn = (pFiupppppp_t)fcn; R_RAX=(uintptr_t)fn((int32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void pFuiiiuuuu(x64emu_t *emu, uintptr_t fcn) { pFuiiiuuuu_t fn = (pFuiiiuuuu_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); } +void pFuCCCCpWw(x64emu_t *emu, uintptr_t fcn) { pFuCCCCpWw_t fn = (pFuCCCCpWw_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint8_t)R_RCX, (uint8_t)R_R8, (void*)R_R9, *(uint16_t*)(R_RSP + 8), *(int16_t*)(R_RSP + 16)); } void pFuupupipp(x64emu_t *emu, uintptr_t fcn) { pFuupupipp_t fn = (pFuupupipp_t)fcn; R_RAX=(uintptr_t)fn((uint32_t)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (uint32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void pFpiiiiiuu(x64emu_t *emu, uintptr_t fcn) { pFpiiiiiuu_t fn = (pFpiiiiiuu_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16)); } +void pFpiiuuupp(x64emu_t *emu, uintptr_t fcn) { pFpiiuuupp_t fn = (pFpiiuuupp_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void pFpiUdiiUi(x64emu_t *emu, uintptr_t fcn) { pFpiUdiiUi_t fn = (pFpiUdiiUi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (uint64_t)R_RDX, emu->xmm[0].d[0], (int32_t)R_RCX, (int32_t)R_R8, (uint64_t)R_R9, *(int32_t*)(R_RSP + 8)); } void pFpipiiiip(x64emu_t *emu, uintptr_t fcn) { pFpipiiiip_t fn = (pFpipiiiip_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } void pFpCCuuwwC(x64emu_t *emu, uintptr_t fcn) { pFpCCuuwwC_t fn = (pFpCCuuwwC_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (uint8_t)R_RSI, (uint8_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (int16_t)R_R9, *(int16_t*)(R_RSP + 8), *(uint8_t*)(R_RSP + 16)); } @@ -5537,6 +5598,7 @@ void vFpppffffff(x64emu_t *emu, uintptr_t fcn) { vFpppffffff_t fn = (vFpppffffff void vFppppipiip(x64emu_t *emu, uintptr_t fcn) { vFppppipiip_t fn = (vFppppipiip_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); } void vFpppppippp(x64emu_t *emu, uintptr_t fcn) { vFpppppippp_t fn = (vFpppppippp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24)); } void iFEpiiiiipi(x64emu_t *emu, uintptr_t fcn) { iFEpiiiiipi_t fn = (iFEpiiiiipi_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(int32_t*)(R_RSP + 16)); } +void iFEppuppppp(x64emu_t *emu, uintptr_t fcn) { iFEppuppppp_t fn = (iFEppuppppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void iFEpppipppp(x64emu_t *emu, uintptr_t fcn) { iFEpppipppp_t fn = (iFEpppipppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } void iFEppplPPPP(x64emu_t *emu, uintptr_t fcn) { iFEppplPPPP_t fn = (iFEppplPPPP_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (intptr_t)R_RCX, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFEpppppupp(x64emu_t *emu, uintptr_t fcn) { iFEpppppupp_t fn = (iFEpppppupp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (uint32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); } @@ -5545,6 +5607,7 @@ void iFiiiiiiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiiiiiip_t fn = (iFiiiiiiiip void iFiiiipiiip(x64emu_t *emu, uintptr_t fcn) { iFiiiipiiip_t fn = (iFiiiipiiip_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (int32_t)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); } void iFipiipippi(x64emu_t *emu, uintptr_t fcn) { iFipiipippi_t fn = (iFipiipippi_t)fcn; R_RAX=(int32_t)fn((int32_t)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); } void iFdddpppppp(x64emu_t *emu, uintptr_t fcn) { iFdddpppppp_t fn = (iFdddpppppp_t)fcn; R_RAX=(int32_t)fn(emu->xmm[0].d[0], emu->xmm[1].d[0], emu->xmm[2].d[0], (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); } +void iFpipippppi(x64emu_t *emu, uintptr_t fcn) { iFpipippppi_t fn = (iFpipippppi_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(int32_t*)(R_RSP + 24)); } void iFpipLpiiip(x64emu_t *emu, uintptr_t fcn) { iFpipLpiiip_t fn = (iFpipLpiiip_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (uintptr_t)R_RCX, (void*)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(void**)(R_RSP + 24)); } void iFpuuuuuuuu(x64emu_t *emu, uintptr_t fcn) { iFpuuuuuuuu_t fn = (iFpuuuuuuuu_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24)); } void iFpuuuuduup(x64emu_t *emu, uintptr_t fcn) { iFpuuuuduup_t fn = (iFpuuuuduup_t)fcn; R_RAX=(int32_t)fn((void*)R_RDI, (uint32_t)R_RSI, (uint32_t)R_RDX, (uint32_t)R_RCX, (uint32_t)R_R8, emu->xmm[0].d[0], (uint32_t)R_R9, *(uint32_t*)(R_RSP + 8), *(void**)(R_RSP + 16)); } @@ -5702,6 +5765,7 @@ void vFppuupppiiii(x64emu_t *emu, uintptr_t fcn) { vFppuupppiiii_t fn = (vFppuup void vFppupipiuuuu(x64emu_t *emu, uintptr_t fcn) { vFppupipiuuuu_t fn = (vFppupipiuuuu_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (int32_t)R_R8, (void*)R_R9, *(int32_t*)(R_RSP + 8), *(uint32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32), *(uint32_t*)(R_RSP + 40)); } void vFppupppuiiii(x64emu_t *emu, uintptr_t fcn) { vFppupppuiiii_t fn = (vFppupppuiiii_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (uint32_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(uint32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(int32_t*)(R_RSP + 24), *(int32_t*)(R_RSP + 32), *(int32_t*)(R_RSP + 40)); } void vFppppppppppp(x64emu_t *emu, uintptr_t fcn) { vFppppppppppp_t fn = (vFppppppppppp_t)fcn; fn((void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32), *(void**)(R_RSP + 40)); } +void iFEiipppppppp(x64emu_t *emu, uintptr_t fcn) { iFEiipppppppp_t fn = (iFEiipppppppp_t)fcn; R_RAX=(int32_t)fn(emu, (int32_t)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFEpppipppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppipppppp_t fn = (iFEpppipppppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (int32_t)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fcn) { iFEppppiiiiuu_t fn = (iFEppppiiiiuu_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (int32_t)R_R8, (int32_t)R_R9, *(int32_t*)(R_RSP + 8), *(int32_t*)(R_RSP + 16), *(uint32_t*)(R_RSP + 24), *(uint32_t*)(R_RSP + 32)); } void iFEpppppppppp(x64emu_t *emu, uintptr_t fcn) { iFEpppppppppp_t fn = (iFEpppppppppp_t)fcn; R_RAX=(int32_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16), *(void**)(R_RSP + 24), *(void**)(R_RSP + 32)); } @@ -6037,6 +6101,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &IFpi) return 1; if (fun == &IFpu) return 1; if (fun == &IFpd) return 2; + if (fun == &IFpp) return 1; if (fun == &CFip) return 1; if (fun == &CFCi) return 1; if (fun == &CFui) return 1; @@ -6343,6 +6408,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &uFppi) return 1; if (fun == &uFppu) return 1; if (fun == &uFppp) return 1; + if (fun == &UFUii) return 1; if (fun == &UFUUU) return 1; if (fun == &UFpiU) return 1; if (fun == &UFppi) return 1; @@ -6404,7 +6470,6 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFuip) return 1; if (fun == &pFuui) return 1; if (fun == &pFuuu) return 1; - if (fun == &pFuup) return 1; if (fun == &pFulu) return 1; if (fun == &pFulp) return 1; if (fun == &pFupi) return 1; @@ -6414,6 +6479,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFupp) return 1; if (fun == &pFdip) return 2; if (fun == &pFdUU) return 2; + if (fun == &pFddi) return 3; if (fun == &pFddd) return 4; if (fun == &pFlpi) return 1; if (fun == &pFLup) return 1; @@ -6437,6 +6503,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFpuL) return 1; if (fun == &pFpup) return 1; if (fun == &pFpUi) return 1; + if (fun == &pFpUu) return 1; if (fun == &pFpUp) return 1; if (fun == &pFpdu) return 2; if (fun == &pFpdd) return 3; @@ -6840,6 +6907,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFpiLL) return 1; if (fun == &pFpipi) return 1; if (fun == &pFpipd) return 2; + if (fun == &pFpipL) return 1; if (fun == &pFpipp) return 1; if (fun == &pFpCip) return 1; if (fun == &pFpCWp) return 1; @@ -6858,6 +6926,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFpupu) return 1; if (fun == &pFpupp) return 1; if (fun == &pFpdIU) return 2; + if (fun == &pFpddi) return 3; if (fun == &pFplil) return 1; if (fun == &pFplip) return 1; if (fun == &pFplpl) return 1; @@ -7233,15 +7302,18 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFudddp) return 4; if (fun == &pFupLpl) return 1; if (fun == &pFupLpL) return 1; + if (fun == &pFddddi) return 5; if (fun == &pFLuppp) return 1; if (fun == &pFLpppi) return 1; if (fun == &pFpiiii) return 1; if (fun == &pFpiiip) return 1; if (fun == &pFpiiuu) return 1; if (fun == &pFpiipi) return 1; + if (fun == &pFpiipL) return 1; if (fun == &pFpiipp) return 1; if (fun == &pFpiCCC) return 1; if (fun == &pFpiuuu) return 1; + if (fun == &pFpiuup) return 1; if (fun == &pFpiupp) return 1; if (fun == &pFpiLip) return 1; if (fun == &pFpipip) return 1; @@ -7269,6 +7341,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFpLLLp) return 1; if (fun == &pFpLpii) return 1; if (fun == &pFpLpip) return 1; + if (fun == &pFpLpup) return 1; if (fun == &pFppiii) return 1; if (fun == &pFppiiu) return 1; if (fun == &pFppiip) return 1; @@ -7459,6 +7532,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &iFpipipi) return 1; if (fun == &iFpipipp) return 1; if (fun == &iFpipupp) return 1; + if (fun == &iFpipLpp) return 1; if (fun == &iFpippip) return 1; if (fun == &iFpippup) return 1; if (fun == &iFpipppL) return 1; @@ -7572,16 +7646,19 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFiiiiid) return 2; if (fun == &pFipippp) return 1; if (fun == &pFWCiWCi) return 1; + if (fun == &pFuCCCCp) return 1; if (fun == &pFuuipip) return 1; if (fun == &pFuuuiip) return 1; if (fun == &pFuuuuii) return 1; if (fun == &pFuuuuuu) return 1; if (fun == &pFuuuuup) return 1; if (fun == &pFuuppuu) return 1; + if (fun == &pFuppppp) return 1; if (fun == &pFdddddd) return 7; if (fun == &pFpiiiiu) return 1; if (fun == &pFpiiipp) return 1; if (fun == &pFpiiCCC) return 1; + if (fun == &pFpiiuup) return 1; if (fun == &pFpiUUUU) return 1; if (fun == &pFpipipp) return 1; if (fun == &pFpippip) return 1; @@ -7589,6 +7666,7 @@ int isSimpleWrapper(wrapper_t fun) { if (fun == &pFpCuuCC) return 1; if (fun == &pFpCuuWW) return 1; if (fun == &pFpCuuup) return 1; + if (fun == &pFpuiiip) return 1; if (fun == &pFpuuwwu) return 1; if (fun == &pFpuuuuu) return 1; if (fun == &pFpuuupu) return 1; diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 8a77380b..3565fe69 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -136,6 +136,7 @@ void pFl(x64emu_t *emu, uintptr_t fnc); void pFL(x64emu_t *emu, uintptr_t fnc); void pFp(x64emu_t *emu, uintptr_t fnc); void pFV(x64emu_t *emu, uintptr_t fnc); +void pFA(x64emu_t *emu, uintptr_t fnc); void HFi(x64emu_t *emu, uintptr_t fnc); void HFp(x64emu_t *emu, uintptr_t fnc); void xFx(x64emu_t *emu, uintptr_t fnc); @@ -241,6 +242,7 @@ void IFII(x64emu_t *emu, uintptr_t fnc); void IFpi(x64emu_t *emu, uintptr_t fnc); void IFpu(x64emu_t *emu, uintptr_t fnc); void IFpd(x64emu_t *emu, uintptr_t fnc); +void IFpp(x64emu_t *emu, uintptr_t fnc); void CFip(x64emu_t *emu, uintptr_t fnc); void CFCi(x64emu_t *emu, uintptr_t fnc); void CFui(x64emu_t *emu, uintptr_t fnc); @@ -460,6 +462,7 @@ void vFppd(x64emu_t *emu, uintptr_t fnc); void vFppl(x64emu_t *emu, uintptr_t fnc); void vFppL(x64emu_t *emu, uintptr_t fnc); void vFppp(x64emu_t *emu, uintptr_t fnc); +void vFppV(x64emu_t *emu, uintptr_t fnc); void cFpdp(x64emu_t *emu, uintptr_t fnc); void wFppp(x64emu_t *emu, uintptr_t fnc); void iFEiw(x64emu_t *emu, uintptr_t fnc); @@ -603,6 +606,7 @@ void uFpLp(x64emu_t *emu, uintptr_t fnc); void uFppi(x64emu_t *emu, uintptr_t fnc); void uFppu(x64emu_t *emu, uintptr_t fnc); void uFppp(x64emu_t *emu, uintptr_t fnc); +void UFUii(x64emu_t *emu, uintptr_t fnc); void UFUUU(x64emu_t *emu, uintptr_t fnc); void UFpiU(x64emu_t *emu, uintptr_t fnc); void UFppi(x64emu_t *emu, uintptr_t fnc); @@ -678,7 +682,6 @@ void pFWWW(x64emu_t *emu, uintptr_t fnc); void pFuip(x64emu_t *emu, uintptr_t fnc); void pFuui(x64emu_t *emu, uintptr_t fnc); void pFuuu(x64emu_t *emu, uintptr_t fnc); -void pFuup(x64emu_t *emu, uintptr_t fnc); void pFulu(x64emu_t *emu, uintptr_t fnc); void pFulp(x64emu_t *emu, uintptr_t fnc); void pFupi(x64emu_t *emu, uintptr_t fnc); @@ -688,6 +691,7 @@ void pFupL(x64emu_t *emu, uintptr_t fnc); void pFupp(x64emu_t *emu, uintptr_t fnc); void pFdip(x64emu_t *emu, uintptr_t fnc); void pFdUU(x64emu_t *emu, uintptr_t fnc); +void pFddi(x64emu_t *emu, uintptr_t fnc); void pFddd(x64emu_t *emu, uintptr_t fnc); void pFDip(x64emu_t *emu, uintptr_t fnc); void pFlpi(x64emu_t *emu, uintptr_t fnc); @@ -712,6 +716,7 @@ void pFpuu(x64emu_t *emu, uintptr_t fnc); void pFpuL(x64emu_t *emu, uintptr_t fnc); void pFpup(x64emu_t *emu, uintptr_t fnc); void pFpUi(x64emu_t *emu, uintptr_t fnc); +void pFpUu(x64emu_t *emu, uintptr_t fnc); void pFpUp(x64emu_t *emu, uintptr_t fnc); void pFpdu(x64emu_t *emu, uintptr_t fnc); void pFpdd(x64emu_t *emu, uintptr_t fnc); @@ -731,6 +736,7 @@ void pFppf(x64emu_t *emu, uintptr_t fnc); void pFppl(x64emu_t *emu, uintptr_t fnc); void pFppL(x64emu_t *emu, uintptr_t fnc); void pFppp(x64emu_t *emu, uintptr_t fnc); +void pFppA(x64emu_t *emu, uintptr_t fnc); void pFpOM(x64emu_t *emu, uintptr_t fnc); void pFSpl(x64emu_t *emu, uintptr_t fnc); void vWpup(x64emu_t *emu, uintptr_t fnc); @@ -1150,6 +1156,7 @@ void LFpppi(x64emu_t *emu, uintptr_t fnc); void LFpppL(x64emu_t *emu, uintptr_t fnc); void LFpppp(x64emu_t *emu, uintptr_t fnc); void pFEipp(x64emu_t *emu, uintptr_t fnc); +void pFEuup(x64emu_t *emu, uintptr_t fnc); void pFEupp(x64emu_t *emu, uintptr_t fnc); void pFELpV(x64emu_t *emu, uintptr_t fnc); void pFELpA(x64emu_t *emu, uintptr_t fnc); @@ -1194,6 +1201,7 @@ void pFpiLi(x64emu_t *emu, uintptr_t fnc); void pFpiLL(x64emu_t *emu, uintptr_t fnc); void pFpipi(x64emu_t *emu, uintptr_t fnc); void pFpipd(x64emu_t *emu, uintptr_t fnc); +void pFpipL(x64emu_t *emu, uintptr_t fnc); void pFpipp(x64emu_t *emu, uintptr_t fnc); void pFpCip(x64emu_t *emu, uintptr_t fnc); void pFpCWp(x64emu_t *emu, uintptr_t fnc); @@ -1212,6 +1220,7 @@ void pFpupi(x64emu_t *emu, uintptr_t fnc); void pFpupu(x64emu_t *emu, uintptr_t fnc); void pFpupp(x64emu_t *emu, uintptr_t fnc); void pFpdIU(x64emu_t *emu, uintptr_t fnc); +void pFpddi(x64emu_t *emu, uintptr_t fnc); void pFplil(x64emu_t *emu, uintptr_t fnc); void pFplip(x64emu_t *emu, uintptr_t fnc); void pFplpl(x64emu_t *emu, uintptr_t fnc); @@ -1652,6 +1661,8 @@ void pFEppLp(x64emu_t *emu, uintptr_t fnc); void pFEpppi(x64emu_t *emu, uintptr_t fnc); void pFEpppu(x64emu_t *emu, uintptr_t fnc); void pFEpppp(x64emu_t *emu, uintptr_t fnc); +void pFEpppV(x64emu_t *emu, uintptr_t fnc); +void pFEpppA(x64emu_t *emu, uintptr_t fnc); void pFiiiii(x64emu_t *emu, uintptr_t fnc); void pFiiipL(x64emu_t *emu, uintptr_t fnc); void pFipipL(x64emu_t *emu, uintptr_t fnc); @@ -1664,15 +1675,18 @@ void pFuupuu(x64emu_t *emu, uintptr_t fnc); void pFudddp(x64emu_t *emu, uintptr_t fnc); void pFupLpl(x64emu_t *emu, uintptr_t fnc); void pFupLpL(x64emu_t *emu, uintptr_t fnc); +void pFddddi(x64emu_t *emu, uintptr_t fnc); void pFLuppp(x64emu_t *emu, uintptr_t fnc); void pFLpppi(x64emu_t *emu, uintptr_t fnc); void pFpiiii(x64emu_t *emu, uintptr_t fnc); void pFpiiip(x64emu_t *emu, uintptr_t fnc); void pFpiiuu(x64emu_t *emu, uintptr_t fnc); void pFpiipi(x64emu_t *emu, uintptr_t fnc); +void pFpiipL(x64emu_t *emu, uintptr_t fnc); void pFpiipp(x64emu_t *emu, uintptr_t fnc); void pFpiCCC(x64emu_t *emu, uintptr_t fnc); void pFpiuuu(x64emu_t *emu, uintptr_t fnc); +void pFpiuup(x64emu_t *emu, uintptr_t fnc); void pFpiupp(x64emu_t *emu, uintptr_t fnc); void pFpiLip(x64emu_t *emu, uintptr_t fnc); void pFpipip(x64emu_t *emu, uintptr_t fnc); @@ -1700,6 +1714,7 @@ void pFpLLip(x64emu_t *emu, uintptr_t fnc); void pFpLLLp(x64emu_t *emu, uintptr_t fnc); void pFpLpii(x64emu_t *emu, uintptr_t fnc); void pFpLpip(x64emu_t *emu, uintptr_t fnc); +void pFpLpup(x64emu_t *emu, uintptr_t fnc); void pFppiii(x64emu_t *emu, uintptr_t fnc); void pFppiiu(x64emu_t *emu, uintptr_t fnc); void pFppiip(x64emu_t *emu, uintptr_t fnc); @@ -1933,6 +1948,7 @@ void iFpiuupp(x64emu_t *emu, uintptr_t fnc); void iFpipipi(x64emu_t *emu, uintptr_t fnc); void iFpipipp(x64emu_t *emu, uintptr_t fnc); void iFpipupp(x64emu_t *emu, uintptr_t fnc); +void iFpipLpp(x64emu_t *emu, uintptr_t fnc); void iFpippip(x64emu_t *emu, uintptr_t fnc); void iFpippup(x64emu_t *emu, uintptr_t fnc); void iFpipppL(x64emu_t *emu, uintptr_t fnc); @@ -2046,6 +2062,7 @@ void lFppLipp(x64emu_t *emu, uintptr_t fnc); void lFpppLpp(x64emu_t *emu, uintptr_t fnc); void LFEupppp(x64emu_t *emu, uintptr_t fnc); void LFELpppi(x64emu_t *emu, uintptr_t fnc); +void LFEpippp(x64emu_t *emu, uintptr_t fnc); void LFEppppi(x64emu_t *emu, uintptr_t fnc); void LFpipipi(x64emu_t *emu, uintptr_t fnc); void LFpLippp(x64emu_t *emu, uintptr_t fnc); @@ -2058,6 +2075,7 @@ void pFEpuipp(x64emu_t *emu, uintptr_t fnc); void pFEpuupp(x64emu_t *emu, uintptr_t fnc); void pFEpuppp(x64emu_t *emu, uintptr_t fnc); void pFEpLLiN(x64emu_t *emu, uintptr_t fnc); +void pFEppupi(x64emu_t *emu, uintptr_t fnc); void pFEppLLp(x64emu_t *emu, uintptr_t fnc); void pFEpppLp(x64emu_t *emu, uintptr_t fnc); void pFEppppi(x64emu_t *emu, uintptr_t fnc); @@ -2068,16 +2086,19 @@ void pFiiiiii(x64emu_t *emu, uintptr_t fnc); void pFiiiiid(x64emu_t *emu, uintptr_t fnc); void pFipippp(x64emu_t *emu, uintptr_t fnc); void pFWCiWCi(x64emu_t *emu, uintptr_t fnc); +void pFuCCCCp(x64emu_t *emu, uintptr_t fnc); void pFuuipip(x64emu_t *emu, uintptr_t fnc); void pFuuuiip(x64emu_t *emu, uintptr_t fnc); void pFuuuuii(x64emu_t *emu, uintptr_t fnc); void pFuuuuuu(x64emu_t *emu, uintptr_t fnc); void pFuuuuup(x64emu_t *emu, uintptr_t fnc); void pFuuppuu(x64emu_t *emu, uintptr_t fnc); +void pFuppppp(x64emu_t *emu, uintptr_t fnc); void pFdddddd(x64emu_t *emu, uintptr_t fnc); void pFpiiiiu(x64emu_t *emu, uintptr_t fnc); void pFpiiipp(x64emu_t *emu, uintptr_t fnc); void pFpiiCCC(x64emu_t *emu, uintptr_t fnc); +void pFpiiuup(x64emu_t *emu, uintptr_t fnc); void pFpiUUUU(x64emu_t *emu, uintptr_t fnc); void pFpipipp(x64emu_t *emu, uintptr_t fnc); void pFpippip(x64emu_t *emu, uintptr_t fnc); @@ -2085,6 +2106,7 @@ void pFpipppp(x64emu_t *emu, uintptr_t fnc); void pFpCuuCC(x64emu_t *emu, uintptr_t fnc); void pFpCuuWW(x64emu_t *emu, uintptr_t fnc); void pFpCuuup(x64emu_t *emu, uintptr_t fnc); +void pFpuiiip(x64emu_t *emu, uintptr_t fnc); void pFpuuwwu(x64emu_t *emu, uintptr_t fnc); void pFpuuuuu(x64emu_t *emu, uintptr_t fnc); void pFpuuupu(x64emu_t *emu, uintptr_t fnc); @@ -2341,6 +2363,7 @@ void pFEppuipp(x64emu_t *emu, uintptr_t fnc); void pFEppppip(x64emu_t *emu, uintptr_t fnc); void pFEpppppi(x64emu_t *emu, uintptr_t fnc); void pFifffppp(x64emu_t *emu, uintptr_t fnc); +void pFWpppppp(x64emu_t *emu, uintptr_t fnc); void pFuuuiiip(x64emu_t *emu, uintptr_t fnc); void pFuupupup(x64emu_t *emu, uintptr_t fnc); void pFfiiiiid(x64emu_t *emu, uintptr_t fnc); @@ -2356,6 +2379,7 @@ void pFpCpWWup(x64emu_t *emu, uintptr_t fnc); void pFpWppWpp(x64emu_t *emu, uintptr_t fnc); void pFpuuuwwu(x64emu_t *emu, uintptr_t fnc); void pFpuupwwC(x64emu_t *emu, uintptr_t fnc); +void pFpuLpipp(x64emu_t *emu, uintptr_t fnc); void pFpupiipp(x64emu_t *emu, uintptr_t fnc); void pFpuppipp(x64emu_t *emu, uintptr_t fnc); void pFplppppp(x64emu_t *emu, uintptr_t fnc); @@ -2383,6 +2407,7 @@ void pFpppCCCi(x64emu_t *emu, uintptr_t fnc); void pFpppuipp(x64emu_t *emu, uintptr_t fnc); void pFpppuuui(x64emu_t *emu, uintptr_t fnc); void pFpppuupp(x64emu_t *emu, uintptr_t fnc); +void pFpppupii(x64emu_t *emu, uintptr_t fnc); void pFpppupup(x64emu_t *emu, uintptr_t fnc); void pFpppuppp(x64emu_t *emu, uintptr_t fnc); void pFpppfffi(x64emu_t *emu, uintptr_t fnc); @@ -2405,6 +2430,7 @@ void vFEiippppV(x64emu_t *emu, uintptr_t fnc); void vFEiupippp(x64emu_t *emu, uintptr_t fnc); void vFEipAippp(x64emu_t *emu, uintptr_t fnc); void vFEppipppp(x64emu_t *emu, uintptr_t fnc); +void vFEppLippp(x64emu_t *emu, uintptr_t fnc); void vFEpppippp(x64emu_t *emu, uintptr_t fnc); void vFEpppuipV(x64emu_t *emu, uintptr_t fnc); void vFEpppppuu(x64emu_t *emu, uintptr_t fnc); @@ -2535,6 +2561,7 @@ void LFELpupupu(x64emu_t *emu, uintptr_t fnc); void LFEpiupppp(x64emu_t *emu, uintptr_t fnc); void LFpLpuuLLu(x64emu_t *emu, uintptr_t fnc); void pFEiplllpp(x64emu_t *emu, uintptr_t fnc); +void pFEipLLLpp(x64emu_t *emu, uintptr_t fnc); void pFEpiuCppp(x64emu_t *emu, uintptr_t fnc); void pFEppLiiip(x64emu_t *emu, uintptr_t fnc); void pFEpppuipV(x64emu_t *emu, uintptr_t fnc); @@ -2544,8 +2571,10 @@ void pFEppppppp(x64emu_t *emu, uintptr_t fnc); void pFiippipip(x64emu_t *emu, uintptr_t fnc); void pFiupppppp(x64emu_t *emu, uintptr_t fnc); void pFuiiiuuuu(x64emu_t *emu, uintptr_t fnc); +void pFuCCCCpWw(x64emu_t *emu, uintptr_t fnc); void pFuupupipp(x64emu_t *emu, uintptr_t fnc); void pFpiiiiiuu(x64emu_t *emu, uintptr_t fnc); +void pFpiiuuupp(x64emu_t *emu, uintptr_t fnc); void pFpiUdiiUi(x64emu_t *emu, uintptr_t fnc); void pFpipiiiip(x64emu_t *emu, uintptr_t fnc); void pFpCCuuwwC(x64emu_t *emu, uintptr_t fnc); @@ -2631,6 +2660,7 @@ void vFpppffffff(x64emu_t *emu, uintptr_t fnc); void vFppppipiip(x64emu_t *emu, uintptr_t fnc); void vFpppppippp(x64emu_t *emu, uintptr_t fnc); void iFEpiiiiipi(x64emu_t *emu, uintptr_t fnc); +void iFEppuppppp(x64emu_t *emu, uintptr_t fnc); void iFEpppipppp(x64emu_t *emu, uintptr_t fnc); void iFEppplPPPP(x64emu_t *emu, uintptr_t fnc); void iFEpppppupp(x64emu_t *emu, uintptr_t fnc); @@ -2639,6 +2669,7 @@ void iFiiiiiiiip(x64emu_t *emu, uintptr_t fnc); void iFiiiipiiip(x64emu_t *emu, uintptr_t fnc); void iFipiipippi(x64emu_t *emu, uintptr_t fnc); void iFdddpppppp(x64emu_t *emu, uintptr_t fnc); +void iFpipippppi(x64emu_t *emu, uintptr_t fnc); void iFpipLpiiip(x64emu_t *emu, uintptr_t fnc); void iFpuuuuuuuu(x64emu_t *emu, uintptr_t fnc); void iFpuuuuduup(x64emu_t *emu, uintptr_t fnc); @@ -2796,6 +2827,7 @@ void vFppuupppiiii(x64emu_t *emu, uintptr_t fnc); void vFppupipiuuuu(x64emu_t *emu, uintptr_t fnc); void vFppupppuiiii(x64emu_t *emu, uintptr_t fnc); void vFppppppppppp(x64emu_t *emu, uintptr_t fnc); +void iFEiipppppppp(x64emu_t *emu, uintptr_t fnc); void iFEpppipppppp(x64emu_t *emu, uintptr_t fnc); void iFEppppiiiiuu(x64emu_t *emu, uintptr_t fnc); void iFEpppppppppp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedgio2.c b/src/wrapped/wrappedgio2.c index e4837e7e..2556c7b3 100644 --- a/src/wrapped/wrappedgio2.c +++ b/src/wrapped/wrappedgio2.c @@ -616,6 +616,11 @@ EXPORT void my_g_task_return_new_error(x64emu_t* emu, void* task, uint32_t domai free(tmp); } +EXPORT void my_g_input_stream_read_async(x64emu_t* emu, void* stream, void* buffer, size_t count, int io_prio, void* cancel, void* f, void* data) +{ + my->g_input_stream_read_async(stream, buffer, count, io_prio, cancel, findGAsyncReadyCallbackFct(f), data); +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; diff --git a/src/wrapped/wrappedgio2_private.h b/src/wrapped/wrappedgio2_private.h index 560b2518..c97a314d 100644 --- a/src/wrapped/wrappedgio2_private.h +++ b/src/wrapped/wrappedgio2_private.h @@ -952,11 +952,11 @@ GO(g_input_stream_has_pending, iFp) //GO(g_input_stream_is_closed, GO(g_input_stream_read, lFppLpp) GO(g_input_stream_read_all, iFppLppp) -//GO(g_input_stream_read_async, +GOM(g_input_stream_read_async, vFEppLippp) GO(g_input_stream_read_bytes, pFpLpp) //GO(g_input_stream_read_bytes_async, GO(g_input_stream_read_bytes_finish, pFppp) -//GO(g_input_stream_read_finish, +GO(g_input_stream_read_finish, lFppp) GO(g_input_stream_set_pending, iFpp) GO(g_input_stream_skip, lFpLpp) //GO(g_input_stream_skip_async, @@ -1228,7 +1228,7 @@ GO(g_proxy_address_get_destination_port, WFp) //GO(g_proxy_address_get_destination_protocol, //GO(g_proxy_address_get_password, //GO(g_proxy_address_get_protocol, -//GO(g_proxy_address_get_type, +GO(g_proxy_address_get_type, LFv) GO(g_proxy_address_get_uri, pFp) //GO(g_proxy_address_get_username, GO(g_proxy_address_new, pFpWppWpp) @@ -1238,7 +1238,7 @@ GO(g_proxy_connect_finish, pFppp) GO(g_proxy_get_default_for_protocol, pFp) //GO(g_proxy_get_type, GO(g_proxy_resolver_get_default, pFv) -//GO(g_proxy_resolver_get_type, +GO(g_proxy_resolver_get_type, LFv) GO(g_proxy_resolver_is_supported, iFp) GO(g_proxy_resolver_lookup, pFpppp) //GO(g_proxy_resolver_lookup_async, @@ -1252,7 +1252,7 @@ GO(g_remote_action_group_change_action_state_full, vFpppp) //GO(g_resolver_free_addresses, GO(g_resolver_free_targets, vFp) GO(g_resolver_get_default, pFv) -//GO(g_resolver_get_type, +GO(g_resolver_get_type, LFv) GO(g_resolver_lookup_by_address, pFpppp) //GO(g_resolver_lookup_by_address_async, GO(g_resolver_lookup_by_address_finish, pFppp) @@ -1424,7 +1424,7 @@ GO(g_socket_address_enumerator_next, pFppp) GO(g_socket_address_enumerator_next_finish, pFppp) GO(g_socket_address_get_family, uFp) GO(g_socket_address_get_native_size, lFp) -//GO(g_socket_address_get_type, +GO(g_socket_address_get_type, LFv) //GO(g_socket_address_new_from_native, GO(g_socket_address_to_native, iFppLp) GO(g_socket_bind, iFppip) @@ -1452,7 +1452,7 @@ GO(g_socket_client_get_socket_type, uFp) GO(g_socket_client_get_timeout, uFp) GO(g_socket_client_get_tls, iFp) GO(g_socket_client_get_tls_validation_flags, uFp) -//GO(g_socket_client_get_type, +GO(g_socket_client_get_type, LFv) GO(g_socket_client_new, pFv) //GO(g_socket_client_set_enable_proxy, GO(g_socket_client_set_family, vFpu) @@ -1489,7 +1489,7 @@ GO(g_socket_control_message_get_size, LFp) //GO(g_socket_control_message_get_type, GO(g_socket_control_message_serialize, vFpp) //GO(g_socket_create_source, -//GO(g_socket_family_get_type, +GO(g_socket_family_get_type, LFv) GO(g_socket_get_available_bytes, lFp) //GO(g_socket_get_blocking, //GO(g_socket_get_broadcast, @@ -1507,7 +1507,7 @@ GO(g_socket_get_remote_address, pFpp) GO(g_socket_get_socket_type, uFp) //GO(g_socket_get_timeout, //GO(g_socket_get_ttl, -//GO(g_socket_get_type, +GO(g_socket_get_type, LFv) //GO(g_socket_is_closed, //GO(g_socket_is_connected, //GO(g_socket_join_multicast_group, @@ -1539,7 +1539,7 @@ GO(g_socket_send, lFppLpp) GO(g_socket_send_message, lFpppipiipp) GO(g_socket_send_to, lFpppLpp) GO(g_socket_send_with_blocking, lFppLipp) -//GO(g_socket_service_get_type, +GO(g_socket_service_get_type, LFv) GO(g_socket_service_is_active, iFp) GO(g_socket_service_new, pFv) //GO(g_socket_service_start, @@ -1682,7 +1682,7 @@ GO(g_tls_backend_get_default_database, pFp) //GO(g_tls_backend_supports_tls, //GO(g_tls_certificate_flags_get_type, GO(g_tls_certificate_get_issuer, pFp) -//GO(g_tls_certificate_get_type, +GO(g_tls_certificate_get_type, LFv) GO(g_tls_certificate_is_same, iFpp) GO(g_tls_certificate_list_new_from_file, pFpp) GO(g_tls_certificate_new_from_file, pFpp) @@ -1707,7 +1707,7 @@ GO(g_tls_connection_get_peer_certificate, pFp) GO(g_tls_connection_get_peer_certificate_errors, uFp) GO(g_tls_connection_get_rehandshake_mode, uFp) GO(g_tls_connection_get_require_close_notify, iFp) -//GO(g_tls_connection_get_type, +GO(g_tls_connection_get_type, LFv) //GO(g_tls_connection_get_use_system_certdb, GO(g_tls_connection_handshake, iFppp) //GO(g_tls_connection_handshake_async, @@ -1719,7 +1719,7 @@ GO(g_tls_connection_set_rehandshake_mode, vFpu) GO(g_tls_connection_set_require_close_notify, vFpi) //GO(g_tls_connection_set_use_system_certdb, GO(g_tls_database_create_certificate_handle, pFpp) -//GO(g_tls_database_get_type, +GO(g_tls_database_get_type, LFv) GO(g_tls_database_lookup_certificate_for_handle, pFpppupp) //GO(g_tls_database_lookup_certificate_for_handle_async, //GO(g_tls_database_lookup_certificate_for_handle_finish, @@ -1741,7 +1741,7 @@ GO(g_tls_file_database_new, pFpp) GO(g_tls_interaction_ask_password, uFpppp) //GO(g_tls_interaction_ask_password_async, //GO(g_tls_interaction_ask_password_finish, -//GO(g_tls_interaction_get_type, +GO(g_tls_interaction_get_type, LFv) //GO(g_tls_interaction_invoke_ask_password, //GO(g_tls_interaction_invoke_request_certificate, GO(g_tls_interaction_request_certificate, uFppupp) diff --git a/src/wrapped/wrappedglib2.c b/src/wrapped/wrappedglib2.c index 5c10638b..9dd59d76 100644 --- a/src/wrapped/wrappedglib2.c +++ b/src/wrapped/wrappedglib2.c @@ -1420,6 +1420,21 @@ EXPORT void my_g_option_group_set_parse_hooks(x64emu_t* emu, void* group, void* my->g_option_group_set_parse_hooks(group, findGOptionParseFct(preparse), findGOptionParseFct(postparse)); } +EXPORT void* my_g_thread_new(x64emu_t* emu, void* name, void* f, void* data) +{ + return my->g_thread_new(name, findGThreadFuncFct(f), data); +} + +EXPORT void my_g_queue_foreach(x64emu_t* emu, void* queue, void* f, void* data) +{ + my->g_queue_foreach(queue, findGFuncFct(f), data); +} + +EXPORT void* my_g_once_impl(x64emu_t* emu, void* once, void* f, void* arg) +{ + return my->g_once_impl(once, findGThreadFuncFct(f), arg); +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; diff --git a/src/wrapped/wrappedglib2_private.h b/src/wrapped/wrappedglib2_private.h index c5285b9d..1f64bd14 100644 --- a/src/wrapped/wrappedglib2_private.h +++ b/src/wrapped/wrappedglib2_private.h @@ -180,7 +180,7 @@ GO(g_cache_remove, vFpp) //GO(g_cache_value_foreach, GO(g_chdir, iFp) GO(g_checksum_copy, pFp) -//GO(g_checksum_free, +GO(g_checksum_free, vFp) GO(g_checksum_get_digest, vFppp) GO(g_checksum_get_string, pFp) GO(g_checksum_new, pFu) @@ -324,7 +324,7 @@ GO(g_date_time_to_timeval, iFpp) GO(g_date_time_to_timezone, pFpp) GO(g_date_time_to_unix, lFp) GO(g_date_time_to_utc, pFp) -//GO(g_date_time_unref, +GO(g_date_time_unref, vFp) GO(g_date_to_struct_tm, vFpp) GO(g_date_valid, iFp) GO(g_date_valid_day, iFC) @@ -751,10 +751,10 @@ GO(g_node_push_allocator, vFp) GOM(g_node_traverse, vFEpiiipp) //GO(g_node_unlink, GO(g_nullify_pointer, vFp) -//GO(g_once_impl, +GOM(g_once_impl, pFEppp) GO(g_once_init_enter, iFp) GO(g_once_init_enter_impl, iFp) -GO(g_once_init_leave, vFpi) +GO(g_once_init_leave, vFpL) GO(g_on_error_query, vFp) GO(g_on_error_stack_trace, vFp) GO(g_open, iFpii) @@ -845,7 +845,7 @@ GO(g_queue_copy, pFp) GO(g_queue_delete_link, vFpp) GO(g_queue_find, pFpp) GOM(g_queue_find_custom, pFEppp) -//GOM(g_queue_foreach, vFEpBp) +GOM(g_queue_foreach, vFEppp) GO(g_queue_free, vFp) //GOM(g_queue_free_full, vFEpB) GO(g_queue_get_length, uFp) @@ -1211,6 +1211,7 @@ GO(g_str_to_ascii, pFpp) GO(g_strtod, dFpp) GO(g_str_tokenize_and_fold, pFppp) GO(g_strup, pFp) +GO(g_strv_contains, iFpp) GO(g_strv_length, uFp) //GO(g_test_add_data_func, //GO(g_test_add_data_func_full, @@ -1269,7 +1270,7 @@ GOM(g_thread_foreach, vFEpp) GO(g_thread_get_initialized, iFv) //GO(g_thread_init_glib, GO(g_thread_join, pFp) -//GO(g_thread_new, +GOM(g_thread_new, pFEppp) //GO(g_thread_pool_free, GO(g_thread_pool_get_max_idle_time, uFv) //GO(g_thread_pool_get_max_threads, @@ -1396,9 +1397,12 @@ GO(g_unlink, iFp) GO(g_unsetenv, vFp) GO(g_uri_escape_string, pFppi) GO(g_uri_list_extract_uris, pFp) +GO(g_uri_parse, pFpip) GO(g_uri_parse_scheme, pFp) +GO(g_uri_to_string_partial, pFpi) GO(g_uri_unescape_segment, pFppp) GO(g_uri_unescape_string, pFpp) +GO(g_uri_unref, vFp) GO(g_usleep, vFL) GO(g_utf16_to_ucs4, pFplppp) GO(g_utf16_to_utf8, pFplppp) diff --git a/src/wrapped/wrappedgobject2.c b/src/wrapped/wrappedgobject2.c index d51a736f..6a30df4c 100644 --- a/src/wrapped/wrappedgobject2.c +++ b/src/wrapped/wrappedgobject2.c @@ -29,6 +29,7 @@ typedef void*(*pFL_t)(size_t); GO(g_object_get_type, LFv_t) \ GO(g_initially_unowned_get_type, LFv_t) \ GO(g_type_name, pFL_t) \ + GO(g_type_parent, LFv_t) \ GO(g_type_class_peek, pFL_t) \ #include "generated/wrappedgobject2types.h" @@ -541,20 +542,22 @@ static my_GParamSpecTypeInfo_t* findFreeGParamSpecTypeInfo(my_GParamSpecTypeInfo // GInterfaceInitFunc #define GO(A) \ static uintptr_t my_GInterfaceInitFunc_fct_##A = 0; \ +static size_t my_GInterfaceInitFunc_klass_##A = 0; \ static void my_GInterfaceInitFunc_##A(void* src, void* dst) \ { \ - RunFunctionFmt(my_GInterfaceInitFunc_fct_##A, "pp", src, dst); \ + RunFunctionFmt(my_GInterfaceInitFunc_fct_##A, "pp", src, dst); \ + unwrapGTKInterface(src, my_GInterfaceInitFunc_klass_##A); \ } SUPER() #undef GO -static void* findGInterfaceInitFuncFct(void* fct) +static void* findGInterfaceInitFuncFct(void* fct, size_t klass) { if(!fct) return fct; if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); - #define GO(A) if(my_GInterfaceInitFunc_fct_##A == (uintptr_t)fct) return my_GInterfaceInitFunc_##A; + #define GO(A) if(my_GInterfaceInitFunc_fct_##A == (uintptr_t)fct && my_GInterfaceInitFunc_klass_##A == klass) return my_GInterfaceInitFunc_##A; SUPER() #undef GO - #define GO(A) if(my_GInterfaceInitFunc_fct_##A == 0) {my_GInterfaceInitFunc_fct_##A = (uintptr_t)fct; return my_GInterfaceInitFunc_##A; } + #define GO(A) if(my_GInterfaceInitFunc_fct_##A == 0) {my_GInterfaceInitFunc_fct_##A = (uintptr_t)fct; my_GInterfaceInitFunc_klass_##A = klass; return my_GInterfaceInitFunc_##A; } SUPER() #undef GO printf_log(LOG_NONE, "Warning, no more slot for gobject GInterfaceInitFunc callback\n"); @@ -713,8 +716,10 @@ EXPORT void* my_g_object_new_valist(x64emu_t* emu, size_t type, void* first, x64 EXPORT size_t my_g_type_register_static(x64emu_t* emu, size_t parent, void* name, my_GTypeInfo_t* info, int flags) { - - return my->g_type_register_static(parent, name, findFreeGTypeInfo(info, parent), flags); + size_t ret = my->g_type_register_static(parent, name, findFreeGTypeInfo(info, parent), flags); + printf_log(LOG_DEBUG, "Registered %s as 0x%zx\n", name, ret); + addRegisteredClass(ret, name); + return ret; } EXPORT size_t my_g_type_register_fundamental(x64emu_t* emu, size_t parent, void* name, my_GTypeInfo_t* info, void* finfo, int flags) @@ -767,7 +772,7 @@ typedef struct my_GInterfaceInfo_s { EXPORT void my_g_type_add_interface_static(x64emu_t* emu, size_t instance_type, size_t interface_type, my_GInterfaceInfo_t* info) { my_GInterfaceInfo_t i = {0}; - i.interface_init = findGInterfaceInitFuncFct(info->interface_init); + i.interface_init = findGInterfaceInitFuncFct(info->interface_init, interface_type); i.interface_finalize = findGInterfaceFinalizeFuncFct(info->interface_finalize); i.data = info->data; my->g_type_add_interface_static(instance_type, interface_type, &i); @@ -906,6 +911,7 @@ EXPORT void* my_g_type_value_table_peek(x64emu_t* emu, size_t type) SetGInitiallyUnownedID(my->g_initially_unowned_get_type()); \ SetGTypeName(my->g_type_name); \ SetGClassPeek(my->g_type_class_peek); \ + SetGTypeParent(my->g_type_parent); \ setNeededLibs(lib, 1, "libglib-2.0.so.0"); #define CUSTOM_FINI \ diff --git a/src/wrapped/wrappedgobject2_private.h b/src/wrapped/wrappedgobject2_private.h index b81d036d..574ce14a 100644 --- a/src/wrapped/wrappedgobject2_private.h +++ b/src/wrapped/wrappedgobject2_private.h @@ -183,7 +183,7 @@ GO(g_param_spec_int, pFpppiiii) GO(g_param_spec_int64, pFpppllli) GO(g_param_spec_internal, pFLpppi) GO(g_param_spec_long, pFpppllli) -GO(g_param_spec_object, pFpppii) +GO(g_param_spec_object, pFpppLi) GO(g_param_spec_override, pFpp) GO(g_param_spec_param, pFpppii) GO(g_param_spec_pointer, pFpppi) diff --git a/src/wrapped/wrappedgstallocators.c b/src/wrapped/wrappedgstallocators.c new file mode 100644 index 00000000..a698ce73 --- /dev/null +++ b/src/wrapped/wrappedgstallocators.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstallocatorsName = "libgstallocators-1.0.so.0"; +#define LIBNAME gstallocators + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstallocators_private.h b/src/wrapped/wrappedgstallocators_private.h new file mode 100644 index 00000000..18c71e14 --- /dev/null +++ b/src/wrapped/wrappedgstallocators_private.h @@ -0,0 +1,18 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +GO(gst_dmabuf_allocator_alloc, pFpiL) +//GO(gst_dmabuf_allocator_alloc_with_flags, +GO(gst_dmabuf_allocator_get_type, LFv) +GO(gst_dmabuf_allocator_new, pFv) +//GO(gst_dmabuf_memory_get_fd, +//GO(gst_fd_allocator_alloc, +GO(gst_fd_allocator_get_type, LFv) +//GO(gst_fd_allocator_new, +//GO(gst_fd_memory_get_fd, +//GO(gst_is_dmabuf_memory, +//GO(gst_is_fd_memory, +//GO(gst_is_phys_memory, +GO(gst_phys_memory_allocator_get_type, LFv) +//GO(gst_phys_memory_get_phys_addr, \ No newline at end of file diff --git a/src/wrapped/wrappedgstaudio.c b/src/wrapped/wrappedgstaudio.c index 5f4e2a46..f7faf217 100644 --- a/src/wrapped/wrappedgstaudio.c +++ b/src/wrapped/wrappedgstaudio.c @@ -11,12 +11,37 @@ #include "bridge.h" #include "librarian/library_private.h" #include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" +#include "gtkclass.h" +#include "fileutils.h" const char* gstaudioName = "libgstaudio-1.0.so.0"; #define LIBNAME gstaudio +typedef size_t (*LFv_t)(); + +#define ADDED_FUNCTIONS() \ + GO(gst_audio_decoder_get_type, LFv_t) \ + +#include "generated/wrappedgstaudiotypes.h" + +#include "wrappercallback.h" + #define PRE_INIT \ if(box64_nogtk) \ return -1; +#define CUSTOM_INIT \ + getMy(lib); \ + SetGstAudioDecoderID(my->gst_audio_decoder_get_type());\ + setNeededLibs(lib, 1, "libgstreamer-1.0.so.0"); + +#define CUSTOM_FINI \ + freeMy(); + #include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstaudio_private.h b/src/wrapped/wrappedgstaudio_private.h index ef7996c3..f297ebfa 100644 --- a/src/wrapped/wrappedgstaudio_private.h +++ b/src/wrapped/wrappedgstaudio_private.h @@ -50,7 +50,7 @@ GO(gst_audio_channel_positions_to_mask, iFpiip) GO(gst_audio_channel_positions_to_string, pFpi) GO(gst_audio_channel_positions_to_valid_order, iFpi) GO(gst_audio_check_valid_channel_positions, iFpii) -//GO(gst_audio_clipping_meta_api_get_type, +GO(gst_audio_clipping_meta_api_get_type, LFv) //GO(gst_audio_clipping_meta_get_info, //GO(gst_audio_clock_adjust, //GO(gst_audio_clock_get_time, @@ -72,10 +72,10 @@ GO(gst_audio_converter_reset, vFp) GO(gst_audio_converter_samples, iFpupLpL) //GO(gst_audio_converter_supports_inplace, GO(gst_audio_converter_update_config, iFpiip) -//GO(gst_audio_decoder_allocate_output_buffer, -//GO(_gst_audio_decoder_error, -//GO(gst_audio_decoder_finish_frame, -//GO(gst_audio_decoder_finish_subframe, +GO(gst_audio_decoder_allocate_output_buffer, pFpL) +GO(_gst_audio_decoder_error, iFpipippppi) +GO(gst_audio_decoder_finish_frame, iFppi) +GO(gst_audio_decoder_finish_subframe, iFpp) //GO(gst_audio_decoder_get_allocator, //GO(gst_audio_decoder_get_audio_info, //GO(gst_audio_decoder_get_delay, @@ -89,30 +89,30 @@ GO(gst_audio_converter_update_config, iFpiip) //GO(gst_audio_decoder_get_plc, //GO(gst_audio_decoder_get_plc_aware, //GO(gst_audio_decoder_get_tolerance, -//GO(gst_audio_decoder_get_type, +GO(gst_audio_decoder_get_type, LFv) //GO(gst_audio_decoder_merge_tags, //GO(gst_audio_decoder_negotiate, //GO(gst_audio_decoder_proxy_getcaps, //GO(gst_audio_decoder_set_allocation_caps, -//GO(gst_audio_decoder_set_drainable, +GO(gst_audio_decoder_set_drainable, vFpi) //GO(gst_audio_decoder_set_estimate_rate, //GO(gst_audio_decoder_set_latency, //GO(gst_audio_decoder_set_max_errors, //GO(gst_audio_decoder_set_min_latency, -//GO(gst_audio_decoder_set_needs_format, +GO(gst_audio_decoder_set_needs_format, vFpi) //GO(gst_audio_decoder_set_output_caps, -//GO(gst_audio_decoder_set_output_format, +GO(gst_audio_decoder_set_output_format, iFpp) //GO(gst_audio_decoder_set_plc, //GO(gst_audio_decoder_set_plc_aware, //GO(gst_audio_decoder_set_tolerance, -//GO(gst_audio_decoder_set_use_default_pad_acceptcaps, +GO(gst_audio_decoder_set_use_default_pad_acceptcaps, vFpi) //GO(gst_audio_dither_method_get_type, //GO(gst_audio_downmix_meta_api_get_type, //GO(gst_audio_downmix_meta_get_info, //GO(gst_audio_encoder_allocate_output_buffer, -//GO(gst_audio_encoder_finish_frame, +GO(gst_audio_encoder_finish_frame, iFppi) //GO(gst_audio_encoder_get_allocator, -//GO(gst_audio_encoder_get_audio_info, +GO(gst_audio_encoder_get_audio_info, pFp) //GO(gst_audio_encoder_get_drainable, //GO(gst_audio_encoder_get_frame_max, //GO(gst_audio_encoder_get_frame_samples_max, @@ -124,34 +124,35 @@ GO(gst_audio_converter_update_config, iFpiip) //GO(gst_audio_encoder_get_mark_granule, //GO(gst_audio_encoder_get_perfect_timestamp, //GO(gst_audio_encoder_get_tolerance, -//GO(gst_audio_encoder_get_type, -//GO(gst_audio_encoder_merge_tags, +GO(gst_audio_encoder_get_type, LFv) +GO(gst_audio_encoder_merge_tags, vFppi) //GO(gst_audio_encoder_negotiate, //GO(gst_audio_encoder_proxy_getcaps, //GO(gst_audio_encoder_set_allocation_caps, -//GO(gst_audio_encoder_set_drainable, -//GO(gst_audio_encoder_set_frame_max, -//GO(gst_audio_encoder_set_frame_samples_max, -//GO(gst_audio_encoder_set_frame_samples_min, +GO(gst_audio_encoder_set_drainable, vFpi) +GO(gst_audio_encoder_set_frame_max, vFpi) +GO(gst_audio_encoder_set_frame_samples_max, vFpi) +GO(gst_audio_encoder_set_frame_samples_min, vFpi) //GO(gst_audio_encoder_set_hard_min, //GO(gst_audio_encoder_set_hard_resync, //GO(gst_audio_encoder_set_headers, //GO(gst_audio_encoder_set_latency, //GO(gst_audio_encoder_set_lookahead, //GO(gst_audio_encoder_set_mark_granule, -//GO(gst_audio_encoder_set_output_format, +GO(gst_audio_encoder_set_output_format, iFpp) //GO(gst_audio_encoder_set_perfect_timestamp, //GO(gst_audio_encoder_set_tolerance, //GO(gst_audio_filter_class_add_pad_templates, //GO(gst_audio_filter_get_type, //GO(gst_audio_flags_get_type, GO(gst_audio_format_build_integer, uFiiii) -//GO(gst_audio_format_fill_silence, +GO(gst_audio_format_fill_silence, vFppL) //GO(gst_audio_format_flags_get_type, GO(gst_audio_format_from_string, uFp) //GO(gst_audio_format_get_info, //GO(gst_audio_format_get_type, -//GO(gst_audio_format_info_get_type, +GO(gst_audio_format_info_fill_silence, vFppL) +GO(gst_audio_format_info_get_type, LFv) GO(gst_audio_formats_raw, pFp) GO(gst_audio_format_to_string, pFu) GO(gst_audio_get_channel_reorder_map, iFippp) @@ -244,7 +245,7 @@ GO(gst_audio_stream_align_set_discont_wait, vFpL) GO(gst_audio_stream_align_set_rate, vFpi) GO(gst_buffer_add_audio_clipping_meta, pFpuLL) GO(gst_buffer_add_audio_downmix_meta, pFppipip) -//GO(gst_buffer_add_audio_meta, +GO(gst_buffer_add_audio_meta, pFppLp) GO(gst_buffer_get_audio_downmix_meta_for_channels, pFppi) GO(gst_stream_volume_convert_volume, dFuud) GO(gst_stream_volume_get_mute, iFp) diff --git a/src/wrapped/wrappedgstbase.c b/src/wrapped/wrappedgstbase.c index 266ef86a..47c8f8a3 100644 --- a/src/wrapped/wrappedgstbase.c +++ b/src/wrapped/wrappedgstbase.c @@ -11,12 +11,230 @@ #include "bridge.h" #include "librarian/library_private.h" #include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" +#include "gtkclass.h" +#include "fileutils.h" const char* gstbaseName = "libgstbase-1.0.so.0"; #define LIBNAME gstbase +typedef size_t (*LFv_t)(); + +#define ADDED_FUNCTIONS() \ + GO(gst_base_transform_get_type, LFv_t) \ + GO(gst_base_sink_get_type, LFv_t) \ + GO(gst_aggregator_get_type, LFv_t) \ + GO(gst_push_src_get_type, LFv_t) \ + GO(gst_base_src_get_type, LFv_t) \ + GO(gst_aggregator_pad_get_type, LFv_t) \ + +#include "generated/wrappedgstbasetypes.h" + +#include "wrappercallback.h" + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) + +// GstCollectPadsFunction ... +#define GO(A) \ +static uintptr_t my_GstCollectPadsFunction_fct_##A = 0; \ +static int my_GstCollectPadsFunction_##A(void* a, void* b) \ +{ \ + return RunFunctionFmt(my_GstCollectPadsFunction_fct_##A, "pp", a, b); \ +} +SUPER() +#undef GO +static void* findGstCollectPadsFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GstCollectPadsFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstCollectPadsFunction_fct_##A == 0) {my_GstCollectPadsFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsFunction callback\n"); + return NULL; +} +// GstCollectDataDestroyNotify ... +#define GO(A) \ +static uintptr_t my_GstCollectDataDestroyNotify_fct_##A = 0; \ +static void my_GstCollectDataDestroyNotify_##A(void* a) \ +{ \ + RunFunctionFmt(my_GstCollectDataDestroyNotify_fct_##A, "p", a); \ +} +SUPER() +#undef GO +static void* findGstCollectDataDestroyNotifyFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GstCollectDataDestroyNotify_fct_##A == (uintptr_t)fct) return my_GstCollectDataDestroyNotify_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstCollectDataDestroyNotify_fct_##A == 0) {my_GstCollectDataDestroyNotify_fct_##A = (uintptr_t)fct; return my_GstCollectDataDestroyNotify_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectDataDestroyNotify callback\n"); + return NULL; +} +// GstCollectPadsEventFunction ... +#define GO(A) \ +static uintptr_t my_GstCollectPadsEventFunction_fct_##A = 0; \ +static int my_GstCollectPadsEventFunction_##A(void* a, void* b, void* c, void* d) \ +{ \ + return RunFunctionFmt(my_GstCollectPadsEventFunction_fct_##A, "pppp", a, b, c, d); \ +} +SUPER() +#undef GO +static void* findGstCollectPadsEventFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GstCollectPadsEventFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsEventFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstCollectPadsEventFunction_fct_##A == 0) {my_GstCollectPadsEventFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsEventFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsEventFunction callback\n"); + return NULL; +} +// GstCollectPadsQueryFunction ... +#define GO(A) \ +static uintptr_t my_GstCollectPadsQueryFunction_fct_##A = 0; \ +static int my_GstCollectPadsQueryFunction_##A(void* a, void* b, void* c, void* d) \ +{ \ + return RunFunctionFmt(my_GstCollectPadsQueryFunction_fct_##A, "pppp", a, b, c, d); \ +} +SUPER() +#undef GO +static void* findGstCollectPadsQueryFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GstCollectPadsQueryFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsQueryFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstCollectPadsQueryFunction_fct_##A == 0) {my_GstCollectPadsQueryFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsQueryFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsQueryFunction callback\n"); + return NULL; +} +// GstCollectPadsClipFunction ... +#define GO(A) \ +static uintptr_t my_GstCollectPadsClipFunction_fct_##A = 0; \ +static int my_GstCollectPadsClipFunction_##A(void* a, void* b, void* c, void* d, void* e) \ +{ \ + return RunFunctionFmt(my_GstCollectPadsClipFunction_fct_##A, "ppppp", a, b, c, d, e); \ +} +SUPER() +#undef GO +static void* findGstCollectPadsClipFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GstCollectPadsClipFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsClipFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstCollectPadsClipFunction_fct_##A == 0) {my_GstCollectPadsClipFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsClipFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsClipFunction callback\n"); + return NULL; +} +// GstCollectPadsBufferFunction ... +#define GO(A) \ +static uintptr_t my_GstCollectPadsBufferFunction_fct_##A = 0; \ +static int my_GstCollectPadsBufferFunction_##A(void* a, void* b, void* c, void* d) \ +{ \ + return RunFunctionFmt(my_GstCollectPadsBufferFunction_fct_##A, "pppp", a, b, c, d); \ +} +SUPER() +#undef GO +static void* findGstCollectPadsBufferFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_GstCollectPadsBufferFunction_fct_##A == (uintptr_t)fct) return my_GstCollectPadsBufferFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstCollectPadsBufferFunction_fct_##A == 0) {my_GstCollectPadsBufferFunction_fct_##A = (uintptr_t)fct; return my_GstCollectPadsBufferFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstbase GstCollectPadsBufferFunction callback\n"); + return NULL; +} + +#undef SUPER + +EXPORT void my_gst_collect_pads_set_function(x64emu_t* emu, void* p, void* f, void* data) +{ + my->gst_collect_pads_set_function(p, findGstCollectPadsFunctionFct(f), data); +} + +EXPORT void* my_gst_collect_pads_add_pad(x64emu_t* emu, void* pads, void* pad, uint32_t size, void* d, int lock) +{ + return my->gst_collect_pads_add_pad(pads, pad, size, findGstCollectDataDestroyNotifyFct(d), lock); +} + +EXPORT void my_gst_collect_pads_set_event_function(x64emu_t* emu, void* pads, void* f, void* data) +{ + my->gst_collect_pads_set_event_function(pads, findGstCollectPadsEventFunctionFct(f), data); +} + +EXPORT void my_gst_collect_pads_set_query_function(x64emu_t* emu, void* pads, void* f, void* data) +{ + my->gst_collect_pads_set_query_function(pads, findGstCollectPadsQueryFunctionFct(f), data); +} + +EXPORT void my_gst_collect_pads_set_clip_function(x64emu_t* emu, void* pads, void* f, void* data) +{ + my->gst_collect_pads_set_clip_function(pads, findGstCollectPadsClipFunctionFct(f), data); +} + +EXPORT void my_gst_collect_pads_set_buffer_function(x64emu_t* emu, void* pads, void* f, void* data) +{ + my->gst_collect_pads_set_buffer_function(pads, findGstCollectPadsBufferFunctionFct(f), data); +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; +#define CUSTOM_INIT \ + getMy(lib); \ + SetGstBaseTransformID(my->gst_base_transform_get_type());\ + SetGstBaseSinkID(my->gst_base_sink_get_type());\ + SetGstAggregatorID(my->gst_aggregator_get_type());\ + SetGstPushSrcID(my->gst_push_src_get_type());\ + SetGstBaseSrcID(my->gst_base_src_get_type());\ + SetGstAggregatorPadID(my->gst_aggregator_pad_get_type());\ + setNeededLibs(lib, 1, "libgstreamer-1.0.so.0"); + +#define CUSTOM_FINI \ + freeMy(); + #include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstbase_private.h b/src/wrapped/wrappedgstbase_private.h index f203a1b5..68b52422 100644 --- a/src/wrapped/wrappedgstbase_private.h +++ b/src/wrapped/wrappedgstbase_private.h @@ -2,9 +2,9 @@ #error meh! #endif -//GO(gst_adapter_available, +GO(gst_adapter_available, LFp) GO(gst_adapter_available_fast, LFp) -//GO(gst_adapter_clear, +GO(gst_adapter_clear, vFp) GO(gst_adapter_copy, vFppLL) GO(gst_adapter_copy_bytes, pFpLL) GO(gst_adapter_distance_from_discont, LFp) @@ -14,7 +14,7 @@ GO(gst_adapter_flush, vFpL) GO(gst_adapter_get_buffer_fast, pFpL) GO(gst_adapter_get_buffer_list, pFpL) GO(gst_adapter_get_list, pFpL) -//GO(gst_adapter_get_type, +GO(gst_adapter_get_type, LFv) GO(gst_adapter_map, pFpL) GO(gst_adapter_masked_scan_uint32, lFpuuLL) GO(gst_adapter_masked_scan_uint32_peek, lFpuuLLp) @@ -28,20 +28,20 @@ GO(gst_adapter_prev_offset, LFpp) //GO(gst_adapter_pts_at_discont, GO(gst_adapter_push, vFpp) GO(gst_adapter_take, pFpL) -//GO(gst_adapter_take_buffer, +GO(gst_adapter_take_buffer, pFpL) //GO(gst_adapter_take_buffer_fast, //GO(gst_adapter_take_buffer_list, //GO(gst_adapter_take_list, -//GO(gst_adapter_unmap, -//GO(gst_aggregator_finish_buffer, +GO(gst_adapter_unmap, vFp) +GO(gst_aggregator_finish_buffer, iFpp) //GO(gst_aggregator_finish_buffer_list, //GO(gst_aggregator_get_allocator, //GO(gst_aggregator_get_buffer_pool, //GO(gst_aggregator_get_latency, -//GO(gst_aggregator_get_type, +GO(gst_aggregator_get_type, LFv) //GO(gst_aggregator_negotiate, //GO(gst_aggregator_pad_drop_buffer, -//GO(gst_aggregator_pad_get_type, +GO(gst_aggregator_pad_get_type, LFv) //GO(gst_aggregator_pad_has_buffer, //GO(gst_aggregator_pad_is_eos, //GO(gst_aggregator_pad_peek_buffer, @@ -89,7 +89,7 @@ GO(gst_adapter_take, pFpL) //GO(gst_base_sink_get_sync, //GO(gst_base_sink_get_throttle_time, //GO(gst_base_sink_get_ts_offset, -//GO(gst_base_sink_get_type, +GO(gst_base_sink_get_type, LFv) //GO(gst_base_sink_is_async_enabled, //GO(gst_base_sink_is_last_sample_enabled, //GO(gst_base_sink_is_qos_enabled, @@ -110,44 +110,44 @@ GO(gst_adapter_take, pFpL) //GO(gst_base_sink_wait_clock, //GO(gst_base_sink_wait_preroll, //GO(gst_base_src_get_allocator, -//GO(gst_base_src_get_blocksize, +GO(gst_base_src_get_blocksize, uFp) //GO(gst_base_src_get_buffer_pool, //GO(gst_base_src_get_do_timestamp, -//GO(gst_base_src_get_type, +GO(gst_base_src_get_type, LFv) //GO(gst_base_src_is_async, -//GO(gst_base_src_is_live, +GO(gst_base_src_is_live, iFp) //GO(gst_base_src_negotiate, //GO(gst_base_src_new_seamless_segment, //GO(gst_base_src_new_segment, //GO(gst_base_src_query_latency, //GO(gst_base_src_set_async, -//GO(gst_base_src_set_automatic_eos, -//GO(gst_base_src_set_blocksize, -//GO(gst_base_src_set_caps, +GO(gst_base_src_set_automatic_eos, vFpi) +GO(gst_base_src_set_blocksize, vFpu) +GO(gst_base_src_set_caps, iFpp) //GO(gst_base_src_set_do_timestamp, //GO(gst_base_src_set_dynamic_size, //GO(gst_base_src_set_format, -//GO(gst_base_src_set_live, +GO(gst_base_src_set_live, vFpi) //GO(gst_base_src_start_complete, //GO(gst_base_src_start_wait, //GO(gst_base_src_submit_buffer_list, //GO(gst_base_src_wait_playing, //GO(gst_base_transform_get_allocator, //GO(gst_base_transform_get_buffer_pool, -//GO(gst_base_transform_get_type, +GO(gst_base_transform_get_type, LFv) //GO(gst_base_transform_is_in_place, -//GO(gst_base_transform_is_passthrough, +GO(gst_base_transform_is_passthrough, iFp) //GO(gst_base_transform_is_qos_enabled, //GO(gst_base_transform_reconfigure, //GO(gst_base_transform_reconfigure_sink, -//GO(gst_base_transform_reconfigure_src, -//GO(gst_base_transform_set_gap_aware, -//GO(gst_base_transform_set_in_place, -//GO(gst_base_transform_set_passthrough, -//GO(gst_base_transform_set_prefer_passthrough, +GO(gst_base_transform_reconfigure_src, vFp) +GO(gst_base_transform_set_gap_aware, vFpi) +GO(gst_base_transform_set_in_place, vFpi) +GO(gst_base_transform_set_passthrough, vFpi) +GO(gst_base_transform_set_prefer_passthrough, vFpi) //GO(gst_base_transform_set_qos_enabled, //GO(gst_base_transform_update_qos, -//GO(gst_base_transform_update_src_caps, +GO(gst_base_transform_update_src_caps, iFpp) //GO(gst_bit_reader_free, //GO(gst_bit_reader_get_bits_uint16, //GO(gst_bit_reader_get_bits_uint32, @@ -248,18 +248,18 @@ GO(gst_byte_reader_peek_string_utf8, iFpp) //GO(gst_byte_reader_peek_uint64_be, //GO(gst_byte_reader_peek_uint64_le, //GO(gst_byte_reader_peek_uint8, -//GO(gst_byte_reader_set_pos, +GO(gst_byte_reader_set_pos, iFpu) //GO(gst_byte_reader_skip, //GO(gst_byte_reader_skip_string_utf16, GO(gst_byte_reader_skip_string_utf32, iFp) //GO(gst_byte_reader_skip_string_utf8, //GO(gst_byte_writer_ensure_free_space, //GO(gst_byte_writer_fill, -//GO(gst_byte_writer_free, -//GO(gst_byte_writer_free_and_get_buffer, +GO(gst_byte_writer_free, vFp) +GO(gst_byte_writer_free_and_get_buffer, pFp) //GO(gst_byte_writer_free_and_get_data, GO(gst_byte_writer_get_remaining, uFp) -//GO(gst_byte_writer_init, +GO(gst_byte_writer_init, vFp) GO(gst_byte_writer_init_with_data, vFppui) GO(gst_byte_writer_init_with_size, vFpui) GO(gst_byte_writer_new, pFv) @@ -294,31 +294,31 @@ GO(gst_byte_writer_put_string_utf8, iFpp) GO(gst_byte_writer_reset, vFp) GO(gst_byte_writer_reset_and_get_buffer, pFp) GO(gst_byte_writer_reset_and_get_data, pFp) -//GO(gst_collect_pads_add_pad, +GOM(gst_collect_pads_add_pad, pFEppupi) GO(gst_collect_pads_available, uFp) -//GO(gst_collect_pads_clip_running_time, -//GO(gst_collect_pads_event_default, +GO(gst_collect_pads_clip_running_time, iFppppp) +GO(gst_collect_pads_event_default, iFpppi) //GO(gst_collect_pads_flush, //GO(gst_collect_pads_get_type, GO(gst_collect_pads_new, pFv) -//GO(gst_collect_pads_peek, -//GO(gst_collect_pads_pop, -//GO(gst_collect_pads_query_default, +GO(gst_collect_pads_peek, pFpp) +GO(gst_collect_pads_pop, pFpp) +GO(gst_collect_pads_query_default, iFpppi) //GO(gst_collect_pads_read_buffer, -//GO(gst_collect_pads_remove_pad, -//GO(gst_collect_pads_set_buffer_function, -//GO(gst_collect_pads_set_clip_function, +GO(gst_collect_pads_remove_pad, iFpp) +GOM(gst_collect_pads_set_buffer_function, vFEppp) +GOM(gst_collect_pads_set_clip_function, vFEppp) //GO(gst_collect_pads_set_compare_function, -//GO(gst_collect_pads_set_event_function, +GOM(gst_collect_pads_set_event_function, vFEppp) //GO(gst_collect_pads_set_flush_function, GO(gst_collect_pads_set_flushing, vFpi) -//GO(gst_collect_pads_set_function, -//GO(gst_collect_pads_set_query_function, -//GO(gst_collect_pads_set_waiting, +GOM(gst_collect_pads_set_function, vFEppp) +GOM(gst_collect_pads_set_query_function, vFEppp) +GO(gst_collect_pads_set_waiting, vFppi) //GO(gst_collect_pads_src_event_default, -//GO(gst_collect_pads_start, -//GO(gst_collect_pads_stop, -//GO(gst_collect_pads_take_buffer, +GO(gst_collect_pads_start, vFp) +GO(gst_collect_pads_stop, vFp) +GO(gst_collect_pads_take_buffer, pFppu) GO(gst_data_queue_drop_head, iFpL) //GO(gst_data_queue_flush, GO(gst_data_queue_get_level, vFpp) @@ -332,17 +332,17 @@ GO(gst_data_queue_peek, iFpp) //GO(gst_data_queue_push, //GO(gst_data_queue_push_force, GO(gst_data_queue_set_flushing, vFpi) -//GO(gst_flow_combiner_add_pad, -//GO(gst_flow_combiner_clear, -//GO(gst_flow_combiner_free, -//GO(gst_flow_combiner_get_type, +GO(gst_flow_combiner_add_pad, vFpp) +GO(gst_flow_combiner_clear, vFp) +GO(gst_flow_combiner_free, vFp) +GO(gst_flow_combiner_get_type, LFv) GO(gst_flow_combiner_new, pFv) GO(gst_flow_combiner_ref, pFp) -//GO(gst_flow_combiner_remove_pad, -//GO(gst_flow_combiner_reset, +GO(gst_flow_combiner_remove_pad, vFpp) +GO(gst_flow_combiner_reset, vFp) //GO(gst_flow_combiner_unref, GO(gst_flow_combiner_update_flow, iFpi) -//GO(gst_flow_combiner_update_pad_flow, +GO(gst_flow_combiner_update_pad_flow, iFppi) GO(gst_push_src_get_type, LFv) GO(gst_queue_array_clear, vFp) //GO(gst_queue_array_drop_element, @@ -367,7 +367,7 @@ GO(gst_queue_array_peek_tail_struct, pFp) GO(gst_queue_array_push_tail_struct, vFpp) //GO(gst_queue_array_set_clear_func, //GO(gst_type_find_helper, -//GO(gst_type_find_helper_for_buffer, +GO(gst_type_find_helper_for_buffer, pFppp) //GO(gst_type_find_helper_for_buffer_with_extension, //GO(gst_type_find_helper_for_data, GO(gst_type_find_helper_for_data_with_extension, pFppLpp) diff --git a/src/wrapped/wrappedgstcheck.c b/src/wrapped/wrappedgstcheck.c new file mode 100644 index 00000000..e7fe36b8 --- /dev/null +++ b/src/wrapped/wrappedgstcheck.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstcheckName = "libgstcheck-1.0.so.0"; +#define LIBNAME gstcheck + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstcheck_private.h b/src/wrapped/wrappedgstcheck_private.h new file mode 100644 index 00000000..b2f2bfc0 --- /dev/null +++ b/src/wrapped/wrappedgstcheck_private.h @@ -0,0 +1,203 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +//DATAB(buffers, +//DATAB(check_cond, +//DATAB(check_debug, +//GO(check_fork, +//DATAB(check_major_version, +//DATA(check_micro_version, +//DATA(check_minor_version, +//DATAB(check_mutex, +//GO(check_waitpid_and_exit, +//GO(_ck_assert_failed, +//GO(_fail_unless, +//GO(gst_buffer_straw_get_buffer, +//GO(gst_buffer_straw_start_pipeline, +//GO(gst_buffer_straw_stop_pipeline, +//GO(gst_check_abi_list, +//GO(gst_check_add_log_filter, +//GO(gst_check_buffer_data, +//GO(gst_check_caps_equal, +//GO(gst_check_chain_func, +//GO(gst_check_clear_log_filter, +//GO(gst_check_drop_buffers, +//GO(gst_check_element_push_buffer, +//GO(gst_check_element_push_buffer_list, +//DATAB(_gst_check_expecting_log, +//GO(gst_check_init, +//DATAB(_gst_check_list_tests, +//GO(gst_check_message_error, +//GO(gst_check_object_destroyed_on_unref, +//GO(gst_check_objects_destroyed_on_unref, +//DATAB(_gst_check_raised_critical, +//DATAB(_gst_check_raised_warning, +//GO(gst_check_remove_log_filter, +//GO(gst_check_run_suite, +//GO(_gst_check_run_test_func, +//GO(gst_check_setup_element, +//GO(gst_check_setup_events, +//GO(gst_check_setup_events_with_stream_id, +//GO(gst_check_setup_sink_pad, +//GO(gst_check_setup_sink_pad_by_name, +//GO(gst_check_setup_sink_pad_by_name_from_template, +//GO(gst_check_setup_sink_pad_from_template, +//GO(gst_check_setup_src_pad, +//GO(gst_check_setup_src_pad_by_name, +//GO(gst_check_setup_src_pad_by_name_from_template, +//GO(gst_check_setup_src_pad_from_template, +//GO(gst_check_teardown_element, +//GO(gst_check_teardown_pad_by_name, +//GO(gst_check_teardown_sink_pad, +//GO(gst_check_teardown_src_pad, +//DATAB(_gst_check_threads_running, +//GO(gst_consistency_checker_add_pad, +//GO(gst_consistency_checker_free, +//GO(gst_consistency_checker_new, +//GO(gst_consistency_checker_reset, +//GO(gst_harness_add_element_full, +//GO(gst_harness_add_element_sink_pad, +//GO(gst_harness_add_element_src_pad, +//GO(gst_harness_add_parse, +//GO(gst_harness_add_probe, +//GO(gst_harness_add_propose_allocation_meta, +//GO(gst_harness_add_sink, +//GO(gst_harness_add_sink_harness, +//GO(gst_harness_add_sink_parse, +//GO(gst_harness_add_src, +//GO(gst_harness_add_src_harness, +//GO(gst_harness_add_src_parse, +//GO(gst_harness_buffers_in_queue, +//GO(gst_harness_buffers_received, +//GO(gst_harness_crank_multiple_clock_waits, +//GO(gst_harness_crank_single_clock_wait, +//GO(gst_harness_create_buffer, +//GO(gst_harness_dump_to_file, +//GO(gst_harness_events_in_queue, +//GO(gst_harness_events_received, +//GO(gst_harness_find_element, +//GO(gst_harness_get, +//GO(gst_harness_get_allocator, +//GO(gst_harness_get_last_pushed_timestamp, +//GO(gst_harness_get_testclock, +//GO(gst_harness_new, +//GO(gst_harness_new_empty, +//GO(gst_harness_new_full, +//GO(gst_harness_new_parse, +//GO(gst_harness_new_with_element, +//GO(gst_harness_new_with_padnames, +//GO(gst_harness_new_with_templates, +//GO(gst_harness_play, +//GO(gst_harness_pull, +//GO(gst_harness_pull_event, +//GO(gst_harness_pull_until_eos, +//GO(gst_harness_pull_upstream_event, +//GO(gst_harness_push, +//GO(gst_harness_push_and_pull, +//GO(gst_harness_push_event, +//GO(gst_harness_push_from_src, +//GO(gst_harness_push_to_sink, +//GO(gst_harness_push_upstream_event, +//GO(gst_harness_query_latency, +//GO(gst_harness_set, +//GO(gst_harness_set_blocking_push_mode, +//GO(gst_harness_set_caps, +//GO(gst_harness_set_caps_str, +//GO(gst_harness_set_drop_buffers, +//GO(gst_harness_set_forwarding, +//GO(gst_harness_set_live, +//GO(gst_harness_set_propose_allocator, +//GO(gst_harness_set_sink_caps, +//GO(gst_harness_set_sink_caps_str, +//GO(gst_harness_set_src_caps, +//GO(gst_harness_set_src_caps_str, +//GO(gst_harness_set_time, +//GO(gst_harness_set_upstream_latency, +//GO(gst_harness_sink_push_many, +//GO(gst_harness_src_crank_and_push_many, +//GO(gst_harness_src_push_event, +//GO(gst_harness_stress_custom_start, +//GO(gst_harness_stress_property_start_full, +//GO(gst_harness_stress_push_buffer_start_full, +//GO(gst_harness_stress_push_buffer_with_cb_start_full, +//GO(gst_harness_stress_push_event_start_full, +//GO(gst_harness_stress_push_event_with_cb_start_full, +//GO(gst_harness_stress_push_upstream_event_start_full, +//GO(gst_harness_stress_push_upstream_event_with_cb_start_full, +//GO(gst_harness_stress_requestpad_start_full, +//GO(gst_harness_stress_statechange_start_full, +//GO(gst_harness_stress_thread_stop, +//GO(gst_harness_take_all_data, +//GO(gst_harness_take_all_data_as_buffer, +//GO(gst_harness_take_all_data_as_bytes, +//GO(gst_harness_teardown, +//GO(gst_harness_try_pull, +//GO(gst_harness_try_pull_event, +//GO(gst_harness_try_pull_upstream_event, +//GO(gst_harness_upstream_events_in_queue, +//GO(gst_harness_upstream_events_received, +//GO(gst_harness_use_systemclock, +//GO(gst_harness_use_testclock, +//GO(gst_harness_wait_for_clock_id_waits, +//GO(gst_test_clock_advance_time, +//GO(gst_test_clock_crank, +//GO(gst_test_clock_get_next_entry_time, +GO(gst_test_clock_get_type, LFv) +//GO(gst_test_clock_has_id, +//GO(gst_test_clock_id_list_get_latest_time, +//GO(gst_test_clock_new, +//GO(gst_test_clock_new_with_start_time, +//GO(gst_test_clock_peek_id_count, +//GO(gst_test_clock_peek_next_pending_id, +//GO(gst_test_clock_process_id, +//GO(gst_test_clock_process_id_list, +//GO(gst_test_clock_process_next_clock_id, +//GO(gst_test_clock_set_time, +//GO(gst_test_clock_timed_wait_for_multiple_pending_ids, +//GO(gst_test_clock_wait_for_multiple_pending_ids, +//GO(gst_test_clock_wait_for_next_pending_id, +//GO(gst_test_clock_wait_for_pending_id_count, +//GO(_mark_point, +//DATAB(mutex, +//GO(srunner_add_suite, +//GO(srunner_create, +//GO(srunner_failures, +//GO(srunner_fork_status, +//GO(srunner_free, +//GO(srunner_has_log, +//GO(srunner_has_tap, +//GO(srunner_has_xml, +//GO(srunner_log_fname, +//GO(srunner_ntests_failed, +//GO(srunner_ntests_run, +//GO(srunner_print, +//GO(srunner_results, +//GO(srunner_run, +//GO(srunner_run_all, +//GO(srunner_run_tagged, +//GO(srunner_set_fork_status, +//GO(srunner_set_log, +//GO(srunner_set_tap, +//GO(srunner_set_xml, +//GO(srunner_tap_fname, +//GO(srunner_xml_fname, +//DATAB(start_cond, +//GO(suite_add_tcase, +//GO(suite_create, +//GO(suite_tcase, +//DATAB(sync_cond, +//GO(tcase_add_checked_fixture, +//GO(_tcase_add_test, +//GO(tcase_add_unchecked_fixture, +//GO(tcase_create, +//GO(tcase_fn_start, +//GO(tcase_set_tags, +//GO(tcase_set_timeout, +//DATAB(thread_list, +//GO(tr_ctx, +//GO(tr_lfile, +//GO(tr_lno, +//GO(tr_msg, +//GO(tr_rtype, +//GO(tr_tcname, diff --git a/src/wrapped/wrappedgstcontroller.c b/src/wrapped/wrappedgstcontroller.c new file mode 100644 index 00000000..a6da1b3d --- /dev/null +++ b/src/wrapped/wrappedgstcontroller.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstcontrollerName = "libgstcontroller-1.0.so.0"; +#define LIBNAME gstcontroller + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstcontroller_private.h b/src/wrapped/wrappedgstcontroller_private.h new file mode 100644 index 00000000..0cbde97f --- /dev/null +++ b/src/wrapped/wrappedgstcontroller_private.h @@ -0,0 +1,31 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +GO(gst_argb_control_binding_get_type, LFv) +//GO(gst_argb_control_binding_new, +//GO(gst_control_point_copy, +//GO(gst_control_point_free, +GO(gst_control_point_get_type, LFv) +GO(gst_direct_control_binding_get_type, LFv) +//GO(gst_direct_control_binding_new, +//GO(gst_direct_control_binding_new_absolute, +GO(gst_interpolation_control_source_get_type, LFv) +//GO(gst_interpolation_control_source_new, +GO(gst_interpolation_mode_get_type, LFv) +GO(gst_lfo_control_source_get_type, LFv) +//GO(gst_lfo_control_source_new, +GO(gst_lfo_waveform_get_type, LFv) +GO(gst_proxy_control_binding_get_type, LFv) +GO(gst_proxy_control_binding_new, pFpppp) +//GO(gst_timed_value_control_invalidate_cache, +//GO(gst_timed_value_control_source_find_control_point_iter, +//GO(gst_timed_value_control_source_get_all, +//GO(gst_timed_value_control_source_get_count, +GO(gst_timed_value_control_source_get_type, LFv) +//GO(gst_timed_value_control_source_set, +//GO(gst_timed_value_control_source_set_from_list, +//GO(gst_timed_value_control_source_unset, +//GO(gst_timed_value_control_source_unset_all, +GO(gst_trigger_control_source_get_type, LFv) +//GO(gst_trigger_control_source_new, diff --git a/src/wrapped/wrappedgstfft.c b/src/wrapped/wrappedgstfft.c new file mode 100644 index 00000000..27e07517 --- /dev/null +++ b/src/wrapped/wrappedgstfft.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstfftName = "libgstfft-1.0.so.0"; +#define LIBNAME gstfft + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstfft_private.h b/src/wrapped/wrappedgstfft_private.h new file mode 100644 index 00000000..64934231 --- /dev/null +++ b/src/wrapped/wrappedgstfft_private.h @@ -0,0 +1,25 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +//GO(gst_fft_f32_fft, +//GO(gst_fft_f32_free, +//GO(gst_fft_f32_inverse_fft, +//GO(gst_fft_f32_new, +//GO(gst_fft_f32_window, +//GO(gst_fft_f64_fft, +//GO(gst_fft_f64_free, +//GO(gst_fft_f64_inverse_fft, +//GO(gst_fft_f64_new, +//GO(gst_fft_f64_window, +//GO(gst_fft_next_fast_length, +//GO(gst_fft_s16_fft, +//GO(gst_fft_s16_free, +//GO(gst_fft_s16_inverse_fft, +//GO(gst_fft_s16_new, +//GO(gst_fft_s16_window, +//GO(gst_fft_s32_fft, +//GO(gst_fft_s32_free, +//GO(gst_fft_s32_inverse_fft, +//GO(gst_fft_s32_new, +//GO(gst_fft_s32_window, diff --git a/src/wrapped/wrappedgstgl.c b/src/wrapped/wrappedgstgl.c index bc23c293..9e05326b 100644 --- a/src/wrapped/wrappedgstgl.c +++ b/src/wrapped/wrappedgstgl.c @@ -1,7 +1,7 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <stdio.h> #include <stdlib.h> #include <string.h> -#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <dlfcn.h> #include "wrappedlibs.h" @@ -11,12 +11,269 @@ #include "bridge.h" #include "librarian/library_private.h" #include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" +#include "gtkclass.h" +#include "fileutils.h" +#include "gltools.h" const char* gstglName = "libgstgl-1.0.so.0"; #define LIBNAME gstgl +typedef size_t (*LFv_t)(); + +#define ADDED_FUNCTIONS() \ + GO(gst_gl_base_filter_get_type, LFv_t) \ + GO(gst_gl_filter_get_type, LFv_t) \ + GO(gst_gl_base_src_get_type, LFv_t) \ + +#include "generated/wrappedgstgltypes.h" + +#include "wrappercallback.h" + +#define SUPER() \ +GO(0) \ +GO(1) \ +GO(2) \ +GO(3) \ +GO(4) \ + +// getprocaddress_with_platform ... +#define GO(A) \ +static uint64_t my_getprocaddress_platform_##A = 0; \ +static void* my_getprocaddress_with_platform_##A(const char* name) \ +{ \ + int type = my_getprocaddress_platform_##A >> 32; \ + int api = my_getprocaddress_platform_##A & 0xffffffff; \ + return my->gst_gl_context_get_proc_address_with_platform(type, api, (void*)name); \ +} +SUPER() +#undef GO +static glprocaddress_t findGetProcAddressPlatformFct(int type, int gl_api) +{ + uint64_t key = (((uint64_t)type)<<32) | (gl_api); + #define GO(A) if(my_getprocaddress_platform_##A == key) return my_getprocaddress_with_platform_##A; + SUPER() + #undef GO + #define GO(A) if(my_getprocaddress_platform_##A == 0) {my_getprocaddress_platform_##A = key; return my_getprocaddress_with_platform_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstgl gst_gl_context_get_proc_address_with_platform callback\n"); + return NULL; +} + +// getprocaddress_with_api ... +#define GO(A) \ +static int my_getprocaddress_api_##A = 0; \ +static void* my_getprocaddress_with_api_##A(const char* name) \ +{ \ + return my->gst_gl_context_default_get_proc_address(my_getprocaddress_api_##A, (void*)name); \ +} +SUPER() +#undef GO +static glprocaddress_t findGetProcAddressAPIFct(int api) +{ + #define GO(A) if(my_getprocaddress_api_##A == api) return my_getprocaddress_with_api_##A; + SUPER() + #undef GO + #define GO(A) if(my_getprocaddress_api_##A == 0) {my_getprocaddress_api_##A = api; return my_getprocaddress_with_api_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstgl gst_gl_context_default_get_proc_address callback\n"); + return NULL; +} +// GDestroyFunc ... +#define GO(A) \ +static uintptr_t my_destroyfunc_fct_##A = 0; \ +static int my_destroyfunc_##A(void* a, void* b) \ +{ \ + return RunFunctionFmt(my_destroyfunc_fct_##A, "pp", a, b); \ +} +SUPER() +#undef GO +static void* findDestroyFct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_destroyfunc_fct_##A == (uintptr_t)fct) return my_destroyfunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_destroyfunc_fct_##A == 0) {my_destroyfunc_fct_##A = (uintptr_t)fct; return my_destroyfunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstgl GDestroyNotify callback\n"); + return NULL; +} +//GstGLContextThreadFunc +#define GO(A) \ +static uintptr_t my_GstGLContextThreadFunc_fct_##A = 0; \ +static void my_GstGLContextThreadFunc_##A(void* a, void* b) \ +{ \ + RunFunctionFmt(my_GstGLContextThreadFunc_fct_##A, "pp", a, b); \ +} +SUPER() +#undef GO +static void* findGstGLContextThreadFuncFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstGLContextThreadFunc_fct_##A == (uintptr_t)fct) return my_GstGLContextThreadFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstGLContextThreadFunc_fct_##A == 0) {my_GstGLContextThreadFunc_fct_##A = (uintptr_t)fct; return my_GstGLContextThreadFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLContextThreadFunc callback\n"); + return NULL; +} +//GstGLFilterRenderFunc +#define GO(A) \ +static uintptr_t my_GstGLFilterRenderFunc_fct_##A = 0; \ +static int my_GstGLFilterRenderFunc_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GstGLFilterRenderFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstGLFilterRenderFuncFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstGLFilterRenderFunc_fct_##A == (uintptr_t)fct) return my_GstGLFilterRenderFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstGLFilterRenderFunc_fct_##A == 0) {my_GstGLFilterRenderFunc_fct_##A = (uintptr_t)fct; return my_GstGLFilterRenderFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLFilterRenderFunc callback\n"); + return NULL; +} +//GstGLFramebufferFunc +#define GO(A) \ +static uintptr_t my_GstGLFramebufferFunc_fct_##A = 0; \ +static int my_GstGLFramebufferFunc_##A(void* a) \ +{ \ + return (int)RunFunctionFmt(my_GstGLFramebufferFunc_fct_##A, "p", a); \ +} +SUPER() +#undef GO +static void* findGstGLFramebufferFuncFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstGLFramebufferFunc_fct_##A == (uintptr_t)fct) return my_GstGLFramebufferFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstGLFramebufferFunc_fct_##A == 0) {my_GstGLFramebufferFunc_fct_##A = (uintptr_t)fct; return my_GstGLFramebufferFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLFramebufferFunc callback\n"); + return NULL; +} +//GstGLWindowCB +#define GO(A) \ +static uintptr_t my_GstGLWindowCB_fct_##A = 0; \ +static void my_GstGLWindowCB_##A(void* a) \ +{ \ + RunFunctionFmt(my_GstGLWindowCB_fct_##A, "p", a); \ +} +SUPER() +#undef GO +static void* findGstGLWindowCBFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstGLWindowCB_fct_##A == (uintptr_t)fct) return my_GstGLWindowCB_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstGLWindowCB_fct_##A == 0) {my_GstGLWindowCB_fct_##A = (uintptr_t)fct; return my_GstGLWindowCB_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstgl GstGLWindowCB callback\n"); + return NULL; +} +#undef SUPER + +EXPORT void* my_gst_gl_context_get_proc_address_with_platform(x64emu_t* emu, int type, int gl_api, const char* name) +{ + return getGLProcAddress(emu, findGetProcAddressPlatformFct(type, gl_api), name); +} + +EXPORT void* my_gst_gl_context_default_get_proc_address(x64emu_t* emu, int gl_api, const char* name) +{ + return getGLProcAddress(emu, findGetProcAddressAPIFct(gl_api), name); +} + +EXPORT void my_gst_gl_context_thread_add(x64emu_t* emu, void* context, void* f, void* data) +{ + my->gst_gl_context_thread_add(context, findGstGLContextThreadFuncFct(f), data); +} + +EXPORT int my_gst_gl_filter_render_to_target(x64emu_t* emu, void* filter, void* input, void* output, void* f, void* data) +{ + return my->gst_gl_filter_render_to_target(filter, input, output, findGstGLFilterRenderFuncFct(f), data); +} + +EXPORT int my_gst_gl_framebuffer_draw_to_texture(x64emu_t* emu, void* fb, void* mem, void* f, void* data) +{ + return my->gst_gl_framebuffer_draw_to_texture(fb, mem, findGstGLFramebufferFuncFct(f), data); +} + +EXPORT void my_gst_gl_insert_debug_marker(x64emu_t* emu, void* context, void* fmt, uintptr_t* b) +{ + #ifdef PREFER_CONVERT_VAARG + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 2); + #else + myStackAlign(emu, (const char*)fmt, b, emu->scratch, R_EAX, 2); + PREPARE_VALIST; + #endif + char* buff = NULL; + if(vasprintf(&buff, (const char*)fmt, VARARGS)<0) + return; // meh + my->gst_gl_insert_debug_marker(context, buff); + free(buff); +} + +EXPORT void my_gst_gl_window_send_message(x64emu_t* emu, void* window, void* f, void* data) +{ + my->gst_gl_window_send_message(window, findGstGLWindowCBFct(f), data); +} + +EXPORT void my_gst_gl_window_set_close_callback(x64emu_t* emu, void* window, void* f, void* data, void* d) +{ + my->gst_gl_window_set_close_callback(window, findGstGLWindowCBFct(f), data, findDestroyFct(d)); +} + +EXPORT void my_gst_gl_window_set_draw_callback(x64emu_t* emu, void* window, void* f, void* data, void* d) +{ + my->gst_gl_window_set_draw_callback(window, findGstGLWindowCBFct(f), data, findDestroyFct(d)); +} + +EXPORT void my_gst_gl_window_set_resize_callback(x64emu_t* emu, void* window, void* f, void* data, void* d) +{ + my->gst_gl_window_set_resize_callback(window, findGstGLWindowCBFct(f), data, findDestroyFct(d)); +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; +#define CUSTOM_INIT \ + getMy(lib); \ + SetGstGLBaseFilterID(my->gst_gl_base_filter_get_type()); \ + SetGstGLFilterID(my->gst_gl_filter_get_type()); \ + SetGstGLBaseSrcID(my->gst_gl_base_src_get_type()); \ + setNeededLibs(lib, 2, "libGL.so.1", "libgstreamer-1.0.so.0"); + +#define CUSTOM_FINI \ + freeMy(); + #include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstgl_private.h b/src/wrapped/wrappedgstgl_private.h index 6ca18ccb..92e247cf 100644 --- a/src/wrapped/wrappedgstgl_private.h +++ b/src/wrapped/wrappedgstgl_private.h @@ -2,29 +2,29 @@ #error meh! #endif -//GO(gst_buffer_add_gl_sync_meta, +GO(gst_buffer_add_gl_sync_meta, pFpp) //GO(gst_buffer_add_gl_sync_meta_full, //GO(gst_buffer_pool_config_get_gl_allocation_params, //GO(gst_buffer_pool_config_set_gl_allocation_params, GO(gst_context_get_gl_display, iFpp) GO(gst_context_set_gl_display, vFpp) //GO(gst_egl_get_error_string, -//GO(gst_egl_image_export_dmabuf, +GO(gst_egl_image_export_dmabuf, iFpppp) //GO(gst_egl_image_from_dmabuf, //GO(gst_egl_image_from_dmabuf_direct, //GO(gst_egl_image_from_dmabuf_direct_target, -//GO(gst_egl_image_from_texture, +GO(gst_egl_image_from_texture, pFppp) //GO(gst_egl_image_get_image, -//GO(gst_egl_image_get_type, +GO(gst_egl_image_get_type, LFv) //GO(gst_egl_image_new_wrapped, //GO(gst_gl_allocation_params_copy, //GO(gst_gl_allocation_params_copy_data, -//GO(gst_gl_allocation_params_free, +GO(gst_gl_allocation_params_free, vFp) //GO(gst_gl_allocation_params_free_data, -//GO(gst_gl_allocation_params_get_type, +GO(gst_gl_allocation_params_get_type, LFv) //GO(gst_gl_allocation_params_init, GO(gst_gl_api_from_string, uFp) -//GO(gst_gl_api_get_type, +GO(gst_gl_api_get_type, LFv) GO(gst_gl_api_to_string, pFu) //GO(gst_gl_async_debug_free, //GO(gst_gl_async_debug_freeze, @@ -35,36 +35,36 @@ GO(gst_gl_api_to_string, pFu) //GO(gst_gl_async_debug_store_log_msg_valist, //GO(gst_gl_async_debug_thaw, //GO(gst_gl_async_debug_unset, -//GO(gst_gl_base_filter_find_gl_context, -//GO(gst_gl_base_filter_get_gl_context, -//GO(gst_gl_base_filter_get_type, -//GO(gst_gl_base_memory_alloc, -//GO(gst_gl_base_memory_allocator_get_type, +GO(gst_gl_base_filter_find_gl_context, iFp) +GO(gst_gl_base_filter_get_gl_context, pFp) +GO(gst_gl_base_filter_get_type, LFv) +GO(gst_gl_base_memory_alloc, pFpp) +GO(gst_gl_base_memory_allocator_get_type, LFv) //GO(gst_gl_base_memory_alloc_data, -//GO(gst_gl_base_memory_error_get_type, +GO(gst_gl_base_memory_error_get_type, LFv) GO(gst_gl_base_memory_error_quark, uFv) -//GO(gst_gl_base_memory_get_type, +GO(gst_gl_base_memory_get_type, LFv) //GO(gst_gl_base_memory_init, //GO(gst_gl_base_memory_init_once, //GO(gst_gl_base_memory_memcpy, -//GO(gst_gl_base_memory_transfer_get_type, -//GO(gst_gl_base_src_get_type, -//GO(gst_gl_buffer_allocation_params_get_type, +GO(gst_gl_base_memory_transfer_get_type, LFv) +GO(gst_gl_base_src_get_type, LFv) +GO(gst_gl_buffer_allocation_params_get_type, LFv) //GO(gst_gl_buffer_allocation_params_new, -//GO(gst_gl_buffer_allocator_get_type, -//GO(gst_gl_buffer_get_type, +GO(gst_gl_buffer_allocator_get_type, LFv) +GO(gst_gl_buffer_get_type, LFv) //GO(gst_gl_buffer_init_once, //GO(gst_gl_buffer_pool_get_gl_allocation_params, -//GO(gst_gl_buffer_pool_get_type, -//GO(gst_gl_buffer_pool_new, +GO(gst_gl_buffer_pool_get_type, LFv) +GO(gst_gl_buffer_pool_new, pFp) GO(gst_gl_check_extension, iFpp) -//GO(gst_gl_color_convert_decide_allocation, -//GO(gst_gl_color_convert_fixate_caps, -//GO(gst_gl_color_convert_get_type, -//GO(gst_gl_color_convert_new, -//GO(gst_gl_color_convert_perform, -//GO(gst_gl_color_convert_set_caps, -//GO(gst_gl_color_convert_transform_caps, +GO(gst_gl_color_convert_decide_allocation, iFpp) +GO(gst_gl_color_convert_fixate_caps, pFpipp) +GO(gst_gl_color_convert_get_type, LFv) +GO(gst_gl_color_convert_new, pFp) +GO(gst_gl_color_convert_perform, pFpp) +GO(gst_gl_color_convert_set_caps, iFppp) +GO(gst_gl_color_convert_transform_caps, pFpipp) //DATA(GST_GL_CONFIG_ATTRIB_ALPHA_SIZE_NAME, //DATA(GST_GL_CONFIG_ATTRIB_BLUE_SIZE_NAME, //DATA(GST_GL_CONFIG_ATTRIB_CAVEAT_NAME, @@ -88,38 +88,38 @@ GO(gst_gl_check_extension, iFpp) //DATA(GST_GL_CONFIG_ATTRIB_SAMPLES_NAME, //DATA(GST_GL_CONFIG_ATTRIB_STENCIL_SIZE_NAME, //DATA(GST_GL_CONFIG_ATTRIB_SURFACE_TYPE_NAME, -//GO(gst_gl_config_caveat_get_type, +GO(gst_gl_config_caveat_get_type, LFv) GO(gst_gl_config_caveat_to_string, pFu) -//GO(gst_gl_config_surface_type_get_type, +GO(gst_gl_config_surface_type_get_type, LFv) GO(gst_gl_config_surface_type_to_string, pFu) //GO(gst_gl_context_activate, //GO(gst_gl_context_can_share, //GO(gst_gl_context_check_feature, //GO(gst_gl_context_check_framebuffer_status, -//GO(gst_gl_context_check_gl_version, +GO(gst_gl_context_check_gl_version, iFpiii) //GO(gst_gl_context_clear_framebuffer, -//GO(gst_gl_context_clear_shader, +GO(gst_gl_context_clear_shader, vFp) //GO(gst_gl_context_create, -GO(gst_gl_context_default_get_proc_address, pFup) +GOM(gst_gl_context_default_get_proc_address, pFEup) //GO(gst_gl_context_destroy, -//GO(gst_gl_context_error_get_type, +GO(gst_gl_context_error_get_type, LFv) //GO(gst_gl_context_error_quark, //GO(gst_gl_context_fill_info, //GO(gst_gl_context_get_config, -//GO(gst_gl_context_get_current, +GO(gst_gl_context_get_current, pFv) GO(gst_gl_context_get_current_gl_api, uFupp) GO(gst_gl_context_get_current_gl_context, LFu) //GO(gst_gl_context_get_display, -//GO(gst_gl_context_get_gl_api, +GO(gst_gl_context_get_gl_api, iFp) //GO(gst_gl_context_get_gl_context, -//GO(gst_gl_context_get_gl_platform, +GO(gst_gl_context_get_gl_platform, iFp) //GO(gst_gl_context_get_gl_platform_version, //GO(gst_gl_context_get_gl_version, //GO(gst_gl_context_get_proc_address, -GO(gst_gl_context_get_proc_address_with_platform, pFuup) +GOM(gst_gl_context_get_proc_address_with_platform, pFEuup) //GO(gst_gl_context_get_thread, -//GO(gst_gl_context_get_type, -//GO(gst_gl_context_get_window, +GO(gst_gl_context_get_type, LFv) +GO(gst_gl_context_get_window, pFp) //GO(gst_gl_context_is_shared, //GO(gst_gl_context_new, //GO(gst_gl_context_new_wrapped, @@ -130,100 +130,100 @@ GO(gst_gl_context_get_proc_address_with_platform, pFuup) //GO(gst_gl_context_supports_precision, //GO(gst_gl_context_supports_precision_highp, //GO(gst_gl_context_swap_buffers, -//GO(gst_gl_context_thread_add, +GOM(gst_gl_context_thread_add, vFEppp) GO(gst_gl_display_add_context, iFpp) GO(gst_gl_display_create_context, iFpppp) //GO(gst_gl_display_create_window, -//GO(gst_gl_display_egl_device_get_type, +GO(gst_gl_display_egl_device_get_type, LFv) //GO(gst_gl_display_egl_device_new, //GO(gst_gl_display_egl_device_new_with_egl_device, //GO(gst_gl_display_egl_from_gl_display, //GO(gst_gl_display_egl_get_from_native, -//GO(gst_gl_display_egl_get_type, +GO(gst_gl_display_egl_get_type, LFv) //GO(gst_gl_display_egl_new, //GO(gst_gl_display_egl_new_with_egl_display, -//GO(gst_gl_display_filter_gl_api, +GO(gst_gl_display_filter_gl_api, vFpi) //GO(gst_gl_display_find_window, //GO(gst_gl_display_get_gl_api, //GO(gst_gl_display_get_gl_api_unlocked, -//GO(gst_gl_display_get_gl_context_for_thread, +GO(gst_gl_display_get_gl_context_for_thread, pFpp) //GO(gst_gl_display_get_handle, //GO(gst_gl_display_get_handle_type, -//GO(gst_gl_display_get_type, +GO(gst_gl_display_get_type, LFv) GO(gst_gl_display_new, pFv) GO(gst_gl_display_new_with_type, pFi) //GO(gst_gl_display_remove_context, //GO(gst_gl_display_remove_window, //GO(gst_gl_display_retrieve_window, -//GO(gst_gl_display_type_get_type, -//GO(gst_gl_display_wayland_get_type, +GO(gst_gl_display_type_get_type, LFv) +GO(gst_gl_display_wayland_get_type, LFv) //GO(gst_gl_display_wayland_new, //GO(gst_gl_display_wayland_new_with_display, -//GO(gst_gl_display_x11_get_type, +GO(gst_gl_display_x11_get_type, LFv) //GO(gst_gl_display_x11_new, //GO(gst_gl_display_x11_new_with_display, //GO(gst_gl_element_propagate_display_context, GO(gst_gl_ensure_element_data, iFppp) -//GO(gst_gl_filter_add_rgba_pad_templates, -//GO(gst_gl_filter_draw_fullscreen_quad, -//GO(gst_gl_filter_filter_texture, -//GO(gst_gl_filter_get_type, -//GO(gst_gl_filter_render_to_target, -//GO(gst_gl_filter_render_to_target_with_shader, +GO(gst_gl_filter_add_rgba_pad_templates, vFp) +GO(gst_gl_filter_draw_fullscreen_quad, vFp) +GO(gst_gl_filter_filter_texture, iFppp) +GO(gst_gl_filter_get_type, LFv) +GOM(gst_gl_filter_render_to_target, iFEppppp) +GO(gst_gl_filter_render_to_target_with_shader, vFpppp) //GO(gst_gl_format_from_video_info, -//GO(gst_gl_format_get_type, +GO(gst_gl_format_get_type, LFv) //GO(gst_gl_format_is_supported, GO(gst_gl_format_type_from_sized_gl_format, vFupp) GO(gst_gl_format_type_n_bytes, uFuu) //GO(gst_gl_framebuffer_attach, //GO(gst_gl_framebuffer_bind, -//GO(gst_gl_framebuffer_draw_to_texture, +GOM(gst_gl_framebuffer_draw_to_texture, iFEpppp) GO(gst_gl_framebuffer_get_effective_dimensions, vFppp) GO(gst_gl_framebuffer_get_id, uFp) -//GO(gst_gl_framebuffer_get_type, +GO(gst_gl_framebuffer_get_type, LFv) //GO(gst_gl_framebuffer_new, -//GO(gst_gl_framebuffer_new_with_default_depth, -//GO(gst_gl_get_affine_transformation_meta_as_ndc, +GO(gst_gl_framebuffer_new_with_default_depth, pFpuu) +GO(gst_gl_get_affine_transformation_meta_as_ndc, vFpp) //GO(gst_gl_get_plane_data_size, //GO(gst_gl_get_plane_start, -//GO(gst_gl_handle_context_query, +GO(gst_gl_handle_context_query, iFppppp) GO(gst_gl_handle_set_context, iFpppp) -//GO(gst_gl_insert_debug_marker, +GOM(gst_gl_insert_debug_marker, vFppV) //GO(gst_gl_memory_allocator_get_default, -//GO(gst_gl_memory_allocator_get_type, +GO(gst_gl_memory_allocator_get_type, LFv) //GO(gst_gl_memory_copy_into, //GO(gst_gl_memory_copy_teximage, -//GO(gst_gl_memory_egl_allocator_get_type, +GO(gst_gl_memory_egl_allocator_get_type, LFv) //GO(gst_gl_memory_egl_get_display, //GO(gst_gl_memory_egl_get_image, -//GO(gst_gl_memory_egl_get_type, +GO(gst_gl_memory_egl_get_type, LFv) //GO(gst_gl_memory_egl_init_once, //GO(gst_gl_memory_get_texture_format, -//GO(gst_gl_memory_get_texture_height, -//GO(gst_gl_memory_get_texture_id, -//GO(gst_gl_memory_get_texture_target, -//GO(gst_gl_memory_get_texture_width, -//GO(gst_gl_memory_get_type, +GO(gst_gl_memory_get_texture_height, iFp) +GO(gst_gl_memory_get_texture_id, uFp) +GO(gst_gl_memory_get_texture_target, iFp) +GO(gst_gl_memory_get_texture_width, iFp) +GO(gst_gl_memory_get_type, LFv) //GO(gst_gl_memory_init, //GO(gst_gl_memory_init_once, -//GO(gst_gl_memory_pbo_allocator_get_type, +GO(gst_gl_memory_pbo_allocator_get_type, LFv) //GO(gst_gl_memory_pbo_copy_into_texture, -//GO(gst_gl_memory_pbo_download_transfer, -//GO(gst_gl_memory_pbo_get_type, +GO(gst_gl_memory_pbo_download_transfer, vFp) +GO(gst_gl_memory_pbo_get_type, LFv) //GO(gst_gl_memory_pbo_init_once, //GO(gst_gl_memory_pbo_upload_transfer, //GO(gst_gl_memory_read_pixels, //GO(gst_gl_memory_setup_buffer, //GO(gst_gl_memory_texsubimage, GO(gst_gl_multiply_matrix4, vFppp) -//GO(gst_gl_overlay_compositor_add_caps, -//GO(gst_gl_overlay_compositor_draw_overlays, -//GO(gst_gl_overlay_compositor_free_overlays, +GO(gst_gl_overlay_compositor_add_caps, pFp) +GO(gst_gl_overlay_compositor_draw_overlays, vFp) +GO(gst_gl_overlay_compositor_free_overlays, vFp) GO(gst_gl_overlay_compositor_get_type, LFv) -//GO(gst_gl_overlay_compositor_new, -//GO(gst_gl_overlay_compositor_upload_overlays, +GO(gst_gl_overlay_compositor_new, pFp) +GO(gst_gl_overlay_compositor_upload_overlays, vFpp) GO(gst_gl_platform_from_string, uFp) -//GO(gst_gl_platform_get_type, +GO(gst_gl_platform_get_type, LFv) GO(gst_gl_platform_to_string, pFu) //GO(gst_gl_query_counter, //GO(gst_gl_query_end, @@ -233,39 +233,39 @@ GO(gst_gl_query_local_gl_context, iFpup) //GO(gst_gl_query_new, //GO(gst_gl_query_result, //GO(gst_gl_query_start, -//GO(gst_gl_query_type_get_type, +GO(gst_gl_query_type_get_type, LFv) //GO(gst_gl_query_unset, -//GO(gst_gl_renderbuffer_allocation_params_get_type, +GO(gst_gl_renderbuffer_allocation_params_get_type, LFv) //GO(gst_gl_renderbuffer_allocation_params_new, //GO(gst_gl_renderbuffer_allocation_params_new_wrapped, -//GO(gst_gl_renderbuffer_allocator_get_type, +GO(gst_gl_renderbuffer_allocator_get_type, LFv) //GO(gst_gl_renderbuffer_get_format, //GO(gst_gl_renderbuffer_get_height, //GO(gst_gl_renderbuffer_get_id, -//GO(gst_gl_renderbuffer_get_type, +GO(gst_gl_renderbuffer_get_type, LFv) //GO(gst_gl_renderbuffer_get_width, GO(gst_gl_renderbuffer_init_once, vFv) -//GO(gst_gl_set_affine_transformation_meta_from_ndc, -//GO(gst_gl_shader_attach, -//GO(gst_gl_shader_attach_unlocked, -//GO(gst_gl_shader_bind_attribute_location, +GO(gst_gl_set_affine_transformation_meta_from_ndc, vFpp) +GO(gst_gl_shader_attach, iFpp) +GO(gst_gl_shader_attach_unlocked, iFpp) +GO(gst_gl_shader_bind_attribute_location, vFpup) GO(gst_gl_shader_bind_frag_data_location, vFpup) -//GO(gst_gl_shader_compile_attach_stage, -//GO(gst_gl_shader_detach, -//GO(gst_gl_shader_detach_unlocked, +GO(gst_gl_shader_compile_attach_stage, iFppp) +GO(gst_gl_shader_detach, vFpp) +GO(gst_gl_shader_detach_unlocked, vFpp) GO(gst_gl_shader_get_attribute_location, iFpp) GO(gst_gl_shader_get_program_handle, iFp) -//GO(gst_gl_shader_get_type, +GO(gst_gl_shader_get_type, LFv) GO(gst_gl_shader_is_linked, iFp) GO(gst_gl_shader_link, iFpp) -//GO(gst_gl_shader_new, -//GO(gst_gl_shader_new_default, -//GO(gst_gl_shader_new_link_with_stages, -//GO(gst_gl_shader_new_with_stages, +GO(gst_gl_shader_new, pFp) +GO(gst_gl_shader_new_default, pFpp) +GO(gst_gl_shader_new_link_with_stages, pFpppppppppppp) //vaargs +GO(gst_gl_shader_new_with_stages, pFpppppppppppp) //vaarg //GO(gst_gl_shader_release, //GO(gst_gl_shader_release_unlocked, GO(gst_gl_shader_set_uniform_1f, vFppf) -//GO(gst_gl_shader_set_uniform_1fv, +GO(gst_gl_shader_set_uniform_1fv, vFppup) GO(gst_gl_shader_set_uniform_1i, vFppi) //GO(gst_gl_shader_set_uniform_1iv, GO(gst_gl_shader_set_uniform_2f, vFppff) @@ -286,121 +286,121 @@ GO(gst_gl_shader_set_uniform_4iv, vFppup) //GO(gst_gl_shader_set_uniform_matrix_3fv, //GO(gst_gl_shader_set_uniform_matrix_3x2fv, //GO(gst_gl_shader_set_uniform_matrix_3x4fv, -//GO(gst_gl_shader_set_uniform_matrix_4fv, +GO(gst_gl_shader_set_uniform_matrix_4fv, vFppiip) //GO(gst_gl_shader_set_uniform_matrix_4x2fv, GO(gst_gl_shader_set_uniform_matrix_4x3fv, vFppiip) //DATA(gst_gl_shader_string_fragment_default, //DATA(gst_gl_shader_string_fragment_external_oes_default, -//GO(gst_gl_shader_string_fragment_external_oes_get_default, -//GO(gst_gl_shader_string_fragment_get_default, -//DATA(gst_gl_shader_string_fragment_highp_precision, -//DATA(gst_gl_shader_string_fragment_mediump_precision, -//GO(gst_gl_shader_string_get_highest_precision, -//DATA(gst_gl_shader_string_vertex_default, -//DATA(gst_gl_shader_string_vertex_mat4_texture_transform, -//DATA(gst_gl_shader_string_vertex_mat4_vertex_transform, +GO(gst_gl_shader_string_fragment_external_oes_get_default, pFpii) +GO(gst_gl_shader_string_fragment_get_default, pFpii) +DATA(gst_gl_shader_string_fragment_highp_precision, sizeof(void*)) +DATA(gst_gl_shader_string_fragment_mediump_precision, sizeof(void*)) +GO(gst_gl_shader_string_get_highest_precision, pFpii) +DATA(gst_gl_shader_string_vertex_default, sizeof(void*)) +DATA(gst_gl_shader_string_vertex_mat4_texture_transform, sizeof(void*)) +DATA(gst_gl_shader_string_vertex_mat4_vertex_transform, sizeof(void*)) GO(gst_gl_shader_use, vFp) //GO(gst_gl_sized_gl_format_from_gl_format_type, -//GO(gst_glsl_error_get_type, -//GO(gst_glsl_error_quark, +GO(gst_glsl_error_get_type, LFv) +GO(gst_glsl_error_quark, pFv) GO(gst_glsl_profile_from_string, iFp) -//GO(gst_glsl_profile_get_type, +GO(gst_glsl_profile_get_type, LFv) GO(gst_glsl_profile_to_string, pFi) -//GO(gst_glsl_stage_compile, +GO(gst_glsl_stage_compile, iFpp) //GO(gst_glsl_stage_get_handle, //GO(gst_glsl_stage_get_profile, //GO(gst_glsl_stage_get_shader_type, -//GO(gst_glsl_stage_get_type, +GO(gst_glsl_stage_get_type, LFv) //GO(gst_glsl_stage_get_version, //GO(gst_glsl_stage_new, -//GO(gst_glsl_stage_new_default_fragment, -//GO(gst_glsl_stage_new_default_vertex, -//GO(gst_glsl_stage_new_with_string, -//GO(gst_glsl_stage_new_with_strings, +GO(gst_glsl_stage_new_default_fragment, pFp) +GO(gst_glsl_stage_new_default_vertex, pFp) +GO(gst_glsl_stage_new_with_string, pFpuiip) +GO(gst_glsl_stage_new_with_strings, pFpuiiip) //GO(gst_glsl_stage_set_strings, GO(gst_glsl_string_get_version_profile, iFppp) GO(gst_glsl_version_from_string, uFp) -//GO(gst_glsl_version_get_type, +GO(gst_glsl_version_get_type, LFv) //GO(gst_glsl_version_profile_from_string, GO(gst_glsl_version_profile_to_string, pFui) GO(gst_glsl_version_to_string, pFu) -//GO(gst_gl_stereo_downmix_get_type, -//GO(gst_gl_stereo_downmix_mode_get_type, -//GO(gst_gl_sync_meta_api_get_type, +GO(gst_gl_stereo_downmix_get_type, LFv) +GO(gst_gl_stereo_downmix_mode_get_type, LFv) +GO(gst_gl_sync_meta_api_get_type, LFv) //GO(gst_gl_sync_meta_get_info, -//GO(gst_gl_sync_meta_set_sync_point, -//GO(gst_gl_sync_meta_wait, -//GO(gst_gl_sync_meta_wait_cpu, +GO(gst_gl_sync_meta_set_sync_point, vFpp) +GO(gst_gl_sync_meta_wait, vFpp) +GO(gst_gl_sync_meta_wait_cpu, vFpp) GO(gst_gl_texture_target_from_gl, uFu) GO(gst_gl_texture_target_from_string, uFp) -//GO(gst_gl_texture_target_get_type, +GO(gst_gl_texture_target_get_type, LFv) GO(gst_gl_texture_target_to_buffer_pool_option, pFu) GO(gst_gl_texture_target_to_gl, uFu) -//GO(gst_gl_texture_target_to_string, -//GO(gst_gl_upload_get_caps, -//GO(gst_gl_upload_get_input_template_caps, -//GO(gst_gl_upload_get_type, -//GO(gst_gl_upload_new, -//GO(gst_gl_upload_perform_with_buffer, -//GO(gst_gl_upload_propose_allocation, -//GO(gst_gl_upload_return_get_type, -//GO(gst_gl_upload_set_caps, -//GO(gst_gl_upload_set_context, -//GO(gst_gl_upload_transform_caps, +GO(gst_gl_texture_target_to_string, pFi) +GO(gst_gl_upload_get_caps, vFppp) +GO(gst_gl_upload_get_input_template_caps, pFv) +GO(gst_gl_upload_get_type, LFv) +GO(gst_gl_upload_new, pFp) +GO(gst_gl_upload_perform_with_buffer, iFppp) +GO(gst_gl_upload_propose_allocation, vFppp) +GO(gst_gl_upload_return_get_type, LFv) +GO(gst_gl_upload_set_caps, iFppp) +GO(gst_gl_upload_set_context, vFpp) +GO(gst_gl_upload_transform_caps, pFppipp) GO(gst_gl_value_get_texture_target_mask, uFp) GO(gst_gl_value_set_texture_target, iFpu) //GO(gst_gl_value_set_texture_target_from_mask, GO(gst_gl_version_to_glsl_version, uFuii) //GO(gst_gl_video_allocation_params_copy_data, //GO(gst_gl_video_allocation_params_free_data, -//GO(gst_gl_video_allocation_params_get_type, +GO(gst_gl_video_allocation_params_get_type, LFv) //GO(gst_gl_video_allocation_params_init_full, -//GO(gst_gl_video_allocation_params_new, +GO(gst_gl_video_allocation_params_new, pFpppupii) //GO(gst_gl_video_allocation_params_new_wrapped_data, //GO(gst_gl_video_allocation_params_new_wrapped_gl_handle, //GO(gst_gl_video_allocation_params_new_wrapped_texture, -//GO(gst_gl_view_convert_fixate_caps, -//GO(gst_gl_view_convert_get_output, -//GO(gst_gl_view_convert_get_type, -//GO(gst_gl_view_convert_new, -//GO(gst_gl_view_convert_perform, -//GO(gst_gl_view_convert_reset, -//GO(gst_gl_view_convert_set_caps, -//GO(gst_gl_view_convert_set_context, -//GO(gst_gl_view_convert_submit_input_buffer, -//GO(gst_gl_view_convert_transform_caps, -//GO(gst_gl_window_controls_viewport, -//GO(gst_gl_window_draw, -//GO(gst_gl_window_error_get_type, -//GO(gst_gl_window_error_quark, +GO(gst_gl_view_convert_fixate_caps, pFpipp) +GO(gst_gl_view_convert_get_output, iFpp) +GO(gst_gl_view_convert_get_type, LFv) +GO(gst_gl_view_convert_new, pFv) +GO(gst_gl_view_convert_perform, pFpp) +GO(gst_gl_view_convert_reset, vFp) +GO(gst_gl_view_convert_set_caps, iFppp) +GO(gst_gl_view_convert_set_context, vFpp) +GO(gst_gl_view_convert_submit_input_buffer, iFpip) +GO(gst_gl_view_convert_transform_caps, pFpipp) +GO(gst_gl_window_controls_viewport, iFp) +GO(gst_gl_window_draw, iFp) +GO(gst_gl_window_error_get_type, LFv) +GO(gst_gl_window_error_quark, pFv) //GO(gst_gl_window_get_context, //GO(gst_gl_window_get_display, -//GO(gst_gl_window_get_surface_dimensions, -//GO(gst_gl_window_get_type, +GO(gst_gl_window_get_surface_dimensions, vFppp) +GO(gst_gl_window_get_type, LFv) //GO(gst_gl_window_get_window_handle, -//GO(gst_gl_window_handle_events, +GO(gst_gl_window_handle_events, vFpi) //GO(gst_gl_window_has_output_surface, //GO(gst_gl_window_new, -//GO(gst_gl_window_queue_resize, +GO(gst_gl_window_queue_resize, vFp) //GO(gst_gl_window_quit, //GO(gst_gl_window_resize, //GO(gst_gl_window_run, //GO(gst_gl_window_send_key_event, -//GO(gst_gl_window_send_message, +GOM(gst_gl_window_send_message, vFEppp) //GO(gst_gl_window_send_message_async, //GO(gst_gl_window_send_mouse_event, //GO(gst_gl_window_send_scroll_event, -//GO(gst_gl_window_set_close_callback, -//GO(gst_gl_window_set_draw_callback, -//GO(gst_gl_window_set_preferred_size, -//GO(gst_gl_window_set_render_rectangle, -//GO(gst_gl_window_set_resize_callback, -//GO(gst_gl_window_set_window_handle, -//GO(gst_gl_window_show, +GOM(gst_gl_window_set_close_callback, vFEpppp) +GOM(gst_gl_window_set_draw_callback, vFEpppp) +GO(gst_gl_window_set_preferred_size, vFpii) +GO(gst_gl_window_set_render_rectangle, iFpiiii) +GOM(gst_gl_window_set_resize_callback, vFEpppp) +GO(gst_gl_window_set_window_handle, vFpL) +GO(gst_gl_window_show, vFp) //GO(gst_is_gl_base_memory, //GO(gst_is_gl_buffer, //GO(gst_is_gl_memory, //GO(gst_is_gl_memory_egl, -//GO(gst_is_gl_memory_pbo, +GO(gst_is_gl_memory_pbo, iFp) //GO(gst_is_gl_renderbuffer, diff --git a/src/wrapped/wrappedgstnet.c b/src/wrapped/wrappedgstnet.c new file mode 100644 index 00000000..68737bde --- /dev/null +++ b/src/wrapped/wrappedgstnet.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstnetName = "libgstnet-1.0.so.0"; +#define LIBNAME gstnet + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstnet_private.h b/src/wrapped/wrappedgstnet_private.h new file mode 100644 index 00000000..03a500cc --- /dev/null +++ b/src/wrapped/wrappedgstnet_private.h @@ -0,0 +1,33 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +//GO(gst_buffer_add_net_address_meta, +//GO(gst_buffer_add_net_control_message_meta, +//GO(gst_buffer_get_net_address_meta, +GO(gst_net_address_meta_api_get_type, LFv) +//GO(gst_net_address_meta_get_info, +GO(gst_net_client_clock_get_type, LFv) +//GO(gst_net_client_clock_new, +GO(gst_net_control_message_meta_api_get_type, LFv) +//GO(gst_net_control_message_meta_get_info, +//GO(gst_net_time_packet_copy, +//GO(gst_net_time_packet_free, +GO(gst_net_time_packet_get_type, LFv) +//GO(gst_net_time_packet_new, +//GO(gst_net_time_packet_receive, +//GO(gst_net_time_packet_send, +//GO(gst_net_time_packet_serialize, +GO(gst_net_time_provider_get_type, LFv) +//GO(gst_net_time_provider_new, +//GO(gst_net_utils_set_socket_tos, +GO(gst_ntp_clock_get_type, LFv) +//GO(gst_ntp_clock_new, +GO(gst_ptp_clock_get_type, LFv) +//GO(gst_ptp_clock_new, +//GO(gst_ptp_deinit, +//GO(gst_ptp_init, +//GO(gst_ptp_is_initialized, +//GO(gst_ptp_is_supported, +//GO(gst_ptp_statistics_callback_add, +//GO(gst_ptp_statistics_callback_remove, diff --git a/src/wrapped/wrappedgstpbutils.c b/src/wrapped/wrappedgstpbutils.c new file mode 100644 index 00000000..d3694646 --- /dev/null +++ b/src/wrapped/wrappedgstpbutils.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstpbutilsName = "libgstpbutils-1.0.so.0"; +#define LIBNAME gstpbutils + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstpbutils_private.h b/src/wrapped/wrappedgstpbutils_private.h new file mode 100644 index 00000000..3957627d --- /dev/null +++ b/src/wrapped/wrappedgstpbutils_private.h @@ -0,0 +1,195 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +GO(gst_audio_visualizer_get_type, LFv) +GO(gst_audio_visualizer_shader_get_type, LFv) +GO(gst_codec_utils_aac_caps_set_level_and_profile, iFppu) +//GO(gst_codec_utils_aac_get_channels, +//GO(gst_codec_utils_aac_get_index_from_sample_rate, +//GO(gst_codec_utils_aac_get_level, +//GO(gst_codec_utils_aac_get_profile, +//GO(gst_codec_utils_aac_get_sample_rate, +//GO(gst_codec_utils_aac_get_sample_rate_from_index, +//GO(gst_codec_utils_caps_from_mime_codec, +//GO(gst_codec_utils_caps_get_mime_codec, +GO(gst_codec_utils_h264_caps_set_level_and_profile, iFppu) +//GO(gst_codec_utils_h264_get_level, +//GO(gst_codec_utils_h264_get_level_idc, +//GO(gst_codec_utils_h264_get_profile, +//GO(gst_codec_utils_h264_get_profile_flags_level, +GO(gst_codec_utils_h265_caps_set_level_tier_and_profile, iFppu) +//GO(gst_codec_utils_h265_get_level, +//GO(gst_codec_utils_h265_get_level_idc, +//GO(gst_codec_utils_h265_get_profile, +//GO(gst_codec_utils_h265_get_tier, +GO(gst_codec_utils_mpeg4video_caps_set_level_and_profile, iFppu) +//GO(gst_codec_utils_mpeg4video_get_level, +//GO(gst_codec_utils_mpeg4video_get_profile, +GO(gst_codec_utils_opus_create_caps, pFuCCCCp) +GO(gst_codec_utils_opus_create_caps_from_header, pFpp) +GO(gst_codec_utils_opus_create_header, pFuCCCCpWw) +GO(gst_codec_utils_opus_parse_caps, iFppppppp) +//GO(gst_codec_utils_opus_parse_header, +//GO(gst_discoverer_audio_info_get_bitrate, +//GO(gst_discoverer_audio_info_get_channel_mask, +//GO(gst_discoverer_audio_info_get_channels, +//GO(gst_discoverer_audio_info_get_depth, +//GO(gst_discoverer_audio_info_get_language, +//GO(gst_discoverer_audio_info_get_max_bitrate, +//GO(gst_discoverer_audio_info_get_sample_rate, +GO(gst_discoverer_audio_info_get_type, LFv) +//GO(gst_discoverer_container_info_get_streams, +//GO(gst_discoverer_container_info_get_tags, +GO(gst_discoverer_container_info_get_type, LFv) +//GO(gst_discoverer_discover_uri, +//GO(gst_discoverer_discover_uri_async, +GO(gst_discoverer_get_type, LFv) +//GO(gst_discoverer_info_copy, +//GO(gst_discoverer_info_from_variant, +//GO(gst_discoverer_info_get_audio_streams, +//GO(gst_discoverer_info_get_container_streams, +//GO(gst_discoverer_info_get_duration, +//GO(gst_discoverer_info_get_live, +//GO(gst_discoverer_info_get_misc, +//GO(gst_discoverer_info_get_missing_elements_installer_details, +//GO(gst_discoverer_info_get_result, +//GO(gst_discoverer_info_get_seekable, +//GO(gst_discoverer_info_get_stream_info, +//GO(gst_discoverer_info_get_stream_list, +//GO(gst_discoverer_info_get_streams, +//GO(gst_discoverer_info_get_subtitle_streams, +//GO(gst_discoverer_info_get_tags, +//GO(gst_discoverer_info_get_toc, +GO(gst_discoverer_info_get_type, LFv) +//GO(gst_discoverer_info_get_uri, +//GO(gst_discoverer_info_get_video_streams, +//GO(gst_discoverer_info_to_variant, +//GO(gst_discoverer_new, +GO(gst_discoverer_result_get_type, LFv) +GO(gst_discoverer_serialize_flags_get_type, LFv) +//GO(gst_discoverer_start, +//GO(gst_discoverer_stop, +//GO(gst_discoverer_stream_info_get_caps, +//GO(gst_discoverer_stream_info_get_misc, +//GO(gst_discoverer_stream_info_get_next, +//GO(gst_discoverer_stream_info_get_previous, +//GO(gst_discoverer_stream_info_get_stream_id, +//GO(gst_discoverer_stream_info_get_stream_number, +//GO(gst_discoverer_stream_info_get_stream_type_nick, +//GO(gst_discoverer_stream_info_get_tags, +//GO(gst_discoverer_stream_info_get_toc, +GO(gst_discoverer_stream_info_get_type, LFv) +//GO(gst_discoverer_stream_info_list_free, +//GO(gst_discoverer_subtitle_info_get_language, +GO(gst_discoverer_subtitle_info_get_type, LFv) +//GO(gst_discoverer_video_info_get_bitrate, +//GO(gst_discoverer_video_info_get_depth, +//GO(gst_discoverer_video_info_get_framerate_denom, +//GO(gst_discoverer_video_info_get_framerate_num, +//GO(gst_discoverer_video_info_get_height, +//GO(gst_discoverer_video_info_get_max_bitrate, +//GO(gst_discoverer_video_info_get_par_denom, +//GO(gst_discoverer_video_info_get_par_num, +GO(gst_discoverer_video_info_get_type, LFv) +//GO(gst_discoverer_video_info_get_width, +//GO(gst_discoverer_video_info_is_image, +//GO(gst_discoverer_video_info_is_interlaced, +GO(gst_encoding_audio_profile_get_type, LFv) +//GO(gst_encoding_audio_profile_new, +//GO(gst_encoding_container_profile_add_profile, +//GO(gst_encoding_container_profile_contains_profile, +//GO(gst_encoding_container_profile_get_profiles, +GO(gst_encoding_container_profile_get_type, LFv) +//GO(gst_encoding_container_profile_new, +//GO(gst_encoding_list_all_targets, +//GO(gst_encoding_list_available_categories, +//GO(gst_encoding_profile_copy, +//GO(gst_encoding_profile_find, +//GO(gst_encoding_profile_from_discoverer, +//GO(gst_encoding_profile_get_allow_dynamic_output, +//GO(gst_encoding_profile_get_description, +//GO(gst_encoding_profile_get_element_properties, +//GO(gst_encoding_profile_get_file_extension, +//GO(gst_encoding_profile_get_format, +//GO(gst_encoding_profile_get_input_caps, +//GO(gst_encoding_profile_get_name, +//GO(gst_encoding_profile_get_presence, +//GO(gst_encoding_profile_get_preset, +//GO(gst_encoding_profile_get_preset_name, +//GO(gst_encoding_profile_get_restriction, +//GO(gst_encoding_profile_get_single_segment, +GO(gst_encoding_profile_get_type, LFv) +//GO(gst_encoding_profile_get_type_nick, +//GO(gst_encoding_profile_is_enabled, +//GO(gst_encoding_profile_is_equal, +//GO(gst_encoding_profile_set_allow_dynamic_output, +//GO(gst_encoding_profile_set_description, +//GO(gst_encoding_profile_set_element_properties, +//GO(gst_encoding_profile_set_enabled, +//GO(gst_encoding_profile_set_format, +//GO(gst_encoding_profile_set_name, +//GO(gst_encoding_profile_set_presence, +//GO(gst_encoding_profile_set_preset, +//GO(gst_encoding_profile_set_preset_name, +//GO(gst_encoding_profile_set_restriction, +//GO(gst_encoding_profile_set_single_segment, +//GO(gst_encoding_target_add_profile, +//GO(gst_encoding_target_get_category, +//GO(gst_encoding_target_get_description, +//GO(gst_encoding_target_get_name, +//GO(gst_encoding_target_get_path, +//GO(gst_encoding_target_get_profile, +//GO(gst_encoding_target_get_profiles, +GO(gst_encoding_target_get_type, LFv) +//GO(gst_encoding_target_load, +//GO(gst_encoding_target_load_from_file, +//GO(gst_encoding_target_new, +//GO(gst_encoding_target_save, +//GO(gst_encoding_target_save_to_file, +//GO(gst_encoding_video_profile_get_pass, +GO(gst_encoding_video_profile_get_type, LFv) +//GO(gst_encoding_video_profile_get_variableframerate, +//GO(gst_encoding_video_profile_new, +//GO(gst_encoding_video_profile_set_pass, +//GO(gst_encoding_video_profile_set_variableframerate, +//GO(gst_install_plugins_async, +//GO(gst_install_plugins_context_copy, +//GO(gst_install_plugins_context_free, +GO(gst_install_plugins_context_get_type, LFv) +//GO(gst_install_plugins_context_new, +//GO(gst_install_plugins_context_set_confirm_search, +//GO(gst_install_plugins_context_set_desktop_id, +//GO(gst_install_plugins_context_set_startup_notification_id, +//GO(gst_install_plugins_context_set_xid, +//GO(gst_install_plugins_installation_in_progress, +//GO(gst_install_plugins_return_get_name, +GO(gst_install_plugins_return_get_type, LFv) +//GO(gst_install_plugins_supported, +//GO(gst_install_plugins_sync, +//GO(gst_is_missing_plugin_message, +//GO(gst_missing_decoder_installer_detail_new, +//GO(gst_missing_decoder_message_new, +//GO(gst_missing_element_installer_detail_new, +//GO(gst_missing_element_message_new, +//GO(gst_missing_encoder_installer_detail_new, +//GO(gst_missing_encoder_message_new, +//GO(gst_missing_plugin_message_get_description, +//GO(gst_missing_plugin_message_get_installer_detail, +//GO(gst_missing_uri_sink_installer_detail_new, +//GO(gst_missing_uri_sink_message_new, +//GO(gst_missing_uri_source_installer_detail_new, +//GO(gst_missing_uri_source_message_new, +GO(gst_pb_utils_add_codec_description_to_tag_list, iFppp) +GO(gst_pb_utils_caps_description_flags_get_type, LFv) +//GO(gst_pb_utils_get_caps_description_flags, +GO(gst_pb_utils_get_codec_description, pFp) +//GO(gst_pb_utils_get_decoder_description, +//GO(gst_pb_utils_get_element_description, +//GO(gst_pb_utils_get_encoder_description, +//GO(gst_pb_utils_get_file_extension_from_caps, +//GO(gst_pb_utils_get_sink_description, +//GO(gst_pb_utils_get_source_description, +GO(gst_pb_utils_init, vFv) +//GO(gst_plugins_base_version, +//GO(gst_plugins_base_version_string, diff --git a/src/wrapped/wrappedgstreamer.c b/src/wrapped/wrappedgstreamer.c index 2f682b34..cb51b192 100644 --- a/src/wrapped/wrappedgstreamer.c +++ b/src/wrapped/wrappedgstreamer.c @@ -1,8 +1,9 @@ +#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <stdio.h> #include <stdlib.h> #include <string.h> -#define _GNU_SOURCE /* See feature_test_macros(7) */ #include <dlfcn.h> +#include <dirent.h> #include "wrappedlibs.h" @@ -23,6 +24,7 @@ const char* gstreamerName = "libgstreamer-1.0.so.0"; #define LIBNAME gstreamer +typedef void (*vFv_t)(); typedef void* (*pFppA_t)(void*, void*, va_list); typedef void* (*pFv_t)(); typedef size_t (*LFv_t)(); @@ -30,11 +32,22 @@ typedef void* (*pFp_t)(void*); typedef void (*vFpp_t)(void*, void*); typedef int (*iFpp_t)(void*, void*); +void* my_dlopen(x64emu_t* emu, void *filename, int flag); +int my_dlclose(x64emu_t* emu, void *handle); +void* my_dlsym(x64emu_t* emu, void *handle, void *symbol); + +#ifndef MAX_PATH +#define MAX_PATH 4096 +#endif + #define ADDED_FUNCTIONS() \ GO(gst_object_get_type, LFv_t) \ GO(gst_allocator_get_type, LFv_t) \ GO(gst_task_pool_get_type, LFv_t) \ - GO(gst_structure_new_valist, pFppA_t) \ + GO(gst_element_get_type, LFv_t) \ + GO(gst_bin_get_type, LFv_t) \ + GO(gst_pad_get_type, LFv_t) \ + GO(gst_uri_handler_get_type, LFv_t) \ GO(gst_structure_new_empty, pFp_t) \ GO(gst_caps_new_empty, pFv_t) \ GO(gst_caps_replace, iFpp_t) \ @@ -42,6 +55,26 @@ typedef int (*iFpp_t)(void*, void*); GO(gst_bin_add, iFpp_t) \ GO(gst_element_link, iFpp_t) \ +typedef struct my_gst_plugin_s { + void* handle; + int is_native; +} my_gst_plugin_t; + +#define ADDED_STRUCT() \ + int plugin_cnt; \ + int plugin_cap; \ + my_gst_plugin_t* plugins; \ + +#define ADDED_FINI() \ + for(int i=0; i<my->plugin_cnt; ++i) { \ + if(my->plugins[i].is_native) \ + dlclose(my->plugins[i].handle); \ + else \ + my_dlclose(thread_get_emu(), my->plugins[i].handle); \ + } \ + if(my->plugins) box_free(my->plugins); \ + + #include "generated/wrappedgstreamertypes.h" #include "wrappercallback.h" @@ -51,6 +84,15 @@ GO(0) \ GO(1) \ GO(2) \ GO(3) \ +GO(4) \ +GO(5) \ +GO(6) \ +GO(7) \ +GO(8) \ +GO(9) \ +GO(10) \ +GO(11) \ +GO(12) \ // GDestroyFunc ... #define GO(A) \ @@ -275,6 +317,272 @@ static void* findGstCapsFilterMapFuncFct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstCapsFilterMapFunc callback\n"); return NULL; } +//GstPluginInit +#define GO(A) \ +static uintptr_t my_GstPluginInit_fct_##A = 0; \ +static int my_GstPluginInit_##A(void* a) \ +{ \ + return (int)RunFunctionFmt(my_GstPluginInit_fct_##A, "p", a); \ +} +SUPER() +#undef GO +static void* findGstPluginInitFct(void* fct) +{ + if(!fct) return fct; + #define GO(A) if(my_GstPluginInit_fct_##A == (uintptr_t)fct) return my_GstPluginInit_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstPluginInit_fct_##A == 0) {my_GstPluginInit_fct_##A = (uintptr_t)fct; return my_GstPluginInit_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPluginInit callback\n"); + return NULL; +} +//GstIteratorFoldFunction +#define GO(A) \ +static uintptr_t my_GstIteratorFoldFunction_fct_##A = 0; \ +static int my_GstIteratorFoldFunction_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GstIteratorFoldFunction_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstIteratorFoldFunctionFct(void* fct) +{ + if(!fct) return fct; + #define GO(A) if(my_GstIteratorFoldFunction_fct_##A == (uintptr_t)fct) return my_GstIteratorFoldFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstIteratorFoldFunction_fct_##A == 0) {my_GstIteratorFoldFunction_fct_##A = (uintptr_t)fct; return my_GstIteratorFoldFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstIteratorFoldFunction callback\n"); + return NULL; +} +//GCompareDataFunc +#define GO(A) \ +static uintptr_t my_GCompareDataFunc_fct_##A = 0; \ +static int my_GCompareDataFunc_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GCompareDataFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGCompareDataFuncFct(void* fct) +{ + if(!fct) return fct; + #define GO(A) if(my_GCompareDataFunc_fct_##A == (uintptr_t)fct) return my_GCompareDataFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GCompareDataFunc_fct_##A == 0) {my_GCompareDataFunc_fct_##A = (uintptr_t)fct; return my_GCompareDataFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GCompareDataFunc callback\n"); + return NULL; +} +//GstTaskFunction +#define GO(A) \ +static uintptr_t my_GstTaskFunction_fct_##A = 0; \ +static void my_GstTaskFunction_##A(void* a) \ +{ \ + RunFunctionFmt(my_GstTaskFunction_fct_##A, "p", a); \ +} +SUPER() +#undef GO +static void* findGstTaskFunctionFct(void* fct) +{ + if(!fct) return fct; + #define GO(A) if(my_GstTaskFunction_fct_##A == (uintptr_t)fct) return my_GstTaskFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstTaskFunction_fct_##A == 0) {my_GstTaskFunction_fct_##A = (uintptr_t)fct; return my_GstTaskFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstTaskFunction callback\n"); + return NULL; +} +//GstTagForeachFunc +#define GO(A) \ +static uintptr_t my_GstTagForeachFunc_fct_##A = 0; \ +static void my_GstTagForeachFunc_##A(void* a, void* b, void* c) \ +{ \ + RunFunctionFmt(my_GstTagForeachFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstTagForeachFuncFct(void* fct) +{ + if(!fct) return fct; + #define GO(A) if(my_GstTagForeachFunc_fct_##A == (uintptr_t)fct) return my_GstTagForeachFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstTagForeachFunc_fct_##A == 0) {my_GstTagForeachFunc_fct_##A = (uintptr_t)fct; return my_GstTagForeachFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstTagForeachFunc callback\n"); + return NULL; +} +//GstPadActivateFunction +#define GO(A) \ +static uintptr_t my_GstPadActivateFunction_fct_##A = 0; \ +static int my_GstPadActivateFunction_##A(void* a, void* b) \ +{ \ + return (int)RunFunctionFmt(my_GstPadActivateFunction_fct_##A, "pp", a, b); \ +} +SUPER() +#undef GO +static void* findGstPadActivateFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstPadActivateFunction_fct_##A == (uintptr_t)fct) return my_GstPadActivateFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstPadActivateFunction_fct_##A == 0) {my_GstPadActivateFunction_fct_##A = (uintptr_t)fct; return my_GstPadActivateFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPadActivateFunction callback\n"); + return NULL; +} +//GstPadProbeCallback +#define GO(A) \ +static uintptr_t my_GstPadProbeCallback_fct_##A = 0; \ +static int my_GstPadProbeCallback_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GstPadProbeCallback_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstPadProbeCallbackFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstPadProbeCallback_fct_##A == (uintptr_t)fct) return my_GstPadProbeCallback_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstPadProbeCallback_fct_##A == 0) {my_GstPadProbeCallback_fct_##A = (uintptr_t)fct; return my_GstPadProbeCallback_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPadProbeCallback callback\n"); + return NULL; +} +//GstStructureForeachFunc +#define GO(A) \ +static uintptr_t my_GstStructureForeachFunc_fct_##A = 0; \ +static int my_GstStructureForeachFunc_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GstStructureForeachFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstStructureForeachFuncFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstStructureForeachFunc_fct_##A == (uintptr_t)fct) return my_GstStructureForeachFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstStructureForeachFunc_fct_##A == 0) {my_GstStructureForeachFunc_fct_##A = (uintptr_t)fct; return my_GstStructureForeachFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstStructureForeachFunc callback\n"); + return NULL; +} +//GstPadLinkFunction +#define GO(A) \ +static uintptr_t my_GstPadLinkFunction_fct_##A = 0; \ +static int my_GstPadLinkFunction_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GstPadLinkFunction_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstPadLinkFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstPadLinkFunction_fct_##A == (uintptr_t)fct) return my_GstPadLinkFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstPadLinkFunction_fct_##A == 0) {my_GstPadLinkFunction_fct_##A = (uintptr_t)fct; return my_GstPadLinkFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstPadLinkFunction callback\n"); + return NULL; +} +//GstStructureFilterMapFunc +#define GO(A) \ +static uintptr_t my_GstStructureFilterMapFunc_fct_##A = 0; \ +static int my_GstStructureFilterMapFunc_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GstStructureFilterMapFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstStructureFilterMapFuncFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstStructureFilterMapFunc_fct_##A == (uintptr_t)fct) return my_GstStructureFilterMapFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstStructureFilterMapFunc_fct_##A == 0) {my_GstStructureFilterMapFunc_fct_##A = (uintptr_t)fct; return my_GstStructureFilterMapFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstStructureFilterMapFunc callback\n"); + return NULL; +} +//GstElementForeachPadFunc +#define GO(A) \ +static uintptr_t my_GstElementForeachPadFunc_fct_##A = 0; \ +static int my_GstElementForeachPadFunc_##A(void* a, void* b, void* c) \ +{ \ + return (int)RunFunctionFmt(my_GstElementForeachPadFunc_fct_##A, "ppp", a, b, c); \ +} +SUPER() +#undef GO +static void* findGstElementForeachPadFuncFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstElementForeachPadFunc_fct_##A == (uintptr_t)fct) return my_GstElementForeachPadFunc_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstElementForeachPadFunc_fct_##A == 0) {my_GstElementForeachPadFunc_fct_##A = (uintptr_t)fct; return my_GstElementForeachPadFunc_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstElementForeachPadFunc callback\n"); + return NULL; +} +//GstTypeFindFunction +#define GO(A) \ +static uintptr_t my_GstTypeFindFunction_fct_##A = 0; \ +static void my_GstTypeFindFunction_##A(void* a, void* b) \ +{ \ + RunFunctionFmt(my_GstTypeFindFunction_fct_##A, "pp", a, b); \ +} +SUPER() +#undef GO +static void* findGstTypeFindFunctionFct(void* fct) +{ + if(!fct) return fct; + void* p; + if((p = GetNativeFnc((uintptr_t)fct))) return p; + #define GO(A) if(my_GstTypeFindFunction_fct_##A == (uintptr_t)fct) return my_GstTypeFindFunction_##A; + SUPER() + #undef GO + #define GO(A) if(my_GstTypeFindFunction_fct_##A == 0) {my_GstTypeFindFunction_fct_##A = (uintptr_t)fct; return my_GstTypeFindFunction_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for gstreamer GstTypeFindFunction callback\n"); + return NULL; +} #undef SUPER @@ -445,30 +753,303 @@ EXPORT int my_gst_element_link_many(x64emu_t* emu, void* e1, void* e2, void** b) } return ret; } -/* + EXPORT void* my_gst_plugin_load_file(x64emu_t* emu, const char* filename, void** error) { -printf_log(LOG_INFO, "using gst_plugin_load_file, file %s (is x86_64=%d)\n", filename, FileIsX64ELF(filename)); + printf_log(LOG_INFO, "using gst_plugin_load_file, file %s (is x86_64=%d)\n", filename, FileIsX64ELF(filename)); return my->gst_plugin_load_file((void*)filename, error); } -EXPORT int my_gst_init_check(x64emu_t* emu, int* argc, char*** argv, void** error) +static void register_plugins_from_folder(x64emu_t* emu, const char* folder) { -printf_log(LOG_INFO, "will call gst_init_check(%o, %p, %p)\n", argc, argv, error); -if(argc && argv) { - printf_log(LOG_INFO, " argc=%d, argv=[", *argc); - for(int i=0; i<*argc; ++i) - printf_log(LOG_INFO, "%s\"%s\"", i?", ":"", (*argv)[i]); - printf_log(LOG_INFO, "]"); + if(!folder) { + printf_log(/*LOG_DEBUG*/LOG_INFO, "BOX64 didn't detect any custom gstreamer-1.0 folder"); + return; + } + DIR *d; + struct dirent *dir; + // get folder where gstreamer came from + char native_folder[MAX_PATH+1] = {0}; + Dl_info dli; + if(dladdr(my->gst_init_check, &dli)) { + strcpy(native_folder, dli.dli_fname); + char* p = strrchr(native_folder, '/'); + *p = '\0'; + strcat(native_folder, "/gstreamer-1.0/"); + printf_log(/*LOG_DEBUG*/LOG_INFO, "BOX64 Will look for native gstreamer plugin in %s", native_folder); + } + d = opendir(folder); + if(!d) + return; + while((dir = readdir(d)) != NULL) { + if(strstr(dir->d_name, "libgst")==dir->d_name && strstr(dir->d_name, ".so")) { + // handling this one, stripping to get the plugin name + char name[500]; + int is_native = 0; + void* handle = NULL; + char filename[MAX_PATH]; + char regfunc_name[500]; + // get the name of the function + strcpy(name, dir->d_name + strlen("libgst")); + *strrchr(name, '.') = '\0'; + snprintf(regfunc_name, sizeof(regfunc_name), "gst_plugin_%s_register", name); + // check if native version exist + if(native_folder[0]) { + strcpy(filename, native_folder); + strcat(filename, dir->d_name); + handle = dlopen(filename, 2); + } + if(handle) + is_native = 1; + else { + strcpy(filename, folder); + strcat(filename, "/"); + strcat(filename, dir->d_name); + handle = my_dlopen(emu, filename, 2); + } + void* f_init = handle?(is_native?dlsym(handle, regfunc_name):my_dlsym(emu, handle, regfunc_name)):NULL; + if(f_init) { + printf_log(LOG_DEBUG, "BOX64: Will registering %sgstplugin %s\n", is_native?"native ":"", filename); + if(is_native) + ((vFv_t)(f_init))(); + else + RunFunctionFmt((uintptr_t)f_init, ""); + if(my->plugin_cnt==my->plugin_cap) { + my->plugin_cap += 8; + my->plugins = (my_gst_plugin_t*)box_realloc(my->plugins, my->plugin_cap*sizeof(my_gst_plugin_t)); + } + my->plugins[my->plugin_cnt].is_native = is_native; + my->plugins[my->plugin_cnt++].handle = handle; + } else { + printf_log(LOG_DEBUG, "BOX64: Failled to register %sgstplugin %s, name=%s, handle=%p\n", is_native?"native ":"", filename, name, handle); + } + if(handle && !f_init) { + is_native?dlclose(handle):my_dlclose(emu, handle); + handle = NULL; + } + } + } + closedir(d); } -if(getenv("GST_PLUGIN_LOADING_WHITELIST")) - printf_log(LOG_INFO, "\nGST_PLUGIN_LOADING_WHITELIST=%s", getenv("GST_PLUGIN_LOADING_WHITELIST")); -printf_log(LOG_INFO, "\n"); + +extern const char* box64_custom_gstreamer; +EXPORT int my_gst_init_check(x64emu_t* emu, int* argc, char*** argv, void** error) +{ int ret = my->gst_init_check(argc, argv, error); -printf_log(LOG_INFO, "gst_init_check(...) return = %d\n", ret); + register_plugins_from_folder(emu, box64_custom_gstreamer); return ret; } -*/ + +EXPORT void my_gst_init(x64emu_t* emu, int* argc, char*** argv) +{ + my->gst_init(argc, argv); + register_plugins_from_folder(emu, box64_custom_gstreamer); +} + +EXPORT int my_gst_plugin_register_static(x64emu_t* emu, int maj_v, int min_v, void* name, void* desc, void* init_f, void* ver, void* lic, void* source, void* pack, void* orig) +{ + return my->gst_plugin_register_static(maj_v, min_v, name, desc, findGstPluginInitFct(init_f), ver, lic, source, pack, orig); +} + +EXPORT int my_gst_info_vasprintf(x64emu_t* emu, void* res, void* fmt, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + return my->gst_info_vasprintf(res, fmt, VARARGS); +} + +EXPORT void* my__gst_element_error_printf(x64emu_t* emu, void* fmt, uintptr_t* b) +{ + char* buffer; + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1); + int len = my->gst_info_vasprintf(&buffer, fmt, VARARGS); + if(len<0) + buffer = NULL; + return buffer; +} + +EXPORT void my_gst_structure_set_valist(x64emu_t* emu, void* st, void* fieldname, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + my->gst_structure_set_valist(st, fieldname, VARARGS); +} + +EXPORT void my_gst_structure_set(x64emu_t* emu, void* st, void* fieldname, uintptr_t* b) +{ + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 2); + my->gst_structure_set_valist(st, fieldname, VARARGS); +} + +EXPORT int my_gst_iterator_fold(x64emu_t* emu, void* it, void* f, void* ret, void* data) +{ + return my->gst_iterator_fold(it, findGstIteratorFoldFunctionFct(f), ret, data); +} + +EXPORT void* my_gst_util_array_binary_search(x64emu_t* emu, void* array, uint32_t num, size_t size, void* f, int mode, void* search, void* data) +{ + return my->gst_util_array_binary_search(array, num, size, findGCompareDataFuncFct(f), mode, search, data); +} + +EXPORT void* my_gst_structure_new_valist(x64emu_t* emu, void* name, void* first, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + my->gst_structure_new_valist(name, first, VARARGS); +} + +EXPORT void* my_gst_make_element_message_details(x64emu_t* emu, void* name, uintptr_t* b) +{ + if(!name) + return NULL; + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1); + my->gst_structure_new_valist("detail", name, VARARGS); +} + +EXPORT int my_gst_pad_start_task(x64emu_t* emu, void* pad, void* f, void* data, void* d) +{ + return my->gst_pad_start_task(pad, findGstTaskFunctionFct(f), data, findDestroyFct(d)); +} + +EXPORT void my_gst_tag_list_foreach(x64emu_t* emu, void* list, void* f, void* data) +{ + my->gst_tag_list_foreach(list, findGstTagForeachFuncFct(f), data); +} + +EXPORT void* my_gst_memory_new_wrapped(x64emu_t* emu, int flags, void* data, size_t maxsz, size_t offset, size_t size, void* user_data, void* d) +{ + return my->gst_memory_new_wrapped(flags, data, maxsz, offset, size, user_data, findDestroyFct(d)); +} + +EXPORT void* my_gst_pad_create_stream_id_printf_valist(x64emu_t* emu, void* pad, void* parent, void* id, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + return my->gst_pad_create_stream_id_printf_valist(pad, parent, id, VARARGS); +} + +EXPORT void* my_gst_pad_create_stream_id_printf(x64emu_t* emu, void* pad, void* parent, void* id, uintptr_t* b) +{ + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 3); + return my->gst_pad_create_stream_id_printf_valist(pad, parent, id, VARARGS); +} + +EXPORT void my_gst_pad_set_activate_function_full(x64emu_t* emu, void* pad, void* f, void* data, void* d) +{ + my->gst_pad_set_activate_function_full(pad, findGstPadActivateFunctionFct(f), data, findDestroyFct(d)); +} + +EXPORT void my_gst_tag_list_add_valist(x64emu_t* emu, void* list, int mode, void* tag, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + my->gst_tag_list_add_valist(list, mode, tag, VARARGS); +} +EXPORT void my_gst_tag_list_add(x64emu_t* emu, void* list, int mode, void* tag, uintptr_t* b) +{ + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 3); + my->gst_tag_list_add_valist(list, mode, tag, VARARGS); +} + +EXPORT void* my_gst_tag_list_new_valist(x64emu_t* emu, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + return my->gst_tag_list_new_valist(VARARGS); +} + +EXPORT void* my_gst_tag_list_new(x64emu_t* emu, void* arg, uintptr_t* b) +{ + // construct VARARGS with arg[0] too, because gst_tag_list_new_valist have just the va_list + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 0); + return my->gst_tag_list_new_valist(VARARGS); +} + +EXPORT void* my_gst_caps_features_new_valist(x64emu_t* emu, void* feat1, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + return my->gst_caps_features_new_valist(feat1, VARARGS); +} + +EXPORT void* my_gst_caps_features_new(x64emu_t* emu, void* feat1, uintptr_t* b) +{ + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 1); + return my->gst_caps_features_new_valist(feat1, VARARGS); +} + +EXPORT unsigned long my_gst_pad_add_probe(x64emu_t* emu, void* pad, int mask, void* f, void* data, void* d) +{ + return my->gst_pad_add_probe(pad, mask, findGstPadProbeCallbackFct(f), data, findDestroyFct(d)); +} + +EXPORT int my_gst_structure_foreach(x64emu_t* emu, void* st, void* f, void* data) +{ + return my->gst_structure_foreach(st, findGstStructureForeachFuncFct(f), data); +} + +EXPORT void my_gst_pad_set_link_function_full(x64emu_t* emu, void* pad, void* f, void* data, void *d) +{ + my->gst_pad_set_link_function_full(pad, findGstPadLinkFunctionFct(f), data, findDestroyFct(d)); +} + +EXPORT void my_gst_tag_list_add_valist_values(x64emu_t* emu, void* list, int mode, void* tag, x64_va_list_t V) +{ + #ifdef CONVERT_VALIST + CONVERT_VALIST(V); + #else + CREATE_VALIST_FROM_VALIST(V, emu->scratch); + #endif + my->gst_tag_list_add_valist_values(list, mode, tag, VARARGS); +} + +EXPORT void my_gst_tag_list_add_values(x64emu_t* emu, void* list, int mode, void* tag, uintptr_t* b) +{ + CREATE_VALIST_FROM_VAARG(b, emu->scratch, 3); + my->gst_tag_list_add_valist_values(list, mode, tag, VARARGS); +} + +EXPORT void my_gst_structure_filter_and_map_in_place(x64emu_t* emu, void* s, void* f, void* data) +{ + my->gst_structure_filter_and_map_in_place(s, findGstStructureFilterMapFuncFct(f), data); +} + +EXPORT int my_gst_element_foreach_sink_pad(x64emu_t* emu, void* element, void* f, void* data) +{ + return my->gst_element_foreach_sink_pad(element, findGstElementForeachPadFuncFct(f),data); +} + +EXPORT void* my_gst_task_new(x64emu_t* emu, void* f, void* data, void* d) +{ + return my->gst_task_new(findGstTaskFunctionFct(f), data, findDestroyFct(d)); +} + +EXPORT int my_gst_type_find_register(x64emu_t* emu, void* plugin, void* name, uint32_t rank, void* f, void* ext, void* caps, void* data, void* d) +{ + return my->gst_type_find_register(plugin, name, rank, findGstTypeFindFunctionFct(f), ext, caps, data, findDestroyFct(f)); +} + #define PRE_INIT \ if(box64_nogtk) \ return -1; @@ -478,6 +1059,10 @@ printf_log(LOG_INFO, "gst_init_check(...) return = %d\n", ret); SetGstObjectID(my->gst_object_get_type()); \ SetGstAllocatorID(my->gst_allocator_get_type()); \ SetGstTaskPoolID(my->gst_task_pool_get_type()); \ + SetGstElementID(my->gst_element_get_type()); \ + SetGstBinID(my->gst_bin_get_type()); \ + SetGstPadID(my->gst_pad_get_type()); \ + SetGstURIHandlerID(my->gst_uri_handler_get_type()); \ setNeededLibs(lib, 1, "libgtk-3.so.0"); #define CUSTOM_FINI \ diff --git a/src/wrapped/wrappedgstreamer_private.h b/src/wrapped/wrappedgstreamer_private.h index e5fcfc9a..8b6a5e2e 100644 --- a/src/wrapped/wrappedgstreamer_private.h +++ b/src/wrapped/wrappedgstreamer_private.h @@ -5,9 +5,9 @@ GO(gst_allocation_params_copy, pFp) //GO(gst_allocation_params_free, //GO(gst_allocation_params_get_type, -//GO(gst_allocation_params_init, +GO(gst_allocation_params_init, vFp) GO(gst_allocator_alloc, pFpLp) -//GO(gst_allocator_find, +GO(gst_allocator_find, pFp) //GO(gst_allocator_flags_get_type, //GO(gst_allocator_free, GO(gst_allocator_get_type, pFv) @@ -86,10 +86,10 @@ GO(gst_buffer_list_calculate_size, LFp) //GO(gst_buffer_list_copy, GO(gst_buffer_list_copy_deep, pFp) //GO(gst_buffer_list_foreach, -//GO(gst_buffer_list_get, +GO(gst_buffer_list_get, pFpu) //GO(gst_buffer_list_get_type, //GO(gst_buffer_list_get_writable, -//GO(gst_buffer_list_insert, +GO(gst_buffer_list_insert, vFpip) GO(gst_buffer_list_length, uFp) GO(gst_buffer_list_new, pFv) GO(gst_buffer_list_new_sized, pFu) @@ -105,6 +105,7 @@ GO(gst_buffer_memcmp, iFpLpL) GO(gst_buffer_memset, LFpLCL) GO(gst_buffer_new, pFv) GO(gst_buffer_new_allocate, pFplp) +GO(gst_buffer_new_memdup, pFpL) GO(gst_buffer_new_wrapped, pFpl) GO(gst_buffer_new_wrapped_bytes, pFp) GOM(gst_buffer_new_wrapped_full, pFEiplllpp) @@ -120,10 +121,10 @@ GO(gst_buffer_pool_config_has_option, iFpp) GO(gst_buffer_pool_config_n_options, uFp) GO(gst_buffer_pool_config_set_allocator, vFppp) GO(gst_buffer_pool_config_set_params, vFppuuu) -//GO(gst_buffer_pool_config_validate_params, +GO(gst_buffer_pool_config_validate_params, iFppuuu) GO(gst_buffer_pool_get_config, pFp) GO(gst_buffer_pool_get_options, pFp) -//GO(gst_buffer_pool_get_type, +GO(gst_buffer_pool_get_type, LFv) GO(gst_buffer_pool_has_option, iFpp) GO(gst_buffer_pool_is_active, iFp) GO(gst_buffer_pool_new, pFv) @@ -176,20 +177,20 @@ GO(gst_bus_sync_signal_handler, iFppp) GO(gst_bus_timed_pop, pFpU) GO(gst_bus_timed_pop_filtered, pFpUi) GO(gst_calculate_linear_regression, iFppuppppp) -//DATAB(_gst_caps_any, +DATAB(_gst_caps_any, sizeof(void*)) GO(gst_caps_append, vFpp) GO(gst_caps_append_structure, vFpp) GO(gst_caps_append_structure_full, vFppp) GO(gst_caps_can_intersect, iFpp) GO(gst_caps_copy, pFp) GO(gst_caps_copy_nth, pFpu) -//GOM(gst_caps_features_add, vFEpBp) +GO(gst_caps_features_add, vFpp) //GO(gst_caps_features_add_id, //DATAB(_gst_caps_features_any, GO(gst_caps_features_contains, iFpp) GO(gst_caps_features_contains_id, iFpu) GO(gst_caps_features_copy, pFp) -//GO(gst_caps_features_free, +GO(gst_caps_features_free, vFp) GO(gst_caps_features_from_string, pFp) GO(gst_caps_features_get_nth, pFpu) GO(gst_caps_features_get_nth_id, uFpu) @@ -197,13 +198,13 @@ GO(gst_caps_features_get_size, uFp) //GO(gst_caps_features_get_type, GO(gst_caps_features_is_any, iFp) GO(gst_caps_features_is_equal, iFpp) -//DATAB(_gst_caps_features_memory_system_memory, -//GO(gst_caps_features_new, +DATAB(_gst_caps_features_memory_system_memory, sizeof(void*)) +GOM(gst_caps_features_new, pFEpV) GO(gst_caps_features_new_any, pFv) //GO(gst_caps_features_new_empty, //GO(gst_caps_features_new_id, GO(gst_caps_features_new_id_valist, pFup) -GO(gst_caps_features_new_valist, pFpp) +GOM(gst_caps_features_new_valist, pFEpA) GO(gst_caps_features_remove, vFpp) GO(gst_caps_features_remove_id, vFpu) GO(gst_caps_features_set_parent_refcount, iFpp) @@ -241,7 +242,7 @@ GO(gst_caps_new_empty_simple, pFp) //GOM(gst_caps_new_full, pFEpV) //GOM(gst_caps_new_full_valist, pFEpA) GOM(gst_caps_new_simple, pFEppV) -//DATAB(_gst_caps_none, +DATAB(_gst_caps_none, sizeof(void*)) GO(gst_caps_normalize, pFp) GO(gst_caps_ref, pFp) GO(gst_caps_remove_structure, vFpp) @@ -291,14 +292,14 @@ DATAB(GST_CAT_DEFAULT, sizeof(void*)) //DATAB(GST_CAT_SCHEDULING, //DATAB(GST_CAT_SIGNAL, //DATAB(GST_CAT_STATES, -//GO(gst_child_proxy_child_added, +GO(gst_child_proxy_child_added, vFppp) GO(gst_child_proxy_child_removed, vFppp) //GO(gst_child_proxy_get, GO(gst_child_proxy_get_child_by_index, pFpu) //GO(gst_child_proxy_get_child_by_name, GO(gst_child_proxy_get_children_count, uFp) GO(gst_child_proxy_get_property, vFppp) -//GO(gst_child_proxy_get_type, +GO(gst_child_proxy_get_type, LFv) //GO(gst_child_proxy_get_valist, GO(gst_child_proxy_lookup, iFpppp) //GO(gst_child_proxy_set, @@ -375,7 +376,7 @@ GO(gst_control_binding_sync_values, iFppLL) //GO(gst_control_source_get_value, //GO(gst_control_source_get_value_array, //GO(gst_core_error_get_type, -//GO(gst_core_error_quark, +GO(gst_core_error_quark, pFv) //GO(gst_date_time_get_day, //GO(gst_date_time_get_hour, GO(gst_date_time_get_microsecond, iFp) @@ -407,7 +408,7 @@ GO(gst_date_time_ref, pFp) GO(gst_date_time_to_g_date_time, pFp) GO(gst_date_time_to_iso8601_string, pFp) DATAB(_gst_date_time_type, sizeof(void*)) -//GO(gst_date_time_unref, +GO(gst_date_time_unref, vFp) //GO(gst_debug_add_log_function, GO(gst_debug_add_ring_buffer_logger, vFuu) GO(gst_debug_bin_to_dot_data, pFpi) @@ -445,7 +446,7 @@ GOM(gst_debug_log_valist, vFEpippippA) DATAB(_gst_debug_min, sizeof(int)) //GO(_gst_debug_nameof_funcptr, //GO(gst_debug_print_stack_trace, -//GO(_gst_debug_register_funcptr, +GO(_gst_debug_register_funcptr, vFpp) //GO(gst_debug_remove_log_function, GO(gst_debug_remove_log_function_by_data, uFp) //GO(gst_debug_remove_ring_buffer_logger, @@ -533,7 +534,7 @@ GO(gst_element_class_set_metadata, vFppppp) GO(gst_element_class_set_static_metadata, vFppppp) GO(gst_element_continue_state, uFpu) //GOM(gst_element_create_all_pads, iFEpBp) -//GO(_gst_element_error_printf, +GOM(_gst_element_error_printf, pFEpV) GO(gst_element_factory_can_sink_all_caps, iFpp) GO(gst_element_factory_can_sink_any_caps, iFpp) GO(gst_element_factory_can_src_all_caps, iFpp) @@ -555,7 +556,7 @@ GO(gst_element_factory_list_is_type, iFpL) GO(gst_element_factory_make, pFpp) GO(gst_element_flags_get_type, pFv) //GOM(gst_element_foreach_pad, iFEpBp) -//GOM(gst_element_foreach_sink_pad, iFEpBp) +GOM(gst_element_foreach_sink_pad, iFEppp) //GOM(gst_element_foreach_src_pad, iFEpBp) GO(gst_element_get_base_time, UFp) GO(gst_element_get_bus, pFp) @@ -575,7 +576,7 @@ GO(gst_element_get_pad_template_list, pFp) GO(gst_element_get_start_time, UFp) GO(gst_element_get_state, uFpppL) GO(gst_element_get_static_pad, pFpp) -GO(gst_element_get_type, pFv) +GO(gst_element_get_type, LFv) GO(gst_element_is_locked_state, iFp) GO(gst_element_iterate_pads, pFp) GO(gst_element_iterate_sink_pads, pFp) @@ -720,30 +721,30 @@ GO(gst_get_main_executable_path, pFv) //GO(gst_ghost_pad_activate_mode_default, //GO(gst_ghost_pad_construct, //GO(gst_ghost_pad_get_target, -//GO(gst_ghost_pad_get_type, +GO(gst_ghost_pad_get_type, LFv) //GO(gst_ghost_pad_internal_activate_mode_default, GO(gst_ghost_pad_new, pFpp) //GO(gst_ghost_pad_new_from_template, //GO(gst_ghost_pad_new_no_target, //GO(gst_ghost_pad_new_no_target_from_template, -//GO(gst_ghost_pad_set_target, +GO(gst_ghost_pad_set_target, iFpp) //GO(gst_g_thread_get_type, //GO(gst_info_strdup_printf, //GO(gst_info_strdup_vprintf, -//GO(gst_info_vasprintf, -GO(gst_init, vFpp) -GO(gst_init_check, iFppp) +GOM(gst_info_vasprintf, iFEppA) +GOM(gst_init, vFEpp) +GOM(gst_init_check, iFEppp) GO(gst_init_get_option_group, pFv) //GO(gst_int64_range_get_type, //DATAB(_gst_int64_range_type, -//GO(gst_int_range_get_type, +GO(gst_int_range_get_type, LFv) DATAB(_gst_int_range_type, sizeof(void*)) GO(gst_is_caps_features, iFp) GO(gst_is_initialized, iFv) //GO(gst_iterator_copy, //GO(gst_iterator_filter, //GO(gst_iterator_find_custom, -//GO(gst_iterator_fold, +GOM(gst_iterator_fold, iFEpppp) //GO(gst_iterator_foreach, GO(gst_iterator_free, vFp) //GO(gst_iterator_get_type, @@ -756,21 +757,21 @@ GO(gst_iterator_next, iFpp) //GO(gst_iterator_result_get_type, GO(gst_iterator_resync, vFp) //GO(gst_library_error_get_type, -//GO(gst_library_error_quark, +GO(gst_library_error_quark, pFv) //GO(gst_lock_flags_get_type, -//GO(gst_make_element_message_details, +GOM(gst_make_element_message_details, pFEpV) //GO(gst_map_flags_get_type, //DATA(gst_memory_alignment, //GO(gst_memory_copy, //GO(gst_memory_flags_get_type, -//GO(gst_memory_get_sizes, +GO(gst_memory_get_sizes, iFppp) //GO(gst_memory_get_type, GO(gst_memory_init, vFpuppLLLL) //GO(gst_memory_is_span, //GO(gst_memory_is_type, //GO(gst_memory_make_mapped, GO(gst_memory_map, iFppu) -//GO(gst_memory_new_wrapped, +GOM(gst_memory_new_wrapped, pFEipLLLpp) //GO(gst_memory_ref, //GO(gst_memory_resize, //GO(gst_memory_share, @@ -904,7 +905,7 @@ GO(gst_mini_object_is_writable, iFp) GO(gst_mini_object_make_writable, pFp) GO(gst_mini_object_ref, pFp) //GO(gst_mini_object_remove_parent, -//GO(gst_mini_object_replace, +GO(gst_mini_object_replace, iFpp) GOM(gst_mini_object_set_qdata, vFEpppp) //GO(gst_mini_object_steal, //GO(gst_mini_object_steal_qdata, @@ -945,14 +946,14 @@ GO(gst_object_sync_values, iFpL) GO(gst_object_unparent, vFp) GO(gst_object_unref, vFp) GO(gst_pad_activate_mode, iFpii) -//GO(gst_pad_add_probe, iFEpiBpB) +GOM(gst_pad_add_probe, LFEpippp) GO(gst_pad_can_link, iFpp) GO(gst_pad_chain, iFpp) GO(gst_pad_chain_list, iFpp) GO(gst_pad_check_reconfigure, iFp) GO(gst_pad_create_stream_id, pFppp) -//GOM(gst_pad_create_stream_id_printf, pFEpppV) -//GOM(gst_pad_create_stream_id_printf_valist, pFEpppA) +GOM(gst_pad_create_stream_id_printf, pFEpppV) +GOM(gst_pad_create_stream_id_printf_valist, pFEpppA) GO(gst_pad_direction_get_type, pFv) GO(gst_pad_event_default, iFppp) GO(gst_pad_flags_get_type, pFv) @@ -973,7 +974,7 @@ GO(gst_pad_get_sticky_event, pFppu) GO(gst_pad_get_stream, pFp) GO(gst_pad_get_stream_id, pFp) GO(gst_pad_get_task_state, iFp) -GO(gst_pad_get_type, pFv) +GO(gst_pad_get_type, LFv) GO(gst_pad_has_current_caps, iFp) GO(gst_pad_is_active, iFp) GO(gst_pad_is_blocked, iFp) @@ -1024,7 +1025,7 @@ GO(gst_pad_query_duration, iFppp) GO(gst_pad_query_position, iFppp) GO(gst_pad_remove_probe, vFpL) GO(gst_pad_send_event, iFpp) -//GOM(gst_pad_set_activate_function_full, vFEpBpB) +GOM(gst_pad_set_activate_function_full, vFEpppp) GOM(gst_pad_set_activatemode_function_full, vFEpppp) GO(gst_pad_set_active, iFpi) GOM(gst_pad_set_chain_function_full, vFEpppp) @@ -1034,21 +1035,21 @@ GO(gst_pad_set_element_private, vFpp) GOM(gst_pad_set_event_function_full, vFEpppp) GOM(gst_pad_set_getrange_function_full, vFEpppp) //GOM(gst_pad_set_iterate_internal_links_function_full, vFEpBpB) -//GOM(gst_pad_set_link_function_full, vFEpBpB) +GOM(gst_pad_set_link_function_full, vFEpppp) GO(gst_pad_set_offset, vFpI) GOM(gst_pad_set_query_function_full, vFEpppp) //GOM(gst_pad_set_unlink_function_full, vFEpBpB) -//GOM(gst_pad_start_task, vFEpBpB) +GOM(gst_pad_start_task, iFEpppp) //GOM(gst_pad_sticky_events_foreach, vFEpBp) GO(gst_pad_stop_task, iFp) GO(gst_pad_store_sticky_event, iFpp) GO(gst_pad_template_flags_get_type, pFv) -//GO(gst_pad_template_get_caps, +GO(gst_pad_template_get_caps, pFp) //GO(gst_pad_template_get_documentation_caps, //GO(gst_pad_template_get_type, GO(gst_pad_template_new, pFpiip) //GO(gst_pad_template_new_from_static_pad_template_with_gtype, -//GO(gst_pad_template_new_with_gtype, +GO(gst_pad_template_new_with_gtype, pFpiipL) //GO(gst_pad_template_pad_created, //GO(gst_pad_template_set_documentation_caps, GO(gst_pad_unlink, iFpp) @@ -1122,8 +1123,8 @@ GO(gst_plugin_is_loaded, iFp) GO(gst_plugin_load, pFp) GO(gst_plugin_load_by_name, pFp) //GO(_gst_plugin_loader_client_run, -GO(gst_plugin_load_file, pFpp) -//GO(gst_plugin_register_static, +GOM(gst_plugin_load_file, pFEpp) +GOM(gst_plugin_register_static, iFEiipppppppp) //GO(gst_plugin_register_static_full, GO(gst_plugin_set_cache_data, vFpp) //GO(gst_poll_add_fd, @@ -1153,7 +1154,7 @@ GO(gst_preset_delete_preset, iFpp) GO(gst_preset_get_meta, iFpppp) //GO(gst_preset_get_preset_names, GO(gst_preset_get_property_names, pFp) -//GO(gst_preset_get_type, +GO(gst_preset_get_type, LFv) GO(gst_preset_is_editable, iFp) //GO(gst_preset_load_preset, GO(gst_preset_rename_preset, iFppp) @@ -1307,7 +1308,7 @@ GO(gst_registry_remove_feature, vFpp) GO(gst_registry_remove_plugin, vFpp) GO(gst_registry_scan_path, iFpp) //GO(gst_resource_error_get_type, -//GO(gst_resource_error_quark, +GO(gst_resource_error_quark, pFv) GO(gst_sample_copy, pFp) GO(gst_sample_get_buffer, pFp) GO(gst_sample_get_buffer_list, pFp) @@ -1359,9 +1360,9 @@ GO(gst_state_get_type, pFv) GO(gst_static_caps_cleanup, vFp) GO(gst_static_caps_get, pFp) GO(gst_static_caps_get_type, pFv) -//GO(gst_static_pad_template_get, -//GO(gst_static_pad_template_get_caps, -//GO(gst_static_pad_template_get_type, +GO(gst_static_pad_template_get, pFp) +GO(gst_static_pad_template_get_caps, pFp) +GO(gst_static_pad_template_get_type, LFv) GO(gst_stream_collection_add_stream, iFpp) GO(gst_stream_collection_get_size, uFp) GO(gst_stream_collection_get_stream, pFpu) @@ -1369,7 +1370,7 @@ GO(gst_stream_collection_get_stream, pFpu) GO(gst_stream_collection_get_upstream_id, pFp) GO(gst_stream_collection_new, pFp) //GO(gst_stream_error_get_type, -//GO(gst_stream_error_quark, +GO(gst_stream_error_quark, pFv) //GO(gst_stream_flags_get_type, GO(gst_stream_get_caps, pFp) GO(gst_stream_get_stream_flags, uFp) @@ -1388,7 +1389,7 @@ GO(gst_stream_type_get_name, pFu) GO(gst_structure_can_intersect, iFpp) //GO(gst_structure_change_type_get_type, GO(gst_structure_copy, pFp) -//GOM(gst_structure_filter_and_map_in_place, vFEpBp) +GOM(gst_structure_filter_and_map_in_place, vFEppp) GO(gst_structure_fixate, vFp) GO(gst_structure_fixate_field, iFpp) GO(gst_structure_fixate_field_boolean, iFppi) @@ -1396,7 +1397,7 @@ GO(gst_structure_fixate_field_nearest_double, iFppd) GO(gst_structure_fixate_field_nearest_fraction, iFppii) GO(gst_structure_fixate_field_nearest_int, iFppi) GO(gst_structure_fixate_field_string, iFppp) -//GOM(gst_structure_foreach, iFEpBp) +GOM(gst_structure_foreach, iFEppp) GO(gst_structure_free, vFp) GO(gst_structure_from_string, pFpp) GOM(gst_structure_get, iFEppV) @@ -1442,19 +1443,19 @@ GO(gst_structure_new_empty, pFp) GO(gst_structure_new_from_string, pFp) //GOM(gst_structure_new_id, pFEppV) GO(gst_structure_new_id_empty, pFu) -//GOM(gst_structure_new_valist, pFppA) +GOM(gst_structure_new_valist, pFppA) GO(gst_structure_n_fields, iFp) GO(gst_structure_nth_field_name, pFpu) GO(gst_structure_remove_all_fields, vFp) GO(gst_structure_remove_field, vFpp) GOM(gst_structure_remove_fields, vFEppV) GOM(gst_structure_remove_fields_valist, vFEppA) -//GOM(gst_structure_set, vFEppV) +GOM(gst_structure_set, vFEppV) GO(gst_structure_set_array, vFppp) GO(gst_structure_set_list, vFppp) GO(gst_structure_set_name, vFpp) GO(gst_structure_set_parent_refcount, iFpp) -//GOM(gst_structure_set_valist, vFEppA) +GOM(gst_structure_set_valist, vFEppA) GO(gst_structure_set_value, vFppp) GO(gst_structure_take, iFpp) GO(gst_structure_take_value, vFppp) @@ -1468,16 +1469,16 @@ GO(gst_system_clock_set_default, vFp) GO(gst_tag_get_description, pFp) GO(gst_tag_get_flag, uFp) //GO(gst_tag_get_nick, -//GO(gst_tag_get_type, +GO(gst_tag_get_type, LFp) //GO(gst_tag_is_fixed, -//GOM(gst_tag_list_add, vFEpipV) -//GOM(gst_tag_list_add_valist, vFEpipA) -//GOM(gst_tag_list_add_valist_values, vFEpipA) +GOM(gst_tag_list_add, vFEpipV) +GOM(gst_tag_list_add_valist, vFEpipA) +GOM(gst_tag_list_add_valist_values, vFEpipA) GO(gst_tag_list_add_value, vFpipp) -//GOM(gst_tag_list_add_values, vFEpipV) +GOM(gst_tag_list_add_values, vFEpipV) GO(gst_tag_list_copy, pFp) GO(gst_tag_list_copy_value, iFppp) -//GOM(gst_tag_list_foreach, vFEpBp) +GOM(gst_tag_list_foreach, vFEppp) GO(gst_tag_list_get_boolean, iFppp) GO(gst_tag_list_get_boolean_index, iFppup) GO(gst_tag_list_get_date, iFppp) @@ -1510,10 +1511,10 @@ GO(gst_tag_list_insert, vFppi) GO(gst_tag_list_is_empty, iFp) GO(gst_tag_list_is_equal, iFpp) GO(gst_tag_list_merge, pFppi) -//GOM(gst_tag_list_new, pFEpV) +GOM(gst_tag_list_new, pFEpV) GO(gst_tag_list_new_empty, pFv) GO(gst_tag_list_new_from_string, pFp) -//GOM(gst_tag_list_new_valist, pFA) +GOM(gst_tag_list_new_valist, pFA) GO(gst_tag_list_n_tags, iFp) GO(gst_tag_list_nth_tag_name, pFpu) GO(gst_tag_list_peek_string_index, iFppup) @@ -1536,19 +1537,19 @@ GO(gst_tag_merge_mode_get_type, pFv) //GO(gst_tag_setter_add_tag_valist_values, GO(gst_tag_setter_add_tag_value, vFpupp) //GO(gst_tag_setter_add_tag_values, -//GO(gst_tag_setter_get_tag_list, +GO(gst_tag_setter_get_tag_list, pFp) GO(gst_tag_setter_get_tag_merge_mode, uFp) -//GO(gst_tag_setter_get_type, -//GO(gst_tag_setter_merge_tags, +GO(gst_tag_setter_get_type, LFv) +GO(gst_tag_setter_merge_tags, vFppi) GO(gst_tag_setter_reset_tags, vFp) GO(gst_tag_setter_set_tag_merge_mode, vFpu) //GO(gst_task_cleanup_all, //GO(gst_task_get_pool, //GO(gst_task_get_state, GO(gst_task_get_type, pFv) -//GO(gst_task_join, -//GO(gst_task_new, -//GO(gst_task_pause, +GO(gst_task_join, iFp) +GOM(gst_task_new, pFEppp) +GO(gst_task_pause, iFp) GO(gst_task_pool_cleanup, vFp) GO(gst_task_pool_get_type, pFv) //GO(gst_task_pool_join, @@ -1558,12 +1559,12 @@ GO(gst_task_pool_prepare, vFp) //GO(gst_task_resume, //GO(gst_task_set_enter_callback, //GO(gst_task_set_leave_callback, -//GO(gst_task_set_lock, +GO(gst_task_set_lock, vFpp) GO(gst_task_set_pool, vFpp) //GO(gst_task_set_state, -//GO(gst_task_start, -//GO(gst_task_state_get_type, -//GO(gst_task_stop, +GO(gst_task_start, iFp) +GO(gst_task_state_get_type, LFv) +GO(gst_task_stop, iFp) GO(gst_toc_append_entry, vFpp) //GO(gst_toc_dump, GO(gst_toc_entry_append_sub_entry, vFpp) @@ -1572,24 +1573,24 @@ GO(gst_toc_entry_get_loop, iFppp) GO(gst_toc_entry_get_parent, pFp) GO(gst_toc_entry_get_start_stop_times, iFppp) GO(gst_toc_entry_get_sub_entries, pFp) -//GO(gst_toc_entry_get_tags, +GO(gst_toc_entry_get_tags, pFp) GO(gst_toc_entry_get_toc, pFp) //GO(gst_toc_entry_get_type, GO(gst_toc_entry_get_uid, pFp) //GO(gst_toc_entry_is_alternative, GO(gst_toc_entry_is_sequence, iFp) -//GO(gst_toc_entry_merge_tags, +GO(gst_toc_entry_merge_tags, vFppi) GO(gst_toc_entry_new, pFip) GO(gst_toc_entry_set_loop, vFpui) GO(gst_toc_entry_set_start_stop_times, vFpll) -//GO(gst_toc_entry_set_tags, +GO(gst_toc_entry_set_tags, vFpp) //DATAB(_gst_toc_entry_type, GO(gst_toc_entry_type_get_nick, pFi) //GO(gst_toc_entry_type_get_type, GO(gst_toc_find_entry, pFpp) GO(gst_toc_get_entries, pFp) GO(gst_toc_get_scope, uFp) -//GO(gst_toc_get_tags, +GO(gst_toc_get_tags, pFp) //GO(gst_toc_get_type, //GO(gst_toc_loop_type_get_type, //GO(gst_toc_merge_tags, @@ -1597,7 +1598,7 @@ GO(gst_toc_new, pFu) //GO(gst_toc_scope_get_type, //GO(gst_toc_set_tags, GO(gst_toc_setter_get_toc, pFp) -//GO(gst_toc_setter_get_type, +GO(gst_toc_setter_get_type, LFv) GO(gst_toc_setter_reset, vFp) GO(gst_toc_setter_set_toc, vFpp) DATAB(_gst_toc_type, sizeof(void*)) @@ -1619,12 +1620,12 @@ GO(gst_type_find_factory_get_extensions, pFp) GO(gst_type_find_factory_get_list, pFv) //GO(gst_type_find_factory_get_type, GO(gst_type_find_factory_has_function, iFp) -//GO(gst_type_find_get_length, +GO(gst_type_find_get_length, UFp) //GO(gst_type_find_get_type, -//GO(gst_type_find_peek, +GO(gst_type_find_peek, pFpUu) //GO(gst_type_find_probability_get_type, -//GO(gst_type_find_register, -//GO(gst_type_find_suggest, +GOM(gst_type_find_register, iFEppuppppp) +GO(gst_type_find_suggest, vFpup) //GO(gst_type_find_suggest_simple, GO(gst_type_is_plugin_api, iFLp) GO(gst_type_mark_as_plugin_api, vFLu) @@ -1635,7 +1636,7 @@ GO(gst_update_registry, iFv) GO(gst_uri_copy, pFp) GO(gst_uri_equal, iFpp) //GO(gst_uri_error_get_type, -//GO(gst_uri_error_quark, +GO(gst_uri_error_quark, pFv) //GO(gst_uri_from_string, GO(gst_uri_from_string_escaped, pFp) GO(gst_uri_from_string_with_base, pFpp) @@ -1656,13 +1657,13 @@ GO(gst_uri_get_query_value, pFpp) //GO(gst_uri_get_type, //GO(gst_uri_get_userinfo, GO(gst_uri_handler_get_protocols, pFp) -//GO(gst_uri_handler_get_type, +GO(gst_uri_handler_get_type, LFv) GO(gst_uri_handler_get_uri, pFp) GO(gst_uri_handler_get_uri_type, uFp) GO(gst_uri_handler_set_uri, iFppp) GO(gst_uri_has_protocol, iFpp) GO(gst_uri_is_normalized, iFp) -//GO(gst_uri_is_valid, +GO(gst_uri_is_valid, iFp) //GO(gst_uri_is_writable, GO(gst_uri_join, pFpp) GO(gst_uri_join_strings, pFpp) @@ -1689,13 +1690,13 @@ GO(gst_uri_set_query_value, iFppp) //GO(gst_uri_to_string, //GO(gst_uri_type_get_type, //GO(gst_uri_unref, -//GO(gst_util_array_binary_search, +GOM(gst_util_array_binary_search, pFpuLpipp) GO(gst_util_double_to_fraction, vFdpp) //GO(gst_util_dump_buffer, GO(gst_util_dump_mem, vFpu) GO(gst_util_fraction_add, iFiiiipp) GO(gst_util_fraction_compare, iFiiii) -//GO(gst_util_fraction_multiply, +GO(gst_util_fraction_multiply, iFiiiipp) GO(gst_util_fraction_to_double, vFiip) GO(gst_util_gdouble_to_guint64, LFd) GO(gst_util_get_object_array, iFppp) @@ -1711,13 +1712,13 @@ GO(gst_util_set_object_array, iFppp) GO(gst_util_set_value_from_string, vFpp) GO(gst_util_uint64_scale, UFUUU) GO(gst_util_uint64_scale_ceil, LFLLL) -//GO(gst_util_uint64_scale_int, +GO(gst_util_uint64_scale_int, UFUii) GO(gst_util_uint64_scale_int_ceil, LFLii) -//GO(gst_util_uint64_scale_int_round, -//GO(gst_util_uint64_scale_round, +GO(gst_util_uint64_scale_int_round, UFUii) +GO(gst_util_uint64_scale_round, UFUUU) GO(gst_value_array_append_and_take_value, vFpp) -//GO(gst_value_array_append_value, -//GO(gst_value_array_get_size, +GO(gst_value_array_append_value, vFpp) +GO(gst_value_array_get_size, iFp) //GO(gst_value_array_get_type, GO(gst_value_array_get_value, pFpu) GO(gst_value_array_init, pFpu) @@ -1733,41 +1734,41 @@ GO(gst_value_fixate, iFpp) //GO(gst_value_fraction_multiply, //GO(gst_value_fraction_subtract, GO(gst_value_get_bitmask, LFp) -//GO(gst_value_get_caps, +GO(gst_value_get_caps, pFp) GO(gst_value_get_caps_features, pFp) GO(gst_value_get_double_range_max, dFp) //GO(gst_value_get_double_range_min, -//GO(gst_value_get_flagset_flags, +GO(gst_value_get_flagset_flags, uFp) GO(gst_value_get_flagset_mask, uFp) GO(gst_value_get_fraction_denominator, iFp) -//GO(gst_value_get_fraction_numerator, +GO(gst_value_get_fraction_numerator, iFp) GO(gst_value_get_fraction_range_max, pFp) -//GO(gst_value_get_fraction_range_min, +GO(gst_value_get_fraction_range_min, pFp) //GO(gst_value_get_int64_range_max, //GO(gst_value_get_int64_range_min, GO(gst_value_get_int64_range_step, lFp) -//GO(gst_value_get_int_range_max, -//GO(gst_value_get_int_range_min, +GO(gst_value_get_int_range_max, iFp) +GO(gst_value_get_int_range_min, iFp) //GO(gst_value_get_int_range_step, GO(gst_value_get_structure, pFp) -//GO(gst_value_init_and_copy, +GO(gst_value_init_and_copy, vFpp) //GO(gst_value_intersect, GO(gst_value_is_fixed, iFp) //GO(gst_value_is_subset, -//GO(gst_value_list_append_and_take_value, -//GO(gst_value_list_append_value, +GO(gst_value_list_append_and_take_value, vFpp) +GO(gst_value_list_append_value, vFpp) //GO(gst_value_list_concat, -//GO(gst_value_list_get_size, -//GO(gst_value_list_get_type, -//GO(gst_value_list_get_value, +GO(gst_value_list_get_size, uFp) +GO(gst_value_list_get_type, LFv) +GO(gst_value_list_get_value, pFpu) //GO(gst_value_list_init, -//GO(gst_value_list_merge, +GO(gst_value_list_merge, vFppp) //GO(gst_value_list_prepend_value, DATAB(_gst_value_list_type, sizeof(void*)) //GO(gst_value_register, GO(gst_value_serialize, pFp) GO(gst_value_set_bitmask, vFpL) -//GO(gst_value_set_caps, +GO(gst_value_set_caps, vFpp) GO(gst_value_set_caps_features, vFpp) GO(gst_value_set_double_range, vFpdd) GO(gst_value_set_flagset, vFpuu) @@ -1776,10 +1777,12 @@ GO(gst_value_set_fraction_range, vFppp) GO(gst_value_set_fraction_range_full, vFpiiii) GO(gst_value_set_int64_range, vFpll) GO(gst_value_set_int64_range_step, vFplll) -//GO(gst_value_set_int_range, +GO(gst_value_set_int_range, vFpii) GO(gst_value_set_int_range_step, vFpiii) GO(gst_value_set_structure, vFpp) GO(gst_value_subtract, iFppp) //GO(gst_value_union, GO(gst_version, vFpppp) GO(gst_version_string, pFv) + +GO(dummy_iFpipLpp, iFpipLpp) // for gtkclass \ No newline at end of file diff --git a/src/wrapped/wrappedgstriff.c b/src/wrapped/wrappedgstriff.c new file mode 100644 index 00000000..35a300f1 --- /dev/null +++ b/src/wrapped/wrappedgstriff.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstriffName = "libgstriff-1.0.so.0"; +#define LIBNAME gstriff + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstriff_private.h b/src/wrapped/wrappedgstriff_private.h new file mode 100644 index 00000000..1952be96 --- /dev/null +++ b/src/wrapped/wrappedgstriff_private.h @@ -0,0 +1,19 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +GO(gst_riff_create_audio_caps, pFWpppppp) +GO(gst_riff_create_audio_template_caps, pFv) +//GO(gst_riff_create_iavs_caps, +//GO(gst_riff_create_iavs_template_caps, +GO(gst_riff_create_video_caps, pFuppppp) +GO(gst_riff_create_video_template_caps, pFv) +GO(gst_riff_init, vFv) +//GO(gst_riff_parse_chunk, +//GO(gst_riff_parse_file_header, +//GO(gst_riff_parse_info, +//GO(gst_riff_parse_strf_auds, +//GO(gst_riff_parse_strf_iavs, +//GO(gst_riff_parse_strf_vids, +//GO(gst_riff_parse_strh, +//GO(gst_riff_read_chunk, diff --git a/src/wrapped/wrappedgstrtp.c b/src/wrapped/wrappedgstrtp.c new file mode 100644 index 00000000..8a32f535 --- /dev/null +++ b/src/wrapped/wrappedgstrtp.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstrtpName = "libgstrtp-1.0.so.0"; +#define LIBNAME gstrtp + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstrtp_private.h b/src/wrapped/wrappedgstrtp_private.h new file mode 100644 index 00000000..91c55cb5 --- /dev/null +++ b/src/wrapped/wrappedgstrtp_private.h @@ -0,0 +1,215 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +//GO(gst_buffer_add_rtp_source_meta, +//GO(gst_buffer_get_rtp_source_meta, +//GO(gst_rtcp_buffer_add_packet, +//GO(gst_rtcp_buffer_get_first_packet, +//GO(gst_rtcp_buffer_get_packet_count, +//GO(gst_rtcp_buffer_map, +//GO(gst_rtcp_buffer_new, +//GO(gst_rtcp_buffer_new_copy_data, +//GO(gst_rtcp_buffer_new_take_data, +//GO(gst_rtcp_buffer_unmap, +//GO(gst_rtcp_buffer_validate, +//GO(gst_rtcp_buffer_validate_data, +//GO(gst_rtcp_buffer_validate_data_reduced, +//GO(gst_rtcp_buffer_validate_reduced, +GO(gst_rtcpfb_type_get_type, LFv) +//GO(gst_rtcp_ntp_to_unix, +//GO(gst_rtcp_packet_add_profile_specific_ext, +//GO(gst_rtcp_packet_add_rb, +//GO(gst_rtcp_packet_app_get_data, +//GO(gst_rtcp_packet_app_get_data_length, +//GO(gst_rtcp_packet_app_get_name, +//GO(gst_rtcp_packet_app_get_ssrc, +//GO(gst_rtcp_packet_app_get_subtype, +//GO(gst_rtcp_packet_app_set_data_length, +//GO(gst_rtcp_packet_app_set_name, +//GO(gst_rtcp_packet_app_set_ssrc, +//GO(gst_rtcp_packet_app_set_subtype, +//GO(gst_rtcp_packet_bye_add_ssrc, +//GO(gst_rtcp_packet_bye_add_ssrcs, +//GO(gst_rtcp_packet_bye_get_nth_ssrc, +//GO(gst_rtcp_packet_bye_get_reason, +//GO(gst_rtcp_packet_bye_get_reason_len, +//GO(gst_rtcp_packet_bye_get_ssrc_count, +//GO(gst_rtcp_packet_bye_set_reason, +//GO(gst_rtcp_packet_copy_profile_specific_ext, +//GO(gst_rtcp_packet_fb_get_fci, +//GO(gst_rtcp_packet_fb_get_fci_length, +//GO(gst_rtcp_packet_fb_get_media_ssrc, +//GO(gst_rtcp_packet_fb_get_sender_ssrc, +GO(gst_rtcp_packet_fb_get_type, LFv) +//GO(gst_rtcp_packet_fb_set_fci_length, +//GO(gst_rtcp_packet_fb_set_media_ssrc, +//GO(gst_rtcp_packet_fb_set_sender_ssrc, +//GO(gst_rtcp_packet_fb_set_type, +//GO(gst_rtcp_packet_get_count, +//GO(gst_rtcp_packet_get_length, +//GO(gst_rtcp_packet_get_padding, +//GO(gst_rtcp_packet_get_profile_specific_ext, +//GO(gst_rtcp_packet_get_profile_specific_ext_length, +//GO(gst_rtcp_packet_get_rb, +//GO(gst_rtcp_packet_get_rb_count, +GO(gst_rtcp_packet_get_type, LFv) +//GO(gst_rtcp_packet_move_to_next, +//GO(gst_rtcp_packet_remove, +//GO(gst_rtcp_packet_rr_get_ssrc, +//GO(gst_rtcp_packet_rr_set_ssrc, +//GO(gst_rtcp_packet_sdes_add_entry, +//GO(gst_rtcp_packet_sdes_add_item, +//GO(gst_rtcp_packet_sdes_copy_entry, +//GO(gst_rtcp_packet_sdes_first_entry, +//GO(gst_rtcp_packet_sdes_first_item, +//GO(gst_rtcp_packet_sdes_get_entry, +//GO(gst_rtcp_packet_sdes_get_item_count, +//GO(gst_rtcp_packet_sdes_get_ssrc, +//GO(gst_rtcp_packet_sdes_next_entry, +//GO(gst_rtcp_packet_sdes_next_item, +//GO(gst_rtcp_packet_set_rb, +//GO(gst_rtcp_packet_sr_get_sender_info, +//GO(gst_rtcp_packet_sr_set_sender_info, +//GO(gst_rtcp_packet_xr_first_rb, +//GO(gst_rtcp_packet_xr_get_block_length, +//GO(gst_rtcp_packet_xr_get_block_type, +//GO(gst_rtcp_packet_xr_get_dlrr_block, +//GO(gst_rtcp_packet_xr_get_prt_by_seq, +//GO(gst_rtcp_packet_xr_get_prt_info, +//GO(gst_rtcp_packet_xr_get_rle_info, +//GO(gst_rtcp_packet_xr_get_rle_nth_chunk, +//GO(gst_rtcp_packet_xr_get_rrt, +//GO(gst_rtcp_packet_xr_get_ssrc, +//GO(gst_rtcp_packet_xr_get_summary_info, +//GO(gst_rtcp_packet_xr_get_summary_jitter, +//GO(gst_rtcp_packet_xr_get_summary_pkt, +//GO(gst_rtcp_packet_xr_get_summary_ttl, +//GO(gst_rtcp_packet_xr_get_voip_burst_metrics, +//GO(gst_rtcp_packet_xr_get_voip_configuration_params, +//GO(gst_rtcp_packet_xr_get_voip_delay_metrics, +//GO(gst_rtcp_packet_xr_get_voip_jitter_buffer_params, +//GO(gst_rtcp_packet_xr_get_voip_metrics_ssrc, +//GO(gst_rtcp_packet_xr_get_voip_packet_metrics, +//GO(gst_rtcp_packet_xr_get_voip_quality_metrics, +//GO(gst_rtcp_packet_xr_get_voip_signal_metrics, +//GO(gst_rtcp_packet_xr_next_rb, +//GO(gst_rtcp_sdes_name_to_type, +GO(gst_rtcpsdes_type_get_type, LFv) +//GO(gst_rtcp_sdes_type_to_name, +GO(gst_rtcp_type_get_type, LFv) +//GO(gst_rtcp_unix_to_ntp, +GO(gst_rtcpxr_type_get_type, LFv) +//GO(gst_rtp_base_audio_payload_flush, +//GO(gst_rtp_base_audio_payload_get_adapter, +GO(gst_rtp_base_audio_payload_get_type, LFv) +//GO(gst_rtp_base_audio_payload_push, +//GO(gst_rtp_base_audio_payload_set_frame_based, +//GO(gst_rtp_base_audio_payload_set_frame_options, +//GO(gst_rtp_base_audio_payload_set_sample_based, +//GO(gst_rtp_base_audio_payload_set_samplebits_options, +//GO(gst_rtp_base_audio_payload_set_sample_options, +GO(gst_rtp_base_depayload_get_type, LFv) +//GO(gst_rtp_base_depayload_is_source_info_enabled, +//GO(gst_rtp_base_depayload_push, +//GO(gst_rtp_base_depayload_push_list, +//GO(gst_rtp_base_depayload_set_source_info_enabled, +//GO(gst_rtp_base_payload_allocate_output_buffer, +//GO(gst_rtp_base_payload_get_source_count, +GO(gst_rtp_base_payload_get_type, LFv) +//GO(gst_rtp_base_payload_is_filled, +//GO(gst_rtp_base_payload_is_source_info_enabled, +//GO(gst_rtp_base_payload_push, +//GO(gst_rtp_base_payload_push_list, +//GO(gst_rtp_base_payload_set_options, +//GO(gst_rtp_base_payload_set_outcaps, +//GO(gst_rtp_base_payload_set_outcaps_structure, +//GO(gst_rtp_base_payload_set_source_info_enabled, +//GO(gst_rtp_buffer_add_extension_onebyte_header, +//GO(gst_rtp_buffer_add_extension_twobytes_header, +//GO(gst_rtp_buffer_allocate_data, +//GO(gst_rtp_buffer_calc_header_len, +//GO(gst_rtp_buffer_calc_packet_len, +//GO(gst_rtp_buffer_calc_payload_len, +//GO(gst_rtp_buffer_compare_seqnum, +//GO(gst_rtp_buffer_default_clock_rate, +//GO(gst_rtp_buffer_ext_timestamp, +GO(gst_rtp_buffer_flags_get_type, LFv) +//GO(gst_rtp_buffer_get_csrc, +//GO(gst_rtp_buffer_get_csrc_count, +//GO(gst_rtp_buffer_get_extension, +//GO(gst_rtp_buffer_get_extension_bytes, +//GO(gst_rtp_buffer_get_extension_data, +//GO(gst_rtp_buffer_get_extension_onebyte_header, +//GO(gst_rtp_buffer_get_extension_onebyte_header_from_bytes, +//GO(gst_rtp_buffer_get_extension_twobytes_header, +//GO(gst_rtp_buffer_get_header_len, +//GO(gst_rtp_buffer_get_marker, +//GO(gst_rtp_buffer_get_packet_len, +//GO(gst_rtp_buffer_get_padding, +//GO(gst_rtp_buffer_get_payload, +//GO(gst_rtp_buffer_get_payload_buffer, +//GO(gst_rtp_buffer_get_payload_bytes, +//GO(gst_rtp_buffer_get_payload_len, +//GO(gst_rtp_buffer_get_payload_subbuffer, +//GO(gst_rtp_buffer_get_payload_type, +//GO(gst_rtp_buffer_get_seq, +//GO(gst_rtp_buffer_get_ssrc, +//GO(gst_rtp_buffer_get_timestamp, +//GO(gst_rtp_buffer_get_version, +//GO(gst_rtp_buffer_map, +GO(gst_rtp_buffer_map_flags_get_type, LFv) +//GO(gst_rtp_buffer_new_allocate, +//GO(gst_rtp_buffer_new_allocate_len, +//GO(gst_rtp_buffer_new_copy_data, +//GO(gst_rtp_buffer_new_take_data, +//GO(gst_rtp_buffer_pad_to, +//GO(gst_rtp_buffer_remove_extension_data, +//GO(gst_rtp_buffer_set_csrc, +//GO(gst_rtp_buffer_set_extension, +//GO(gst_rtp_buffer_set_extension_data, +//GO(gst_rtp_buffer_set_marker, +//GO(gst_rtp_buffer_set_packet_len, +//GO(gst_rtp_buffer_set_padding, +//GO(gst_rtp_buffer_set_payload_type, +//GO(gst_rtp_buffer_set_seq, +//GO(gst_rtp_buffer_set_ssrc, +//GO(gst_rtp_buffer_set_timestamp, +//GO(gst_rtp_buffer_set_version, +//GO(gst_rtp_buffer_unmap, +//GO(gst_rtp_get_header_extension_list, +//GO(gst_rtp_hdrext_get_ntp_56, +//GO(gst_rtp_hdrext_get_ntp_64, +//GO(gst_rtp_hdrext_set_ntp_56, +//GO(gst_rtp_hdrext_set_ntp_64, +//GO(gst_rtp_header_extension_class_set_uri, +//GO(gst_rtp_header_extension_create_from_uri, +GO(gst_rtp_header_extension_direction_get_type, LFv) +GO(gst_rtp_header_extension_flags_get_type, LFv) +//GO(gst_rtp_header_extension_get_direction, +//GO(gst_rtp_header_extension_get_id, +//GO(gst_rtp_header_extension_get_max_size, +//GO(gst_rtp_header_extension_get_sdp_caps_field_name, +//GO(gst_rtp_header_extension_get_supported_flags, +GO(gst_rtp_header_extension_get_type, LFv) +//GO(gst_rtp_header_extension_get_uri, +//GO(gst_rtp_header_extension_read, +//GO(gst_rtp_header_extension_set_attributes_from_caps, +//GO(gst_rtp_header_extension_set_caps_from_attributes, +//GO(gst_rtp_header_extension_set_caps_from_attributes_helper, +//GO(gst_rtp_header_extension_set_direction, +//GO(gst_rtp_header_extension_set_id, +//GO(gst_rtp_header_extension_set_non_rtp_sink_caps, +//GO(gst_rtp_header_extension_set_wants_update_non_rtp_src_caps, +//GO(gst_rtp_header_extension_update_non_rtp_src_caps, +//GO(gst_rtp_header_extension_wants_update_non_rtp_src_caps, +//GO(gst_rtp_header_extension_write, +GO(gst_rtp_payload_get_type, LFv) +//GO(gst_rtp_payload_info_for_name, +//GO(gst_rtp_payload_info_for_pt, +GO(gst_rtp_profile_get_type, LFv) +GO(gst_rtp_source_meta_api_get_type, LFv) +//GO(gst_rtp_source_meta_append_csrc, +//GO(gst_rtp_source_meta_get_info, +//GO(gst_rtp_source_meta_get_source_count, +//GO(gst_rtp_source_meta_set_ssrc, diff --git a/src/wrapped/wrappedgstrtsp.c b/src/wrapped/wrappedgstrtsp.c new file mode 100644 index 00000000..c9afd743 --- /dev/null +++ b/src/wrapped/wrappedgstrtsp.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstrtspName = "libgstrtsp-1.0.so.0"; +#define LIBNAME gstrtsp + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstrtsp_private.h b/src/wrapped/wrappedgstrtsp_private.h new file mode 100644 index 00000000..f9d9ebfc --- /dev/null +++ b/src/wrapped/wrappedgstrtsp_private.h @@ -0,0 +1,170 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +GO(gst_rtsp_auth_credential_get_type, LFv) +//GO(gst_rtsp_auth_credentials_free, +GO(gst_rtsp_auth_method_get_type, LFv) +//GO(gst_rtsp_auth_param_copy, +//GO(gst_rtsp_auth_param_free, +GO(gst_rtsp_auth_param_get_type, LFv) +//GO(gst_rtsp_connection_accept, +//GO(gst_rtsp_connection_clear_auth_params, +//GO(gst_rtsp_connection_close, +//GO(gst_rtsp_connection_connect, +//GO(gst_rtsp_connection_connect_usec, +//GO(gst_rtsp_connection_connect_with_response, +//GO(gst_rtsp_connection_connect_with_response_usec, +//GO(gst_rtsp_connection_create, +//GO(gst_rtsp_connection_create_from_socket, +//GO(gst_rtsp_connection_do_tunnel, +//GO(gst_rtsp_connection_flush, +//GO(gst_rtsp_connection_free, +//GO(gst_rtsp_connection_get_ignore_x_server_reply, +//GO(gst_rtsp_connection_get_ip, +//GO(gst_rtsp_connection_get_read_socket, +//GO(gst_rtsp_connection_get_remember_session_id, +//GO(gst_rtsp_connection_get_tls, +//GO(gst_rtsp_connection_get_tls_database, +//GO(gst_rtsp_connection_get_tls_interaction, +//GO(gst_rtsp_connection_get_tls_validation_flags, +//GO(gst_rtsp_connection_get_tunnelid, +//GO(gst_rtsp_connection_get_url, +//GO(gst_rtsp_connection_get_write_socket, +//GO(gst_rtsp_connection_is_tunneled, +//GO(gst_rtsp_connection_next_timeout, +//GO(gst_rtsp_connection_next_timeout_usec, +//GO(gst_rtsp_connection_poll, +//GO(gst_rtsp_connection_poll_usec, +//GO(gst_rtsp_connection_read, +//GO(gst_rtsp_connection_read_usec, +//GO(gst_rtsp_connection_receive, +//GO(gst_rtsp_connection_receive_usec, +//GO(gst_rtsp_connection_reset_timeout, +//GO(gst_rtsp_connection_send, +//GO(gst_rtsp_connection_send_messages, +//GO(gst_rtsp_connection_send_messages_usec, +//GO(gst_rtsp_connection_send_usec, +//GO(gst_rtsp_connection_set_accept_certificate_func, +//GO(gst_rtsp_connection_set_auth, +//GO(gst_rtsp_connection_set_auth_param, +//GO(gst_rtsp_connection_set_content_length_limit, +//GO(gst_rtsp_connection_set_http_mode, +//GO(gst_rtsp_connection_set_ignore_x_server_reply, +//GO(gst_rtsp_connection_set_ip, +//GO(gst_rtsp_connection_set_proxy, +//GO(gst_rtsp_connection_set_qos_dscp, +//GO(gst_rtsp_connection_set_remember_session_id, +//GO(gst_rtsp_connection_set_tls_database, +//GO(gst_rtsp_connection_set_tls_interaction, +//GO(gst_rtsp_connection_set_tls_validation_flags, +//GO(gst_rtsp_connection_set_tunneled, +//GO(gst_rtsp_connection_write, +//GO(gst_rtsp_connection_write_usec, +GO(gst_rtsp_event_get_type, LFv) +//GO(gst_rtsp_extension_after_send, +//GO(gst_rtsp_extension_before_send, +//GO(gst_rtsp_extension_configure_stream, +//GO(gst_rtsp_extension_detect_server, +//GO(gst_rtsp_extension_get_transports, +GO(gst_rtsp_extension_get_type, LFv) +//GO(gst_rtsp_extension_parse_sdp, +//GO(gst_rtsp_extension_receive_request, +//GO(gst_rtsp_extension_send, +//GO(gst_rtsp_extension_setup_media, +//GO(gst_rtsp_extension_stream_select, +GO(gst_rtsp_family_get_type, LFv) +//GO(gst_rtsp_find_header_field, +//GO(gst_rtsp_find_method, +//GO(gst_rtsp_generate_digest_auth_response, +//GO(gst_rtsp_generate_digest_auth_response_from_md5, +//GO(gst_rtsp_header_allow_multiple, +//GO(gst_rtsp_header_as_text, +GO(gst_rtsp_header_field_get_type, LFv) +GO(gst_rtsp_lower_trans_get_type, LFv) +//GO(gst_rtsp_message_add_header, +//GO(gst_rtsp_message_add_header_by_name, +//GO(gst_rtsp_message_append_headers, +//GO(gst_rtsp_message_copy, +//GO(gst_rtsp_message_dump, +//GO(gst_rtsp_message_free, +//GO(gst_rtsp_message_get_body, +//GO(gst_rtsp_message_get_body_buffer, +//GO(gst_rtsp_message_get_header, +//GO(gst_rtsp_message_get_header_by_name, +GO(gst_rtsp_message_get_type, LFv) +//GO(gst_rtsp_message_has_body_buffer, +//GO(gst_rtsp_message_init, +//GO(gst_rtsp_message_init_data, +//GO(gst_rtsp_message_init_request, +//GO(gst_rtsp_message_init_response, +//GO(gst_rtsp_message_new, +//GO(gst_rtsp_message_new_data, +//GO(gst_rtsp_message_new_request, +//GO(gst_rtsp_message_new_response, +//GO(gst_rtsp_message_parse_auth_credentials, +//GO(gst_rtsp_message_parse_data, +//GO(gst_rtsp_message_parse_request, +//GO(gst_rtsp_message_parse_response, +//GO(gst_rtsp_message_remove_header, +//GO(gst_rtsp_message_remove_header_by_name, +//GO(gst_rtsp_message_set_body, +//GO(gst_rtsp_message_set_body_buffer, +//GO(gst_rtsp_message_steal_body, +//GO(gst_rtsp_message_steal_body_buffer, +//GO(gst_rtsp_message_take_body, +//GO(gst_rtsp_message_take_body_buffer, +//GO(gst_rtsp_message_take_header, +//GO(gst_rtsp_message_take_header_by_name, +//GO(gst_rtsp_message_unset, +//GO(gst_rtsp_method_as_text, +GO(gst_rtsp_method_get_type, LFv) +GO(gst_rtsp_msg_get_type, LFv) +GO(gst_rtsp_msg_type_get_type, LFv) +//GO(gst_rtsp_options_as_text, +//GO(gst_rtsp_options_from_text, +GO(gst_rtsp_profile_get_type, LFv) +//GO(gst_rtsp_range_convert_units, +//GO(gst_rtsp_range_free, +//GO(gst_rtsp_range_get_times, +//GO(gst_rtsp_range_parse, +//GO(gst_rtsp_range_to_string, +GO(gst_rtsp_range_unit_get_type, LFv) +GO(gst_rtsp_result_get_type, LFv) +GO(gst_rtsp_state_get_type, LFv) +//GO(gst_rtsp_status_as_text, +GO(gst_rtsp_status_code_get_type, LFv) +//GO(gst_rtsp_strresult, +GO(gst_rtsp_time_type_get_type, LFv) +GO(gst_rtsp_trans_mode_get_type, LFv) +//GO(gst_rtsp_transport_as_text, +//GO(gst_rtsp_transport_free, +//GO(gst_rtsp_transport_get_manager, +//GO(gst_rtsp_transport_get_media_type, +//GO(gst_rtsp_transport_get_mime, +//GO(gst_rtsp_transport_init, +//GO(gst_rtsp_transport_new, +//GO(gst_rtsp_transport_parse, +//GO(gst_rtsp_url_copy, +//GO(gst_rtsp_url_decode_path_components, +//GO(gst_rtsp_url_free, +//GO(gst_rtsp_url_get_port, +//GO(gst_rtsp_url_get_request_uri, +//GO(gst_rtsp_url_get_request_uri_with_control, +GO(gst_rtsp_url_get_type, LFv) +//GO(gst_rtsp_url_parse, +//GO(gst_rtsp_url_set_port, +//GO(gst_rtsp_version_as_text, +GO(gst_rtsp_version_get_type, LFv) +//GO(gst_rtsp_watch_attach, +//GO(gst_rtsp_watch_get_send_backlog, +//GO(gst_rtsp_watch_new, +//GO(gst_rtsp_watch_reset, +//GO(gst_rtsp_watch_send_message, +//GO(gst_rtsp_watch_send_messages, +//GO(gst_rtsp_watch_set_flushing, +//GO(gst_rtsp_watch_set_send_backlog, +//GO(gst_rtsp_watch_unref, +//GO(gst_rtsp_watch_wait_backlog, +//GO(gst_rtsp_watch_wait_backlog_usec, +//GO(gst_rtsp_watch_write_data, diff --git a/src/wrapped/wrappedgstsdp.c b/src/wrapped/wrappedgstsdp.c new file mode 100644 index 00000000..833f4165 --- /dev/null +++ b/src/wrapped/wrappedgstsdp.c @@ -0,0 +1,22 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#define _GNU_SOURCE /* See feature_test_macros(7) */ +#include <dlfcn.h> + +#include "wrappedlibs.h" + +#include "debug.h" +#include "wrapper.h" +#include "bridge.h" +#include "librarian/library_private.h" +#include "x64emu.h" + +const char* gstsdpName = "libgstsdp-1.0.so.0"; +#define LIBNAME gstsdp + +#define PRE_INIT \ + if(box64_nogtk) \ + return -1; + +#include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstsdp_private.h b/src/wrapped/wrappedgstsdp_private.h new file mode 100644 index 00000000..ba88728f --- /dev/null +++ b/src/wrapped/wrappedgstsdp_private.h @@ -0,0 +1,178 @@ +#if !(defined(GO) && defined(GOM) && defined(GO2) && defined(DATA)) +#error meh! +#endif + +//GO(gst_mikey_message_add_cs_srtp, +//GO(gst_mikey_message_add_payload, +//GO(gst_mikey_message_add_pke, +//GO(gst_mikey_message_add_rand, +//GO(gst_mikey_message_add_rand_len, +//GO(gst_mikey_message_add_t, +//GO(gst_mikey_message_add_t_now_ntp_utc, +//GO(gst_mikey_message_base64_encode, +//GO(gst_mikey_message_find_payload, +//GO(gst_mikey_message_get_cs_srtp, +//GO(gst_mikey_message_get_n_cs, +//GO(gst_mikey_message_get_n_payloads, +//GO(gst_mikey_message_get_payload, +GO(gst_mikey_message_get_type, LFv) +//GO(gst_mikey_message_insert_cs_srtp, +//GO(gst_mikey_message_insert_payload, +//GO(gst_mikey_message_new, +//GO(gst_mikey_message_new_from_bytes, +//GO(gst_mikey_message_new_from_caps, +//GO(gst_mikey_message_new_from_data, +//GO(gst_mikey_message_remove_cs_srtp, +//GO(gst_mikey_message_remove_payload, +//GO(gst_mikey_message_replace_cs_srtp, +//GO(gst_mikey_message_replace_payload, +//GO(gst_mikey_message_set_info, +//GO(gst_mikey_message_to_bytes, +//GO(gst_mikey_message_to_caps, +GO(gst_mikey_payload_get_type, LFv) +//GO(gst_mikey_payload_kemac_add_sub, +//GO(gst_mikey_payload_kemac_get_n_sub, +//GO(gst_mikey_payload_kemac_get_sub, +//GO(gst_mikey_payload_kemac_remove_sub, +//GO(gst_mikey_payload_kemac_set, +//GO(gst_mikey_payload_key_data_set_interval, +//GO(gst_mikey_payload_key_data_set_key, +//GO(gst_mikey_payload_key_data_set_salt, +//GO(gst_mikey_payload_key_data_set_spi, +//GO(gst_mikey_payload_new, +//GO(gst_mikey_payload_pke_set, +//GO(gst_mikey_payload_rand_set, +//GO(gst_mikey_payload_sp_add_param, +//GO(gst_mikey_payload_sp_get_n_params, +//GO(gst_mikey_payload_sp_get_param, +//GO(gst_mikey_payload_sp_remove_param, +//GO(gst_mikey_payload_sp_set, +//GO(gst_mikey_payload_t_set, +//GO(gst_sdp_address_is_multicast, +//GO(gst_sdp_attribute_clear, +//GO(gst_sdp_attribute_set, +//GO(gst_sdp_bandwidth_clear, +//GO(gst_sdp_bandwidth_set, +//GO(gst_sdp_connection_clear, +//GO(gst_sdp_connection_set, +//GO(gst_sdp_make_keymgmt, +//GO(gst_sdp_media_add_attribute, +//GO(gst_sdp_media_add_bandwidth, +//GO(gst_sdp_media_add_connection, +//GO(gst_sdp_media_add_format, +//GO(gst_sdp_media_as_text, +//GO(gst_sdp_media_attributes_len, +//GO(gst_sdp_media_attributes_to_caps, +//GO(gst_sdp_media_bandwidths_len, +//GO(gst_sdp_media_connections_len, +//GO(gst_sdp_media_copy, +//GO(gst_sdp_media_formats_len, +//GO(gst_sdp_media_free, +//GO(gst_sdp_media_get_attribute, +//GO(gst_sdp_media_get_attribute_val, +//GO(gst_sdp_media_get_attribute_val_n, +//GO(gst_sdp_media_get_bandwidth, +//GO(gst_sdp_media_get_caps_from_media, +//GO(gst_sdp_media_get_connection, +//GO(gst_sdp_media_get_format, +//GO(gst_sdp_media_get_information, +//GO(gst_sdp_media_get_key, +//GO(gst_sdp_media_get_media, +//GO(gst_sdp_media_get_num_ports, +//GO(gst_sdp_media_get_port, +//GO(gst_sdp_media_get_proto, +//GO(gst_sdp_media_init, +//GO(gst_sdp_media_insert_attribute, +//GO(gst_sdp_media_insert_bandwidth, +//GO(gst_sdp_media_insert_connection, +//GO(gst_sdp_media_insert_format, +//GO(gst_sdp_media_new, +//GO(gst_sdp_media_parse_keymgmt, +//GO(gst_sdp_media_remove_attribute, +//GO(gst_sdp_media_remove_bandwidth, +//GO(gst_sdp_media_remove_connection, +//GO(gst_sdp_media_remove_format, +//GO(gst_sdp_media_replace_attribute, +//GO(gst_sdp_media_replace_bandwidth, +//GO(gst_sdp_media_replace_connection, +//GO(gst_sdp_media_replace_format, +//GO(gst_sdp_media_set_information, +//GO(gst_sdp_media_set_key, +//GO(gst_sdp_media_set_media, +//GO(gst_sdp_media_set_media_from_caps, +//GO(gst_sdp_media_set_port_info, +//GO(gst_sdp_media_set_proto, +//GO(gst_sdp_media_uninit, +//GO(gst_sdp_message_add_attribute, +//GO(gst_sdp_message_add_bandwidth, +//GO(gst_sdp_message_add_email, +//GO(gst_sdp_message_add_media, +//GO(gst_sdp_message_add_phone, +//GO(gst_sdp_message_add_time, +//GO(gst_sdp_message_add_zone, +//GO(gst_sdp_message_as_text, +//GO(gst_sdp_message_as_uri, +//GO(gst_sdp_message_attributes_len, +//GO(gst_sdp_message_attributes_to_caps, +//GO(gst_sdp_message_bandwidths_len, +//GO(gst_sdp_message_copy, +//GO(gst_sdp_message_dump, +//GO(gst_sdp_message_emails_len, +//GO(gst_sdp_message_free, +//GO(gst_sdp_message_get_attribute, +//GO(gst_sdp_message_get_attribute_val, +//GO(gst_sdp_message_get_attribute_val_n, +//GO(gst_sdp_message_get_bandwidth, +//GO(gst_sdp_message_get_connection, +//GO(gst_sdp_message_get_email, +//GO(gst_sdp_message_get_information, +//GO(gst_sdp_message_get_key, +//GO(gst_sdp_message_get_media, +//GO(gst_sdp_message_get_origin, +//GO(gst_sdp_message_get_phone, +//GO(gst_sdp_message_get_session_name, +//GO(gst_sdp_message_get_time, +GO(gst_sdp_message_get_type, LFv) +//GO(gst_sdp_message_get_uri, +//GO(gst_sdp_message_get_version, +//GO(gst_sdp_message_get_zone, +//GO(gst_sdp_message_init, +//GO(gst_sdp_message_insert_attribute, +//GO(gst_sdp_message_insert_bandwidth, +//GO(gst_sdp_message_insert_email, +//GO(gst_sdp_message_insert_phone, +//GO(gst_sdp_message_insert_time, +//GO(gst_sdp_message_insert_zone, +//GO(gst_sdp_message_medias_len, +//GO(gst_sdp_message_new, +//GO(gst_sdp_message_new_from_text, +//GO(gst_sdp_message_parse_buffer, +//GO(gst_sdp_message_parse_keymgmt, +//GO(gst_sdp_message_parse_uri, +//GO(gst_sdp_message_phones_len, +//GO(gst_sdp_message_remove_attribute, +//GO(gst_sdp_message_remove_bandwidth, +//GO(gst_sdp_message_remove_email, +//GO(gst_sdp_message_remove_phone, +//GO(gst_sdp_message_remove_time, +//GO(gst_sdp_message_remove_zone, +//GO(gst_sdp_message_replace_attribute, +//GO(gst_sdp_message_replace_bandwidth, +//GO(gst_sdp_message_replace_email, +//GO(gst_sdp_message_replace_phone, +//GO(gst_sdp_message_replace_time, +//GO(gst_sdp_message_replace_zone, +//GO(gst_sdp_message_set_connection, +//GO(gst_sdp_message_set_information, +//GO(gst_sdp_message_set_key, +//GO(gst_sdp_message_set_origin, +//GO(gst_sdp_message_set_session_name, +//GO(gst_sdp_message_set_uri, +//GO(gst_sdp_message_set_version, +//GO(gst_sdp_message_times_len, +//GO(gst_sdp_message_uninit, +//GO(gst_sdp_message_zones_len, +//GO(gst_sdp_time_clear, +//GO(gst_sdp_time_set, +//GO(gst_sdp_zone_clear, +//GO(gst_sdp_zone_set, diff --git a/src/wrapped/wrappedgsttag_private.h b/src/wrapped/wrappedgsttag_private.h index 26e284ae..9049c9e8 100644 --- a/src/wrapped/wrappedgsttag_private.h +++ b/src/wrapped/wrappedgsttag_private.h @@ -5,7 +5,7 @@ //GO(gst_tag_check_language_code, //GO(gst_tag_demux_get_type, //GO(gst_tag_demux_result_get_type, -//GO(gst_tag_freeform_string_to_utf8, +GO(gst_tag_freeform_string_to_utf8, pFpip) //GO(gst_tag_from_id3_tag, //GO(gst_tag_from_id3_user_tag, //GO(gst_tag_from_vorbis_tag, @@ -24,15 +24,15 @@ GO(gst_tag_get_language_name, pFp) //GO(gst_tag_get_license_version, //GO(gst_tag_id3_genre_count, //GO(gst_tag_id3_genre_get, -//GO(gst_tag_image_data_to_image_sample, +GO(gst_tag_image_data_to_image_sample, pFpui) //GO(gst_tag_image_type_get_type, //GO(gst_tag_license_flags_get_type, //GO(gst_tag_list_add_id3_image, //GO(gst_tag_list_from_exif_buffer, //GO(gst_tag_list_from_exif_buffer_with_tiff_header, //GO(gst_tag_list_from_id3v2_tag, -//GO(gst_tag_list_from_vorbiscomment, -//GO(gst_tag_list_from_vorbiscomment_buffer, +GO(gst_tag_list_from_vorbiscomment, pFpLpup) +GO(gst_tag_list_from_vorbiscomment_buffer, pFppup) //GO(gst_tag_list_from_xmp_buffer, //GO(gst_tag_list_new_from_id3v1, //GO(gst_tag_list_to_exif_buffer, diff --git a/src/wrapped/wrappedgstvideo.c b/src/wrapped/wrappedgstvideo.c index 7bb08d74..eb9bbd16 100644 --- a/src/wrapped/wrappedgstvideo.c +++ b/src/wrapped/wrappedgstvideo.c @@ -11,12 +11,47 @@ #include "bridge.h" #include "librarian/library_private.h" #include "x64emu.h" +#include "emu/x64emu_private.h" +#include "callback.h" +#include "librarian.h" +#include "box64context.h" +#include "emu/x64emu_private.h" +#include "myalign.h" +#include "gtkclass.h" +#include "fileutils.h" const char* gstvideoName = "libgstvideo-1.0.so.0"; #define LIBNAME gstvideo +typedef size_t (*LFv_t)(); + +#define ADDED_FUNCTIONS() \ + GO(gst_video_decoder_get_type, LFv_t) \ + GO(gst_video_encoder_get_type, LFv_t) \ + GO(gst_video_sink_get_type, LFv_t) \ + GO(gst_video_aggregator_get_type, LFv_t) \ + GO(gst_video_aggregator_pad_get_type, LFv_t) \ + GO(gst_video_filter_get_type, LFv_t) \ + +#include "generated/wrappedgstbasetypes.h" + +#include "wrappercallback.h" + #define PRE_INIT \ if(box64_nogtk) \ return -1; +#define CUSTOM_INIT \ + getMy(lib); \ + SetGstVideoDecoderID(my->gst_video_decoder_get_type());\ + SetGstVideoEncoderID(my->gst_video_encoder_get_type());\ + SetGstVideoSinkID(my->gst_video_sink_get_type());\ + SetGstVideoAggregatorID(my->gst_video_aggregator_get_type());\ + SetGstVideoAggregatorPadID(my->gst_video_aggregator_pad_get_type());\ + SetGstVideoFilterID(my->gst_video_filter_get_type());\ + setNeededLibs(lib, 1, "libgstreamer-1.0.so.0"); + +#define CUSTOM_FINI \ + freeMy(); + #include "wrappedlib_init.h" diff --git a/src/wrapped/wrappedgstvideo_private.h b/src/wrapped/wrappedgstvideo_private.h index 27eb4aec..56d66473 100644 --- a/src/wrapped/wrappedgstvideo_private.h +++ b/src/wrapped/wrappedgstvideo_private.h @@ -3,44 +3,53 @@ #endif //GO(gst_buffer_add_video_afd_meta, -//GO(gst_buffer_add_video_affine_transformation_meta, +GO(gst_buffer_add_video_affine_transformation_meta, pFp) //GO(gst_buffer_add_video_bar_meta, -//GO(gst_buffer_add_video_caption_meta, +GO(gst_buffer_add_video_caption_meta, pFpipL) +GO(gst_buffer_add_video_codec_alpha_meta, pFpp) //GO(gst_buffer_add_video_gl_texture_upload_meta, -//GO(gst_buffer_add_video_meta, -//GO(gst_buffer_add_video_meta_full, +GO(gst_buffer_add_video_meta, pFpiiuu) +GO(gst_buffer_add_video_meta_full, pFpiiuuupp) //GO(gst_buffer_add_video_overlay_composition_meta, //GO(gst_buffer_add_video_region_of_interest_meta, //GO(gst_buffer_add_video_region_of_interest_meta_id, -//GO(gst_buffer_add_video_time_code_meta, +GO(gst_buffer_add_video_time_code_meta, pFpp) //GO(gst_buffer_add_video_time_code_meta_full, -//GO(gst_buffer_get_video_meta, +GO(gst_buffer_get_video_meta, pFp) //GO(gst_buffer_get_video_meta_id, //GO(gst_buffer_get_video_region_of_interest_meta_id, GO(gst_buffer_pool_config_get_video_alignment, iFpp) GO(gst_buffer_pool_config_set_video_alignment, vFpp) -//GO(gst_color_balance_channel_get_type, +GO(gst_color_balance_channel_get_type, LFv) GO(gst_color_balance_get_balance_type, uFp) -//GO(gst_color_balance_get_type, +GO(gst_color_balance_get_type, LFv) GO(gst_color_balance_get_value, iFpp) GO(gst_color_balance_list_channels, pFp) -//GO(gst_color_balance_set_value, +GO(gst_color_balance_set_value, vFppi) //GO(gst_color_balance_type_get_type, GO(gst_color_balance_value_changed, vFppi) //GO(gst_is_video_overlay_prepare_window_handle_message, //GO(gst_navigation_command_get_type, -//GO(gst_navigation_event_get_type, +GO(gst_navigation_event_get_coordinates, iFppp) +GO(gst_navigation_event_get_type, LFv) +GO(gst_navigation_event_new_key_press, pFpi) +GO(gst_navigation_event_new_key_release, pFpi) +GO(gst_navigation_event_new_mouse_button_press, pFpddi) +GO(gst_navigation_event_new_mouse_button_release, pFpddi) +GO(gst_navigation_event_new_mouse_move, pFddi) +GO(gst_navigation_event_new_mouse_scroll, pFddddi) //GO(gst_navigation_event_parse_command, -//GO(gst_navigation_event_parse_key_event, +GO(gst_navigation_event_parse_key_event, iFpp) //GO(gst_navigation_event_parse_mouse_button_event, //GO(gst_navigation_event_parse_mouse_move_event, -//GO(gst_navigation_event_parse_mouse_scroll_event, +GO(gst_navigation_event_parse_mouse_scroll_event, iFppppp) +GO(gst_navigation_event_set_coordinates, iFpdd) //GO(gst_navigation_event_type_get_type, -//GO(gst_navigation_get_type, +GO(gst_navigation_get_type, LFv) //GO(gst_navigation_message_get_type, //GO(gst_navigation_message_new_angles_changed, //GO(gst_navigation_message_new_commands_changed, -//GO(gst_navigation_message_new_event, +GO(gst_navigation_message_new_event, pFpp) //GO(gst_navigation_message_new_mouse_over, //GO(gst_navigation_message_parse_angles_changed, //GO(gst_navigation_message_parse_event, @@ -55,136 +64,140 @@ GO(gst_color_balance_value_changed, vFppi) //GO(gst_navigation_query_set_angles, //GO(gst_navigation_query_set_commands, //GO(gst_navigation_query_set_commandsv, -//GO(gst_navigation_query_type_get_type, +GO(gst_navigation_query_type_get_type, LFv) GO(gst_navigation_send_command, vFpu) GO(gst_navigation_send_event, vFpp) +GO(gst_navigation_send_event_simple, vFpp) GO(gst_navigation_send_key_event, vFppp) GO(gst_navigation_send_mouse_event, vFppidd) GO(gst_navigation_send_mouse_scroll_event, vFpdddd) -//GO(gst_video_afd_meta_api_get_type, +GO(gst_video_afd_meta_api_get_type, LFv) //GO(gst_video_afd_meta_get_info, -//GO(gst_video_afd_spec_get_type, -//GO(gst_video_afd_value_get_type, -//GO(gst_video_affine_transformation_meta_api_get_type, +GO(gst_video_afd_spec_get_type, LFv) +GO(gst_video_afd_value_get_type, LFv) +GO(gst_video_affine_transformation_meta_api_get_type, LFv) //GO(gst_video_affine_transformation_meta_apply_matrix, //GO(gst_video_affine_transformation_meta_get_info, -//GO(gst_video_aggregator_convert_pad_get_type, +GO(gst_video_aggregator_convert_pad_get_type, LFv) //GO(gst_video_aggregator_convert_pad_update_conversion_info, -//GO(gst_video_aggregator_get_type, -//GO(gst_video_aggregator_pad_get_current_buffer, +GO(gst_video_aggregator_get_type, LFv) +GO(gst_video_aggregator_pad_get_current_buffer, pFp) //GO(gst_video_aggregator_pad_get_prepared_frame, -//GO(gst_video_aggregator_pad_get_type, +GO(gst_video_aggregator_pad_get_type, LFv) //GO(gst_video_aggregator_pad_has_current_buffer, //GO(gst_video_aggregator_pad_set_needs_alpha, GO(gst_video_alignment_reset, vFp) -//GO(gst_video_alpha_mode_get_type, -//GO(gst_video_ancillary_di_d16_get_type, -//GO(gst_video_ancillary_did_get_type, -//GO(gst_video_bar_meta_api_get_type, +GO(gst_video_alpha_mode_get_type, LFv) +GO(gst_video_ancillary_di_d16_get_type, LFv) +GO(gst_video_ancillary_did_get_type, LFv) +GO(gst_video_bar_meta_api_get_type, LFv) //GO(gst_video_bar_meta_get_info, //GO(gst_video_blend, //GO(gst_video_blend_scale_linear_RGBA, -//GO(gst_video_buffer_flags_get_type, -//GO(gst_video_buffer_pool_get_type, +GO(gst_video_buffer_flags_get_type, LFv) +GO(gst_video_buffer_pool_get_type, LFv) GO(gst_video_buffer_pool_new, pFv) GO(gst_video_calculate_display_ratio, iFppuuuuuu) -//GO(gst_video_caption_meta_api_get_type, +GO(gst_video_caption_meta_api_get_type, LFv) //GO(gst_video_caption_meta_get_info, //GO(gst_video_caption_type_from_caps, -//GO(gst_video_caption_type_get_type, +GO(gst_video_caption_type_get_type, LFv) //GO(gst_video_caption_type_to_caps, -//GO(gst_video_chroma_flags_get_type, +GO(gst_video_chroma_flags_get_type, LFv) //GO(gst_video_chroma_from_string, -//GO(gst_video_chroma_method_get_type, -//GO(gst_video_chroma_mode_get_type, +GO(gst_video_chroma_method_get_type, LFv) +GO(gst_video_chroma_mode_get_type, LFv) GO(gst_video_chroma_resample, vFppi) GO(gst_video_chroma_resample_free, vFp) GO(gst_video_chroma_resample_get_info, vFppp) GO(gst_video_chroma_resample_new, pFuuuuii) -//GO(gst_video_chroma_site_get_type, +GO(gst_video_chroma_site_get_type, LFv) GO(gst_video_chroma_to_string, pFu) -//GO(gst_video_codec_frame_get_type, +GO(gst_video_codec_frame_get_type, LFv) //GO(gst_video_codec_frame_get_user_data, -//GO(gst_video_codec_frame_ref, +GO(gst_video_codec_frame_ref, pFp) //GO(gst_video_codec_frame_set_user_data, -//GO(gst_video_codec_frame_unref, -//GO(gst_video_codec_state_get_type, -//GO(gst_video_codec_state_ref, -//GO(gst_video_codec_state_unref, +GO(gst_video_codec_frame_unref, vFp) +GO(gst_video_codec_state_get_type, LFv) +GO(gst_video_codec_state_ref, pFp) +GO(gst_video_codec_state_unref, vFp) GO(gst_video_colorimetry_from_string, iFpp) GO(gst_video_colorimetry_is_equal, iFpp) GO(gst_video_colorimetry_matches, iFpp) GO(gst_video_colorimetry_to_string, pFp) GO(gst_video_color_matrix_from_iso, uFu) GO(gst_video_color_matrix_get_Kr_Kb, iFupp) -//GO(gst_video_color_matrix_get_type, +GO(gst_video_color_matrix_get_type, LFv) GO(gst_video_color_matrix_to_iso, uFu) GO(gst_video_color_primaries_from_iso, uFu) GO(gst_video_color_primaries_get_info, pFu) -//GO(gst_video_color_primaries_get_type, +GO(gst_video_color_primaries_get_type, LFv) GO(gst_video_color_primaries_to_iso, uFu) -//GO(gst_video_color_range_get_type, +GO(gst_video_color_range_get_type, LFv) //GO(gst_video_color_range_offsets, //GO(gst_video_color_transfer_decode, //GO(gst_video_color_transfer_encode, -//GO(gst_video_content_light_level_add_to_caps, +GO(gst_video_content_light_level_add_to_caps, iFpp) //GO(gst_video_content_light_level_from_caps, GO(gst_video_content_light_level_from_string, iFpp) GO(gst_video_content_light_level_init, vFp) GO(gst_video_content_light_level_to_string, pFp) -//GO(gst_video_converter_frame, -//GO(gst_video_converter_free, +GO(gst_video_converter_frame, vFppp) +GO(gst_video_converter_free, vFp) GO(gst_video_converter_get_config, pFp) -//GO(gst_video_converter_new, +GO(gst_video_converter_new, pFppp) GO(gst_video_converter_set_config, iFpp) //GO(gst_video_convert_sample, //GO(gst_video_convert_sample_async, -//GO(gst_video_crop_meta_api_get_type, -//GO(gst_video_crop_meta_get_info, -//GO(gst_video_decoder_add_to_frame, +GO(gst_video_crop_meta_api_get_type, LFv) +GO(gst_video_crop_meta_get_info, pFv) +GO(gst_video_decoder_add_to_frame, vFpi) //GO(gst_video_decoder_allocate_output_buffer, -//GO(gst_video_decoder_allocate_output_frame, +GO(gst_video_decoder_allocate_output_frame, iFpp) //GO(gst_video_decoder_allocate_output_frame_with_params, -//GO(gst_video_decoder_drop_frame, -//GO(_gst_video_decoder_error, -//GO(gst_video_decoder_finish_frame, +GO(gst_video_decoder_drop_frame, iFpp) +GO(_gst_video_decoder_error, iFpipippppi) +GO(gst_video_decoder_finish_frame, iFpp) //GO(gst_video_decoder_get_allocator, -//GO(gst_video_decoder_get_buffer_pool, +GO(gst_video_decoder_get_buffer_pool, pFp) //GO(gst_video_decoder_get_estimate_rate, -//GO(gst_video_decoder_get_frame, -//GO(gst_video_decoder_get_frames, +GO(gst_video_decoder_get_frame, pFpi) +GO(gst_video_decoder_get_frames, pFp) //GO(gst_video_decoder_get_latency, -//GO(gst_video_decoder_get_max_decode_time, +GO(gst_video_decoder_get_max_decode_time, IFpp) //GO(gst_video_decoder_get_max_errors, //GO(gst_video_decoder_get_needs_format, //GO(gst_video_decoder_get_oldest_frame, -//GO(gst_video_decoder_get_output_state, +GO(gst_video_decoder_get_output_state, pFp) //GO(gst_video_decoder_get_packetized, //GO(gst_video_decoder_get_pending_frame_size, //GO(gst_video_decoder_get_qos_proportion, -//GO(gst_video_decoder_get_type, -//GO(gst_video_decoder_have_frame, -//GO(gst_video_decoder_merge_tags, -//GO(gst_video_decoder_negotiate, -//GO(gst_video_decoder_proxy_getcaps, -//GO(gst_video_decoder_release_frame, +GO(gst_video_decoder_get_subframe_mode, iFp) +GO(gst_video_decoder_get_type, LFv) +GO(gst_video_decoder_have_frame, iFp) +GO(gst_video_decoder_have_last_subframe, iFpp) +GO(gst_video_decoder_merge_tags, vFppi) +GO(gst_video_decoder_negotiate, iFp) +GO(gst_video_decoder_proxy_getcaps, pFppp) +GO(gst_video_decoder_release_frame, vFpp) //GO(gst_video_decoder_set_estimate_rate, -//GO(gst_video_decoder_set_interlaced_output_state, -//GO(gst_video_decoder_set_latency, +GO(gst_video_decoder_set_interlaced_output_state, pFpiiuup) +GO(gst_video_decoder_set_latency, vFpUU) //GO(gst_video_decoder_set_max_errors, -//GO(gst_video_decoder_set_needs_format, -//GO(gst_video_decoder_set_output_state, -//GO(gst_video_decoder_set_packetized, -//GO(gst_video_decoder_set_use_default_pad_acceptcaps, -//GO(gst_video_direction_get_type, +GO(gst_video_decoder_set_needs_format, vFpi) +GO(gst_video_decoder_set_output_state, pFpiuup) +GO(gst_video_decoder_set_packetized, vFpi) +GO(gst_video_decoder_set_subframe_mode, vFpi) +GO(gst_video_decoder_set_use_default_pad_acceptcaps, vFpi) +GO(gst_video_direction_get_type, LFv) //GO(gst_video_dither_flags_get_type, GO(gst_video_dither_free, vFp) GO(gst_video_dither_line, vFppuuu) -//GO(gst_video_dither_method_get_type, +GO(gst_video_dither_method_get_type, LFv) GO(gst_video_dither_new, pFuuupu) -//GO(gst_video_encoder_allocate_output_buffer, -//GO(gst_video_encoder_allocate_output_frame, -//GO(gst_video_encoder_finish_frame, +GO(gst_video_encoder_allocate_output_buffer, pFpL) +GO(gst_video_encoder_allocate_output_frame, iFppL) +GO(gst_video_encoder_finish_frame, iFpp) //GO(gst_video_encoder_finish_subframe, //GO(gst_video_encoder_get_allocator, //GO(gst_video_encoder_get_frame, @@ -192,36 +205,36 @@ GO(gst_video_dither_new, pFuuupu) //GO(gst_video_encoder_get_latency, //GO(gst_video_encoder_get_max_encode_time, //GO(gst_video_encoder_get_min_force_key_unit_interval, -//GO(gst_video_encoder_get_oldest_frame, +GO(gst_video_encoder_get_oldest_frame, pFp) //GO(gst_video_encoder_get_output_state, -//GO(gst_video_encoder_get_type, +GO(gst_video_encoder_get_type, LFv) //GO(gst_video_encoder_is_qos_enabled, -//GO(gst_video_encoder_merge_tags, -//GO(gst_video_encoder_negotiate, -//GO(gst_video_encoder_proxy_getcaps, -//GO(gst_video_encoder_set_headers, +GO(gst_video_encoder_merge_tags, vFppi) +GO(gst_video_encoder_negotiate, iFp) +GO(gst_video_encoder_proxy_getcaps, pFppp) +GO(gst_video_encoder_set_headers, vFpp) //GO(gst_video_encoder_set_latency, //GO(gst_video_encoder_set_min_force_key_unit_interval, -//GO(gst_video_encoder_set_min_pts, -//GO(gst_video_encoder_set_output_state, +GO(gst_video_encoder_set_min_pts, vFpU) +GO(gst_video_encoder_set_output_state, pFppp) //GO(gst_video_encoder_set_qos_enabled, //GO(gst_video_event_is_force_key_unit, //GO(gst_video_event_new_downstream_force_key_unit, //GO(gst_video_event_new_still_frame, //GO(gst_video_event_new_upstream_force_key_unit, //GO(gst_video_event_parse_downstream_force_key_unit, -//GO(gst_video_event_parse_still_frame, +GO(gst_video_event_parse_still_frame, iFpp) //GO(gst_video_event_parse_upstream_force_key_unit, GO(gst_video_field_order_from_string, uFp) -GO(gst_video_field_order_get_type, pFv) +GO(gst_video_field_order_get_type, LFv) GO(gst_video_field_order_to_string, pFu) -GO(gst_video_filter_get_type, pFv) -GO(gst_video_flags_get_type, pFv) -GO(gst_video_format_flags_get_type, pFv) +GO(gst_video_filter_get_type, LFv) +GO(gst_video_flags_get_type, LFv) +GO(gst_video_format_flags_get_type, LFv) GO(gst_video_format_from_fourcc, uFu) GO(gst_video_format_from_masks, uFiiiuuuu) GO(gst_video_format_from_string, uFp) -//GO(gst_video_format_get_info, +GO(gst_video_format_get_info, pFi) GO(gst_video_format_get_palette, pFup) //GO(gst_video_format_get_type, //GO(gst_video_format_info_component, @@ -229,14 +242,14 @@ GO(gst_video_formats_raw, pFp) GO(gst_video_format_to_fourcc, uFu) GO(gst_video_format_to_string, pFu) GO(gst_video_frame_copy, iFpp) -//GO(gst_video_frame_copy_plane, +GO(gst_video_frame_copy_plane, iFppu) //GO(gst_video_frame_flags_get_type, GO(gst_video_frame_map, iFpppu) //GO(gst_video_frame_map_flags_get_type, //GO(gst_video_frame_map_id, GO(gst_video_frame_unmap, vFp) -//GO(gst_video_gamma_mode_get_type, -//GO(gst_video_gl_texture_upload_meta_api_get_type, +GO(gst_video_gamma_mode_get_type, LFv) +GO(gst_video_gl_texture_upload_meta_api_get_type, LFv) //GO(gst_video_gl_texture_upload_meta_get_info, //GO(gst_video_gl_texture_upload_meta_upload, GO(gst_video_guess_framerate, iFLpp) @@ -246,7 +259,7 @@ GO(gst_video_info_convert, iFpiIip) GO(gst_video_info_copy, pFp) GO(gst_video_info_free, vFp) GO(gst_video_info_from_caps, iFpp) -GO(gst_video_info_get_type, pFv) +GO(gst_video_info_get_type, LFv) GO(gst_video_info_init, vFp) GO(gst_video_info_is_equal, iFpp) GO(gst_video_info_new, pFv) @@ -254,28 +267,29 @@ GO(gst_video_info_set_format, iFpiuu) GO(gst_video_info_set_interlaced_format, iFpiiuu) GO(gst_video_info_to_caps, pFp) GO(gst_video_interlace_mode_from_string, uFp) -GO(gst_video_interlace_mode_get_type, pFv) +GO(gst_video_interlace_mode_get_type, LFv) GO(gst_video_interlace_mode_to_string, pFu) +GO(gst_video_is_common_aspect_ratio, iFiiii) //GO(gst_video_make_raw_caps, //GO(gst_video_make_raw_caps_with_features, -//GO(gst_video_mastering_display_info_add_to_caps, +GO(gst_video_mastering_display_info_add_to_caps, iFpp) //GO(gst_video_mastering_display_info_from_caps, GO(gst_video_mastering_display_info_from_string, iFpp) GO(gst_video_mastering_display_info_init, vFp) GO(gst_video_mastering_display_info_is_equal, iFpp) GO(gst_video_mastering_display_info_to_string, pFp) -//GO(gst_video_matrix_mode_get_type, -GO(gst_video_meta_api_get_type, pFv) +GO(gst_video_matrix_mode_get_type, LFv) +GO(gst_video_meta_api_get_type, LFv) //GO(gst_video_meta_get_info, //GO(gst_video_meta_get_plane_height, //GO(gst_video_meta_get_plane_size, //GO(gst_video_meta_map, -//GO(gst_video_meta_set_alignment, -GO(gst_video_meta_transform_scale_get_quark, uFv) +GO(gst_video_meta_set_alignment, iFpi) +GO(gst_video_meta_transform_scale_get_quark, pFv) //GO(gst_video_meta_unmap, -//GO(gst_video_multiview_flagset_get_type, -//GO(gst_video_multiview_flags_get_type, -//GO(gst_video_multiview_frame_packing_get_type, +GO(gst_video_multiview_flagset_get_type, LFv) +GO(gst_video_multiview_flags_get_type, LFv) +GO(gst_video_multiview_frame_packing_get_type, LFv) //GO(gst_video_multiview_get_doubled_height_modes, GO(gst_video_multiview_get_doubled_size_modes, pFv) //GO(gst_video_multiview_get_doubled_width_modes, @@ -283,15 +297,16 @@ GO(gst_video_multiview_get_doubled_size_modes, pFv) //GO(gst_video_multiview_get_unpacked_modes, GO(gst_video_multiview_guess_half_aspect, iFiuuuu) GO(gst_video_multiview_mode_from_caps_string, iFp) -//GO(gst_video_multiview_mode_get_type, +GO(gst_video_multiview_mode_get_type, LFv) GO(gst_video_multiview_mode_to_caps_string, pFi) -//GO(gst_video_multiview_video_info_change_mode, +GO(gst_video_multiview_video_info_change_mode, vFpii) +GO(gst_video_orientation_from_tag, iFpp) //GO(gst_video_orientation_get_hcenter, //GO(gst_video_orientation_get_hflip, -//GO(gst_video_orientation_get_type, +GO(gst_video_orientation_get_type, LFv) GO(gst_video_orientation_get_vcenter, iFpp) GO(gst_video_orientation_get_vflip, iFpp) -//GO(gst_video_orientation_method_get_type, +GO(gst_video_orientation_method_get_type, LFv) //GO(gst_video_orientation_set_hcenter, //GO(gst_video_orientation_set_hflip, GO(gst_video_orientation_set_vcenter, iFpi) @@ -301,18 +316,18 @@ GO(gst_video_overlay_composition_add_rectangle, vFpp) //GO(gst_video_overlay_composition_copy, GO(gst_video_overlay_composition_get_rectangle, pFpu) GO(gst_video_overlay_composition_get_seqnum, uFp) -//GO(gst_video_overlay_composition_get_type, +GO(gst_video_overlay_composition_get_type, LFv) GO(gst_video_overlay_composition_make_writable, pFp) -//GO(gst_video_overlay_composition_meta_api_get_type, +GO(gst_video_overlay_composition_meta_api_get_type, LFv) //GO(gst_video_overlay_composition_meta_get_info, GO(gst_video_overlay_composition_new, pFp) -//GO(gst_video_overlay_composition_n_rectangles, -//GO(gst_video_overlay_expose, -//GO(gst_video_overlay_format_flags_get_type, -//GO(gst_video_overlay_get_type, +GO(gst_video_overlay_composition_n_rectangles, uFp) +GO(gst_video_overlay_expose, vFp) +GO(gst_video_overlay_format_flags_get_type, LFv) +GO(gst_video_overlay_get_type, LFv) GO(gst_video_overlay_got_window_handle, vFpL) GO(gst_video_overlay_handle_events, vFpi) -//GO(gst_video_overlay_install_properties, +GO(gst_video_overlay_install_properties, vFpi) GO(gst_video_overlay_prepare_window_handle, vFp) GO(gst_video_overlay_rectangle_copy, pFp) GO(gst_video_overlay_rectangle_get_flags, uFp) @@ -325,46 +340,46 @@ GO(gst_video_overlay_rectangle_get_global_alpha, fFp) //GO(gst_video_overlay_rectangle_get_pixels_unscaled_raw, GO(gst_video_overlay_rectangle_get_render_rectangle, iFppppp) GO(gst_video_overlay_rectangle_get_seqnum, uFp) -//GO(gst_video_overlay_rectangle_get_type, +GO(gst_video_overlay_rectangle_get_type, LFv) //GO(gst_video_overlay_rectangle_new_raw, GO(gst_video_overlay_rectangle_set_global_alpha, vFpf) GO(gst_video_overlay_rectangle_set_render_rectangle, vFpiiuu) GO(gst_video_overlay_set_property, iFpiup) GO(gst_video_overlay_set_render_rectangle, iFpiiii) -//GO(gst_video_overlay_set_window_handle, -//GO(gst_video_pack_flags_get_type, -//GO(gst_video_primaries_mode_get_type, +GO(gst_video_overlay_set_window_handle, vFpL) +GO(gst_video_pack_flags_get_type, LFv) +GO(gst_video_primaries_mode_get_type, LFv) //GO(gst_video_region_of_interest_meta_add_param, -//GO(gst_video_region_of_interest_meta_api_get_type, +GO(gst_video_region_of_interest_meta_api_get_type, LFv) //GO(gst_video_region_of_interest_meta_get_info, //GO(gst_video_region_of_interest_meta_get_param, GO(gst_video_resampler_clear, vFp) -//GO(gst_video_resampler_flags_get_type, +GO(gst_video_resampler_flags_get_type, LFv) GO(gst_video_resampler_init, iFpuuuuduup) -//GO(gst_video_resampler_method_get_type, +GO(gst_video_resampler_method_get_type, LFv) GO(gst_video_scaler_2d, vFppupipiuuuu) GO(gst_video_scaler_combine_packed_YUV, pFppuu) -//GO(gst_video_scaler_flags_get_type, +GO(gst_video_scaler_flags_get_type, LFv) GO(gst_video_scaler_free, vFp) GO(gst_video_scaler_get_coeff, pFpupp) GO(gst_video_scaler_get_max_taps, uFp) GO(gst_video_scaler_horizontal, vFpuppuu) GO(gst_video_scaler_new, pFuuuuup) GO(gst_video_scaler_vertical, vFpuppuu) -//GO(gst_video_sink_center_rect, -//GO(gst_video_sink_get_type, +GO(gst_video_sink_center_rect, vFpppppi) // this is vFHHpi, with 2 GstVideoRectangle struct that are 4 ints +GO(gst_video_sink_get_type, LFv) GO(gst_video_tile_get_index, uFuiiii) -//GO(gst_video_tile_mode_get_type, -//GO(gst_video_tile_type_get_type, +GO(gst_video_tile_mode_get_type, LFv) +GO(gst_video_tile_type_get_type, LFv) GO(gst_video_time_code_add_frames, vFpl) GO(gst_video_time_code_add_interval, pFpp) //GO(gst_video_time_code_clear, GO(gst_video_time_code_compare, iFpp) GO(gst_video_time_code_copy, pFp) -//GO(gst_video_time_code_flags_get_type, +GO(gst_video_time_code_flags_get_type, LFv) GO(gst_video_time_code_frames_since_daily_jam, LFp) -//GO(gst_video_time_code_free, -//GO(gst_video_time_code_get_type, +GO(gst_video_time_code_free, vFp) +GO(gst_video_time_code_get_type, LFv) GO(gst_video_time_code_increment_frame, vFp) GO(gst_video_time_code_init, vFpuupuuuuuu) GO(gst_video_time_code_init_from_date_time, vFpuupuu) @@ -372,12 +387,12 @@ GO(gst_video_time_code_init_from_date_time_full, iFpuupuu) GO(gst_video_time_code_interval_clear, vFp) GO(gst_video_time_code_interval_copy, pFp) //GO(gst_video_time_code_interval_free, -//GO(gst_video_time_code_interval_get_type, +GO(gst_video_time_code_interval_get_type, LFv) GO(gst_video_time_code_interval_init, vFpuuuu) GO(gst_video_time_code_interval_new, pFuuuu) GO(gst_video_time_code_interval_new_from_string, pFp) GO(gst_video_time_code_is_valid, iFp) -//GO(gst_video_time_code_meta_api_get_type, +GO(gst_video_time_code_meta_api_get_type, LFv) //GO(gst_video_time_code_meta_get_info, GO(gst_video_time_code_new, pFuupuuuuuu) GO(gst_video_time_code_new_empty, pFv) diff --git a/src/wrapped/wrappedlibogg_private.h b/src/wrapped/wrappedlibogg_private.h index 3440cc2e..1f1a96f9 100644 --- a/src/wrapped/wrappedlibogg_private.h +++ b/src/wrapped/wrappedlibogg_private.h @@ -47,8 +47,8 @@ GO(ogg_page_checksum_set, iFp) GO(ogg_page_continued, iFp) GO(ogg_page_eos, iFp) GO(ogg_page_granulepos, IFp) -//GO(ogg_page_packets, -//GO(ogg_page_pageno, +GO(ogg_page_packets, iFp) +GO(ogg_page_pageno, lFp) GO(ogg_page_serialno, iFp) //GO(ogg_page_version, //GO(ogg_stream_check, diff --git a/src/wrapped/wrappedlibva_private.h b/src/wrapped/wrappedlibva_private.h index cba8dc0e..c8592038 100644 --- a/src/wrapped/wrappedlibva_private.h +++ b/src/wrapped/wrappedlibva_private.h @@ -2,7 +2,7 @@ #error meh! #endif -//GO(vaAcquireBufferHandle, +GO(vaAcquireBufferHandle, iFpup) //GO(vaAssociateSubpicture, //GO(vaAttachProtectedSession, GO(vaBeginPicture, iFpup) @@ -74,10 +74,10 @@ GO(vaQueryVendorString, pFp) //GO(vaQueryVideoProcFilterCaps, //GO(vaQueryVideoProcFilters, GO(vaQueryVideoProcPipelineCaps, iFpupup) -//GO(vaReleaseBufferHandle, +GO(vaReleaseBufferHandle, iFpu) GO(vaRenderPicture, iFpupi) //GO(vaSetDisplayAttributes, -//GO(vaSetDriverName, +GO(vaSetDriverName, iFpp) GOM(vaSetErrorCallback, pFEppp) //GO(vaSetImagePalette, GOM(vaSetInfoCallback, pFEppp) |