diff options
| author | ptitSeb <sebastien.chev@gmail.com> | 2023-12-07 22:39:46 +0100 |
|---|---|---|
| committer | ptitSeb <sebastien.chev@gmail.com> | 2023-12-07 22:39:46 +0100 |
| commit | df2ad6b1ca761805efaaeef4ef1a658c4a827747 (patch) | |
| tree | 6453cb65f11d27a08df92249453677d1ffe9feef /src | |
| parent | 1d462b75582b8df716631feae9136af07aca8d6c (diff) | |
| download | box64-df2ad6b1ca761805efaaeef4ef1a658c4a827747.tar.gz box64-df2ad6b1ca761805efaaeef4ef1a658c4a827747.zip | |
Added some new wrapped function to pulseaudio
Diffstat (limited to 'src')
| -rw-r--r-- | src/wrapped/generated/functions_list.txt | 4 | ||||
| -rw-r--r-- | src/wrapped/generated/wrappedpulsetypes.h | 3 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.c | 2 | ||||
| -rw-r--r-- | src/wrapped/generated/wrapper.h | 1 | ||||
| -rw-r--r-- | src/wrapped/wrappedpulse.c | 34 | ||||
| -rw-r--r-- | src/wrapped/wrappedpulse_private.h | 4 |
6 files changed, 47 insertions, 1 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt index 2ef24f1b..62ab6255 100644 --- a/src/wrapped/generated/functions_list.txt +++ b/src/wrapped/generated/functions_list.txt @@ -1637,6 +1637,7 @@ #() pFEpipV #() pFEpipA #() pFEpupp +#() pFEpUpp #() pFEppii #() pFEppip #() pFEppLp @@ -4918,6 +4919,7 @@ wrappedpulse: - pa_context_set_event_callback - pa_context_set_state_callback - pa_context_set_subscribe_callback + - pa_mainloop_api_once - pa_mainloop_set_poll_func - pa_stream_set_buffer_attr_callback - pa_stream_set_event_callback @@ -4968,6 +4970,8 @@ wrappedpulse: - pa_context_subscribe - pa_context_unload_module - pa_stream_update_sample_rate +- pFpUpp: + - pa_context_rttime_new - pFpppp: - pa_context_get_sink_info_by_name - pa_context_get_source_info_by_name diff --git a/src/wrapped/generated/wrappedpulsetypes.h b/src/wrapped/generated/wrappedpulsetypes.h index a24120dc..2a3a4a94 100644 --- a/src/wrapped/generated/wrappedpulsetypes.h +++ b/src/wrapped/generated/wrappedpulsetypes.h @@ -23,6 +23,7 @@ typedef int32_t (*iFppip_t)(void*, void*, int32_t, void*); typedef int32_t (*iFpppV_t)(void*, void*, void*, ...); typedef void* (*pFpipp_t)(void*, int32_t, void*, void*); typedef void* (*pFpupp_t)(void*, uint32_t, void*, void*); +typedef void* (*pFpUpp_t)(void*, uint64_t, void*, void*); typedef void* (*pFpppp_t)(void*, void*, void*, void*); typedef void* (*pFpiupp_t)(void*, int32_t, uint32_t, void*, void*); typedef void* (*pFpippp_t)(void*, int32_t, void*, void*, void*); @@ -44,6 +45,7 @@ typedef void* (*pFpiuCppp_t)(void*, int32_t, uint32_t, uint8_t, void*, void*, vo GO(pa_context_set_event_callback, vFppp_t) \ GO(pa_context_set_state_callback, vFppp_t) \ GO(pa_context_set_subscribe_callback, vFppp_t) \ + GO(pa_mainloop_api_once, vFppp_t) \ GO(pa_mainloop_set_poll_func, vFppp_t) \ GO(pa_stream_set_buffer_attr_callback, vFppp_t) \ GO(pa_stream_set_event_callback, vFppp_t) \ @@ -88,6 +90,7 @@ typedef void* (*pFpiuCppp_t)(void*, int32_t, uint32_t, uint8_t, void*, void*, vo GO(pa_context_subscribe, pFpupp_t) \ GO(pa_context_unload_module, pFpupp_t) \ GO(pa_stream_update_sample_rate, pFpupp_t) \ + GO(pa_context_rttime_new, pFpUpp_t) \ GO(pa_context_get_sink_info_by_name, pFpppp_t) \ GO(pa_context_get_source_info_by_name, pFpppp_t) \ GO(pa_context_proplist_remove, pFpppp_t) \ diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c index 25aba59b..141774db 100644 --- a/src/wrapped/generated/wrapper.c +++ b/src/wrapped/generated/wrapper.c @@ -1673,6 +1673,7 @@ typedef void* (*pFEpipp_t)(x64emu_t*, void*, int32_t, void*, void*); typedef void* (*pFEpipV_t)(x64emu_t*, void*, int32_t, void*, void*); typedef void* (*pFEpipA_t)(x64emu_t*, void*, int32_t, void*, void*); typedef void* (*pFEpupp_t)(x64emu_t*, void*, uint32_t, void*, void*); +typedef void* (*pFEpUpp_t)(x64emu_t*, void*, uint64_t, void*, void*); typedef void* (*pFEppii_t)(x64emu_t*, void*, void*, int32_t, int32_t); typedef void* (*pFEppip_t)(x64emu_t*, void*, void*, int32_t, void*); typedef void* (*pFEppLp_t)(x64emu_t*, void*, void*, uintptr_t, void*); @@ -4659,6 +4660,7 @@ void pFEpipp(x64emu_t *emu, uintptr_t fcn) { pFEpipp_t fn = (pFEpipp_t)fcn; R_RA void pFEpipV(x64emu_t *emu, uintptr_t fcn) { pFEpipV_t fn = (pFEpipV_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)(R_RSP + 8)); } void pFEpipA(x64emu_t *emu, uintptr_t fcn) { pFEpipA_t fn = (pFEpipA_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFEpupp(x64emu_t *emu, uintptr_t fcn) { pFEpupp_t fn = (pFEpupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint32_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } +void pFEpUpp(x64emu_t *emu, uintptr_t fcn) { pFEpUpp_t fn = (pFEpUpp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (void*)R_RDX, (void*)R_RCX); } void pFEppii(x64emu_t *emu, uintptr_t fcn) { pFEppii_t fn = (pFEppii_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (int32_t)R_RCX); } void pFEppip(x64emu_t *emu, uintptr_t fcn) { pFEppip_t fn = (pFEppip_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (int32_t)R_RDX, (void*)R_RCX); } void pFEppLp(x64emu_t *emu, uintptr_t fcn) { pFEppLp_t fn = (pFEppLp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX); } diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h index 2634394d..1aebf62c 100644 --- a/src/wrapped/generated/wrapper.h +++ b/src/wrapped/generated/wrapper.h @@ -1674,6 +1674,7 @@ void pFEpipp(x64emu_t *emu, uintptr_t fnc); void pFEpipV(x64emu_t *emu, uintptr_t fnc); void pFEpipA(x64emu_t *emu, uintptr_t fnc); void pFEpupp(x64emu_t *emu, uintptr_t fnc); +void pFEpUpp(x64emu_t *emu, uintptr_t fnc); void pFEppii(x64emu_t *emu, uintptr_t fnc); void pFEppip(x64emu_t *emu, uintptr_t fnc); void pFEppLp(x64emu_t *emu, uintptr_t fnc); diff --git a/src/wrapped/wrappedpulse.c b/src/wrapped/wrappedpulse.c index cfeebecb..7cf0012a 100644 --- a/src/wrapped/wrappedpulse.c +++ b/src/wrapped/wrappedpulse.c @@ -739,6 +739,28 @@ static void* find_device_restore_subscribe_Fct(void* fct) printf_log(LOG_NONE, "Warning, no more slot for pulse audio device_restore_subscribe callback\n"); return NULL; } +// mainloop_once +#define GO(A) \ +static uintptr_t my_mainloop_once_fct_##A = 0; \ +static void my_mainloop_once_##A(void* api, void* b) \ +{ \ + RunFunctionFmt(my_mainloop_once_fct_##A, "pp", api, b); \ +} +SUPER() +#undef GO +static void* find_mainloop_once_Fct(void* fct) +{ + if(!fct) return fct; + if(GetNativeFnc((uintptr_t)fct)) return GetNativeFnc((uintptr_t)fct); + #define GO(A) if(my_mainloop_once_fct_##A == (uintptr_t)fct) return my_mainloop_once_##A; + SUPER() + #undef GO + #define GO(A) if(my_mainloop_once_fct_##A == 0) {my_mainloop_once_fct_##A = (uintptr_t)fct; return my_mainloop_once_##A; } + SUPER() + #undef GO + printf_log(LOG_NONE, "Warning, no more slot for pulse audio mainloop_once callback\n"); + return NULL; +} #undef SUPER @@ -1492,6 +1514,18 @@ EXPORT void* my_pa_context_get_source_output_info(x64emu_t* emu, void* c, uint32 { return my->pa_context_get_source_output_info(c, idx, find_source_output_info_Fct(cb), data); } + +EXPORT void* my_pa_context_rttime_new(x64emu_t* emu, void* c, uint64_t usec, void* cb, void* data) +{ + return my->pa_context_rttime_new(c, usec, findTimeEventFct(cb) ,data); +} + +EXPORT void my_pa_mainloop_api_once(void* mainloop, void* cb, void* data) +{ + if(mainloop==my_mainloop_ref) mainloop=my_mainloop_orig; // need native version + my->pa_mainloop_api_once(mainloop, find_mainloop_once_Fct(cb), data); +} + #define PRE_INIT \ if(box64_nopulse) \ return -1; diff --git a/src/wrapped/wrappedpulse_private.h b/src/wrapped/wrappedpulse_private.h index bceeaacf..f0644d67 100644 --- a/src/wrapped/wrappedpulse_private.h +++ b/src/wrapped/wrappedpulse_private.h @@ -79,6 +79,7 @@ GO(pa_context_ref, pFp) //GO(pa_context_remove_autoload_by_index, //GO(pa_context_remove_autoload_by_name, //GO(pa_context_remove_sample, +GOM(pa_context_rttime_new, pFEpUpp) GOM(pa_context_set_card_profile_by_index, pFEpuppp) //GO(pa_context_set_card_profile_by_name, GOM(pa_context_set_default_sink, pFEpppp) @@ -145,7 +146,7 @@ GO(pa_get_library_version, pFv) GO(pa_gettimeofday, pFp) GO(pa_get_user_name, pFpL) //GO(pa_locale_to_utf8, -//GO(pa_mainloop_api_once, +GOM(pa_mainloop_api_once, vFEppp) GO(pa_mainloop_dispatch, iFp) GOM(pa_mainloop_free, vFEp) GOM(pa_mainloop_get_api, pFEp) @@ -184,6 +185,7 @@ GO(pa_proplist_to_string_sep, pFpp) GO(pa_proplist_unset, iFpp) GO(pa_proplist_unset_many, iFpp) GO(pa_proplist_update, vFpup) +GO(pa_rtclock_now, UFv) GO(pa_sample_format_to_string, pFi) GO(pa_sample_size, LFp) GO(pa_sample_size_of_format, LFi) |