about summary refs log tree commit diff stats
path: root/src
diff options
context:
space:
mode:
authorptitSeb <sebastien.chev@gmail.com>2022-03-01 11:11:59 +0100
committerptitSeb <sebastien.chev@gmail.com>2022-03-01 11:11:59 +0100
commit796d95528b7d25c75ffc009c3f6713c378ae036a (patch)
tree5a70d4098785c9d9e44959812161c1bcd7df733a /src
parentc3fd9d03ba22beecc06e9bc2b17525a3a9ed65e1 (diff)
downloadbox64-796d95528b7d25c75ffc009c3f6713c378ae036a.tar.gz
box64-796d95528b7d25c75ffc009c3f6713c378ae036a.zip
Added some more wrapped pulse functions
Diffstat (limited to 'src')
-rw-r--r--src/wrapped/generated/functions_list.txt20
-rw-r--r--src/wrapped/generated/wrappedpulsetypes.h20
-rw-r--r--src/wrapped/generated/wrapper.c4
-rw-r--r--src/wrapped/generated/wrapper.h2
-rwxr-xr-xsrc/wrapped/wrappedpulse.c273
-rwxr-xr-xsrc/wrapped/wrappedpulse_private.h25
6 files changed, 248 insertions, 96 deletions
diff --git a/src/wrapped/generated/functions_list.txt b/src/wrapped/generated/functions_list.txt
index ee9eb395..ccb397a1 100644
--- a/src/wrapped/generated/functions_list.txt
+++ b/src/wrapped/generated/functions_list.txt
@@ -1438,6 +1438,7 @@
 #() LFpipipi
 #() LFpLippp
 #() LFSpLiip
+#() pFEpiupp
 #() pFEpippp
 #() pFEpuipp
 #() pFEpuupp
@@ -1751,6 +1752,7 @@
 #() uFppuppppp
 #() LFELpLpLpi
 #() LFEpiupppp
+#() pFEpiuCppp
 #() pFEppLiiip
 #() pFEpppuipV
 #() pFEpppppiV
@@ -3253,13 +3255,17 @@ wrappedpulse:
 - pFppp:
   - pa_context_drain
   - pa_context_exit_daemon
+  - pa_context_get_card_info_list
   - pa_context_get_client_info_list
   - pa_context_get_module_info_list
   - pa_context_get_server_info
   - pa_context_get_sink_info_list
   - pa_context_get_sink_input_info_list
   - pa_context_get_source_info_list
+  - pa_context_get_source_output_info_list
   - pa_context_new_with_proplist
+  - pa_ext_device_restore_read_formats_all
+  - pa_ext_device_restore_set_subscribe_cb
   - pa_stream_drain
   - pa_stream_flush
   - pa_stream_prebuf
@@ -3270,11 +3276,15 @@ wrappedpulse:
 - iFpppV:
   - pa_proplist_setf
 - pFpipp:
+  - pa_ext_device_restore_subscribe
   - pa_stream_cork
 - pFpupp:
+  - pa_context_get_card_info_by_index
+  - pa_context_get_client_info
   - pa_context_get_sink_info_by_index
   - pa_context_get_sink_input_info
   - pa_context_get_source_info_by_index
+  - pa_context_get_source_output_info
   - pa_context_subscribe
   - pa_context_unload_module
   - pa_stream_update_sample_rate
@@ -3288,23 +3298,33 @@ wrappedpulse:
   - pa_stream_proplist_remove
   - pa_stream_set_buffer_attr
   - pa_stream_set_name
+- pFpiupp:
+  - pa_ext_device_restore_read_formats
 - pFpippp:
   - pa_context_proplist_update
   - pa_stream_proplist_update
 - pFpuipp:
   - pa_context_set_sink_input_mute
+  - pa_context_set_sink_mute_by_index
   - pa_context_set_source_mute_by_index
 - pFpuupp:
   - pa_context_move_sink_input_by_index
+  - pa_context_move_source_output_by_index
 - pFpuppp:
+  - pa_context_set_card_profile_by_index
   - pa_context_set_sink_input_volume
+  - pa_context_set_sink_port_by_index
   - pa_context_set_sink_volume_by_index
+  - pa_context_set_source_port_by_index
   - pa_context_set_source_volume_by_index
 - pFppppp:
   - pa_context_load_module
+  - pa_context_set_sink_port_by_name
   - pa_context_set_source_volume_by_name
 - iFppLpIi:
   - pa_stream_write
+- pFpiuCppp:
+  - pa_ext_device_restore_save_formats
 wrappedpulsesimple:
 wrappedsdl1:
 - vFp:
diff --git a/src/wrapped/generated/wrappedpulsetypes.h b/src/wrapped/generated/wrappedpulsetypes.h
index b157003b..9c1680ae 100644
--- a/src/wrapped/generated/wrappedpulsetypes.h
+++ b/src/wrapped/generated/wrappedpulsetypes.h
@@ -24,12 +24,14 @@ typedef int64_t (*iFpppV_t)(void*, void*, void*, ...);
 typedef void* (*pFpipp_t)(void*, int64_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*, int64_t, uint64_t, void*, void*);
 typedef void* (*pFpippp_t)(void*, int64_t, void*, void*, void*);
 typedef void* (*pFpuipp_t)(void*, uint64_t, int64_t, void*, void*);
 typedef void* (*pFpuupp_t)(void*, uint64_t, uint64_t, void*, void*);
 typedef void* (*pFpuppp_t)(void*, uint64_t, void*, void*, void*);
 typedef void* (*pFppppp_t)(void*, void*, void*, void*, void*);
 typedef int64_t (*iFppLpIi_t)(void*, void*, uintptr_t, void*, int64_t, int64_t);
+typedef void* (*pFpiuCppp_t)(void*, int64_t, uint64_t, uint8_t, void*, void*, void*);
 
 #define SUPER() ADDED_FUNCTIONS() \
 	GO(pa_mainloop_free, vFp_t) \
@@ -57,13 +59,17 @@ typedef int64_t (*iFppLpIi_t)(void*, void*, uintptr_t, void*, int64_t, int64_t);
 	GO(pa_signal_new, pFipp_t) \
 	GO(pa_context_drain, pFppp_t) \
 	GO(pa_context_exit_daemon, pFppp_t) \
+	GO(pa_context_get_card_info_list, pFppp_t) \
 	GO(pa_context_get_client_info_list, pFppp_t) \
 	GO(pa_context_get_module_info_list, pFppp_t) \
 	GO(pa_context_get_server_info, pFppp_t) \
 	GO(pa_context_get_sink_info_list, pFppp_t) \
 	GO(pa_context_get_sink_input_info_list, pFppp_t) \
 	GO(pa_context_get_source_info_list, pFppp_t) \
+	GO(pa_context_get_source_output_info_list, pFppp_t) \
 	GO(pa_context_new_with_proplist, pFppp_t) \
+	GO(pa_ext_device_restore_read_formats_all, pFppp_t) \
+	GO(pa_ext_device_restore_set_subscribe_cb, pFppp_t) \
 	GO(pa_stream_drain, pFppp_t) \
 	GO(pa_stream_flush, pFppp_t) \
 	GO(pa_stream_prebuf, pFppp_t) \
@@ -71,10 +77,14 @@ typedef int64_t (*iFppLpIi_t)(void*, void*, uintptr_t, void*, int64_t, int64_t);
 	GO(pa_stream_update_timing_info, pFppp_t) \
 	GO(pa_context_connect, iFppip_t) \
 	GO(pa_proplist_setf, iFpppV_t) \
+	GO(pa_ext_device_restore_subscribe, pFpipp_t) \
 	GO(pa_stream_cork, pFpipp_t) \
+	GO(pa_context_get_card_info_by_index, pFpupp_t) \
+	GO(pa_context_get_client_info, pFpupp_t) \
 	GO(pa_context_get_sink_info_by_index, pFpupp_t) \
 	GO(pa_context_get_sink_input_info, pFpupp_t) \
 	GO(pa_context_get_source_info_by_index, pFpupp_t) \
+	GO(pa_context_get_source_output_info, pFpupp_t) \
 	GO(pa_context_subscribe, pFpupp_t) \
 	GO(pa_context_unload_module, pFpupp_t) \
 	GO(pa_stream_update_sample_rate, pFpupp_t) \
@@ -87,16 +97,24 @@ typedef int64_t (*iFppLpIi_t)(void*, void*, uintptr_t, void*, int64_t, int64_t);
 	GO(pa_stream_proplist_remove, pFpppp_t) \
 	GO(pa_stream_set_buffer_attr, pFpppp_t) \
 	GO(pa_stream_set_name, pFpppp_t) \
+	GO(pa_ext_device_restore_read_formats, pFpiupp_t) \
 	GO(pa_context_proplist_update, pFpippp_t) \
 	GO(pa_stream_proplist_update, pFpippp_t) \
 	GO(pa_context_set_sink_input_mute, pFpuipp_t) \
+	GO(pa_context_set_sink_mute_by_index, pFpuipp_t) \
 	GO(pa_context_set_source_mute_by_index, pFpuipp_t) \
 	GO(pa_context_move_sink_input_by_index, pFpuupp_t) \
+	GO(pa_context_move_source_output_by_index, pFpuupp_t) \
+	GO(pa_context_set_card_profile_by_index, pFpuppp_t) \
 	GO(pa_context_set_sink_input_volume, pFpuppp_t) \
+	GO(pa_context_set_sink_port_by_index, pFpuppp_t) \
 	GO(pa_context_set_sink_volume_by_index, pFpuppp_t) \
+	GO(pa_context_set_source_port_by_index, pFpuppp_t) \
 	GO(pa_context_set_source_volume_by_index, pFpuppp_t) \
 	GO(pa_context_load_module, pFppppp_t) \
+	GO(pa_context_set_sink_port_by_name, pFppppp_t) \
 	GO(pa_context_set_source_volume_by_name, pFppppp_t) \
-	GO(pa_stream_write, iFppLpIi_t)
+	GO(pa_stream_write, iFppLpIi_t) \
+	GO(pa_ext_device_restore_save_formats, pFpiuCppp_t)
 
 #endif // __wrappedpulseTYPES_H_
diff --git a/src/wrapped/generated/wrapper.c b/src/wrapped/generated/wrapper.c
index 21ea9e0e..693f0388 100644
--- a/src/wrapped/generated/wrapper.c
+++ b/src/wrapped/generated/wrapper.c
@@ -1472,6 +1472,7 @@ typedef uintptr_t (*LFEppppi_t)(x64emu_t*, void*, void*, void*, void*, int64_t);
 typedef uintptr_t (*LFpipipi_t)(void*, int64_t, void*, int64_t, void*, int64_t);
 typedef uintptr_t (*LFpLippp_t)(void*, uintptr_t, int64_t, void*, void*, void*);
 typedef uintptr_t (*LFSpLiip_t)(void*, void*, uintptr_t, int64_t, int64_t, void*);
+typedef void* (*pFEpiupp_t)(x64emu_t*, void*, int64_t, uint64_t, void*, void*);
 typedef void* (*pFEpippp_t)(x64emu_t*, void*, int64_t, void*, void*, void*);
 typedef void* (*pFEpuipp_t)(x64emu_t*, void*, uint64_t, int64_t, void*, void*);
 typedef void* (*pFEpuupp_t)(x64emu_t*, void*, uint64_t, uint64_t, void*, void*);
@@ -1785,6 +1786,7 @@ typedef uint64_t (*uFppuuuppi_t)(void*, void*, uint64_t, uint64_t, uint64_t, voi
 typedef uint64_t (*uFppuppppp_t)(void*, void*, uint64_t, void*, void*, void*, void*, void*);
 typedef uintptr_t (*LFELpLpLpi_t)(x64emu_t*, uintptr_t, void*, uintptr_t, void*, uintptr_t, void*, int64_t);
 typedef uintptr_t (*LFEpiupppp_t)(x64emu_t*, void*, int64_t, uint64_t, void*, void*, void*, void*);
+typedef void* (*pFEpiuCppp_t)(x64emu_t*, void*, int64_t, uint64_t, uint8_t, void*, void*, void*);
 typedef void* (*pFEppLiiip_t)(x64emu_t*, void*, void*, uintptr_t, int64_t, int64_t, int64_t, void*);
 typedef void* (*pFEpppuipV_t)(x64emu_t*, void*, void*, void*, uint64_t, int64_t, void*, void*);
 typedef void* (*pFEpppppiV_t)(x64emu_t*, void*, void*, void*, void*, void*, int64_t, void*);
@@ -3514,6 +3516,7 @@ void LFEppppi(x64emu_t *emu, uintptr_t fcn) { LFEppppi_t fn = (LFEppppi_t)fcn; R
 void LFpipipi(x64emu_t *emu, uintptr_t fcn) { LFpipipi_t fn = (LFpipipi_t)fcn; R_RAX=(uintptr_t)fn((void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (int64_t)R_RCX, (void*)R_R8, (int64_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, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9); }
 void LFSpLiip(x64emu_t *emu, uintptr_t fcn) { LFSpLiip_t fn = (LFSpLiip_t)fcn; R_RAX=(uintptr_t)fn(io_convert((void*)R_RDI), (void*)R_RSI, (uintptr_t)R_RDX, (int64_t)R_RCX, (int64_t)R_R8, (void*)R_R9); }
+void pFEpiupp(x64emu_t *emu, uintptr_t fcn) { pFEpiupp_t fn = (pFEpiupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFEpippp(x64emu_t *emu, uintptr_t fcn) { pFEpippp_t fn = (pFEpippp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFEpuipp(x64emu_t *emu, uintptr_t fcn) { pFEpuipp_t fn = (pFEpuipp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (int64_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
 void pFEpuupp(x64emu_t *emu, uintptr_t fcn) { pFEpuupp_t fn = (pFEpuupp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (uint64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8); }
@@ -3827,6 +3830,7 @@ void uFppuuuppi(x64emu_t *emu, uintptr_t fcn) { uFppuuuppi_t fn = (uFppuuuppi_t)
 void uFppuppppp(x64emu_t *emu, uintptr_t fcn) { uFppuppppp_t fn = (uFppuppppp_t)fcn; R_RAX=(uint64_t)fn((void*)R_RDI, (void*)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)R_R8, (void*)R_R9, *(void**)(R_RSP + 8), *(void**)(R_RSP + 16)); }
 void LFELpLpLpi(x64emu_t *emu, uintptr_t fcn) { LFELpLpLpi_t fn = (LFELpLpLpi_t)fcn; R_RAX=(uintptr_t)fn(emu, (uintptr_t)R_RDI, (void*)R_RSI, (uintptr_t)R_RDX, (void*)R_RCX, (uintptr_t)R_R8, (void*)R_R9, *(int64_t*)(R_RSP + 8)); }
 void LFEpiupppp(x64emu_t *emu, uintptr_t fcn) { LFEpiupppp_t fn = (LFEpiupppp_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (int64_t)R_RSI, (uint64_t)R_RDX, (void*)R_RCX, (void*)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, (int64_t)R_RSI, (uint64_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, (int64_t)R_RCX, (int64_t)R_R8, (int64_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, (uint64_t)R_RCX, (int64_t)R_R8, (void*)R_R9, (void*)(R_RSP + 8)); }
 void pFEpppppiV(x64emu_t *emu, uintptr_t fcn) { pFEpppppiV_t fn = (pFEpppppiV_t)fcn; R_RAX=(uintptr_t)fn(emu, (void*)R_RDI, (void*)R_RSI, (void*)R_RDX, (void*)R_RCX, (void*)R_R8, (int64_t)R_R9, (void*)(R_RSP + 8)); }
diff --git a/src/wrapped/generated/wrapper.h b/src/wrapped/generated/wrapper.h
index be6b603b..8ac3a7de 100644
--- a/src/wrapped/generated/wrapper.h
+++ b/src/wrapped/generated/wrapper.h
@@ -1471,6 +1471,7 @@ void LFEppppi(x64emu_t *emu, uintptr_t fnc);
 void LFpipipi(x64emu_t *emu, uintptr_t fnc);
 void LFpLippp(x64emu_t *emu, uintptr_t fnc);
 void LFSpLiip(x64emu_t *emu, uintptr_t fnc);
+void pFEpiupp(x64emu_t *emu, uintptr_t fnc);
 void pFEpippp(x64emu_t *emu, uintptr_t fnc);
 void pFEpuipp(x64emu_t *emu, uintptr_t fnc);
 void pFEpuupp(x64emu_t *emu, uintptr_t fnc);
@@ -1784,6 +1785,7 @@ void uFppuuuppi(x64emu_t *emu, uintptr_t fnc);
 void uFppuppppp(x64emu_t *emu, uintptr_t fnc);
 void LFELpLpLpi(x64emu_t *emu, uintptr_t fnc);
 void LFEpiupppp(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);
 void pFEpppppiV(x64emu_t *emu, uintptr_t fnc);
diff --git a/src/wrapped/wrappedpulse.c b/src/wrapped/wrappedpulse.c
index 6be4f1aa..9e45b8ad 100755
--- a/src/wrapped/wrappedpulse.c
+++ b/src/wrapped/wrappedpulse.c
@@ -39,27 +39,9 @@ typedef struct my_pa_mainloop_api_s {
     void*   quit;
 } my_pa_mainloop_api_t;
 
-typedef void (*vFp_t)(void*);
-typedef void* (*pFp_t)(void*);
-typedef int (*iFp_t)(void*);
 typedef void (*vFpi_t)(void*, int32_t);
-typedef void* (*pFpp_t)(void*, void*);
-typedef void (*vFpp_t)(void*, void*);
 typedef int (*iFppp_t)(void*, void*, void*);
-typedef void* (*pFipp_t)(int32_t, void*, void*);
-typedef void* (*pFppp_t)(void*, void*, void*);
-typedef void (*vFppp_t)(void*, void*, void*);
-typedef void* (*pFpipp_t)(void*, int32_t, void*, void*);
-typedef int (*iFppip_t)(void*, void*, int, void*);
-typedef void* (*pFpppp_t)(void*, void*, void*, void*);
-typedef void* (*pFpupp_t)(void*, uint32_t, void*, void*);
 typedef void* (*pFpiipp_t)(void*, int32_t, int32_t, void*, void*);
-typedef void* (*pFppppp_t)(void*, void*, void*, void*, void*);
-typedef void* (*pFpippp_t)(void*, int32_t, void*, void*, void*);
-typedef void* (*pFpuipp_t)(void*, uint32_t, int, void*, void*);
-typedef void* (*pFpuppp_t)(void*, uint32_t, void*, void*, void*);
-typedef void* (*pFpuupp_t)(void*, uint32_t, uint32_t, void*, void*);
-typedef int (*iFppLpIi_t)(void*, void*, size_t, void*, int64_t, int32_t);
 
 #if 0
 #ifdef NOALIGN
@@ -70,76 +52,10 @@ typedef void (*vFipippV_t)(int, void*, int, void*, void*, void*);
     GO(pa_log_level_meta, vFipippV_t)           
 #endif
 
-#define SUPER() \
-    GO(pa_mainloop_free, vFp_t)                 \
-    GO(pa_mainloop_get_api, pFp_t)              \
-    GO(pa_threaded_mainloop_free, vFp_t)        \
-    GO(pa_threaded_mainloop_get_api, pFp_t)     \
-    GO(pa_signal_init, iFp_t)                   \
-    GO(pa_signal_new, pFipp_t)                  \
-    GO(pa_signal_set_destroy, vFpp_t)           \
-    GO(pa_context_new, pFpp_t)                  \
-    GO(pa_context_new_with_proplist, pFppp_t)   \
-    GO(pa_context_get_state, iFp_t)             \
-    GO(pa_context_exit_daemon, pFppp_t)         \
-    GO(pa_context_set_state_callback, vFppp_t)  \
-    GO(pa_context_set_default_sink, pFpppp_t)   \
-    GO(pa_context_set_default_source, pFpppp_t) \
-    GO(pa_context_move_sink_input_by_index, pFpuupp_t)  \
-    GO(pa_context_get_module_info_list, pFppp_t)        \
-    GO(pa_context_get_client_info_list, pFppp_t)        \
-    GO(pa_context_get_server_info, pFppp_t)     \
-    GO(pa_context_get_sink_input_info, pFpupp_t)\
-    GO(pa_context_get_sink_input_info_list, pFppp_t)    \
-    GO(pa_context_get_sink_info_list, pFppp_t)  \
-    GO(pa_context_get_sink_info_by_name, pFpppp_t)      \
-    GO(pa_context_set_sink_input_mute, pFpuipp_t)       \
-    GO(pa_context_set_sink_input_volume, pFpuppp_t)     \
-    GO(pa_context_get_source_info_list, pFppp_t)\
-    GO(pa_context_get_source_info_by_index, pFpupp_t)   \
-    GO(pa_context_get_sink_info_by_index, pFpupp_t)     \
-    GO(pa_context_set_sink_volume_by_index, pFpuppp_t)  \
-    GO(pa_context_set_source_volume_by_index, pFpuppp_t)\
-    GO(pa_context_set_source_mute_by_index, pFpuipp_t)  \
-    GO(pa_context_unload_module, pFpupp_t)      \
-    GO(pa_context_load_module, pFppppp_t)       \
-    GO(pa_context_connect, iFppip_t)            \
-    GO(pa_context_subscribe, pFpupp_t)          \
-    GO(pa_context_set_subscribe_callback, vFppp_t)      \
-    GO(pa_context_drain, pFppp_t)               \
-    GO(pa_context_proplist_remove, pFpppp_t)    \
-    GO(pa_context_proplist_update, pFpippp_t)   \
-    GO(pa_context_set_event_callback, vFppp_t)  \
-    GO(pa_context_set_name, pFpppp_t)           \
-    GO(pa_context_set_source_volume_by_name, pFppppp_t) \
-    GO(pa_context_get_source_info_by_name, pFpppp_t)    \
-    GO(pa_stream_get_state, iFp_t)              \
-    GO(pa_stream_drain, pFppp_t)                \
-    GO(pa_stream_flush, pFppp_t)                \
-    GO(pa_stream_set_latency_update_callback, vFppp_t)  \
-    GO(pa_stream_set_read_callback, vFppp_t)    \
-    GO(pa_stream_set_state_callback, vFppp_t)   \
-    GO(pa_stream_write, iFppLpIi_t)             \
-    GO(pa_stream_update_timing_info, pFppp_t)   \
-    GO(pa_stream_prebuf, pFppp_t)               \
-    GO(pa_stream_proplist_remove, pFpppp_t)     \
-    GO(pa_stream_proplist_update, pFpippp_t)    \
-    GO(pa_stream_set_buffer_attr, pFpppp_t)     \
-    GO(pa_stream_set_buffer_attr_callback, vFppp_t)     \
-    GO(pa_stream_set_event_callback, vFppp_t)   \
-    GO(pa_stream_set_moved_callback, vFppp_t)   \
-    GO(pa_stream_set_name, pFpppp_t)            \
-    GO(pa_stream_set_overflow_callback, vFppp_t)\
-    GO(pa_stream_set_started_callback, vFppp_t) \
-    GO(pa_stream_set_suspended_callback, vFppp_t)       \
-    GO(pa_stream_set_underflow_callback, vFppp_t)       \
-    GO(pa_stream_set_write_callback, vFppp_t)   \
-    GO(pa_stream_trigger, pFppp_t)              \
-    GO(pa_stream_update_sample_rate, pFpupp_t)  \
-    GO(pa_stream_cork, pFpipp_t)                \
-    GO(pa_proplist_setf, iFppp_t)               \
-    GO(pa_mainloop_set_poll_func, vFppp_t)      
+#define ADDED_FUNCTIONS() \
+
 
+#include "generated/wrappedpulsetypes.h"
 
 typedef struct pulse_my_s {
     // functions
@@ -752,6 +668,94 @@ static void* find_stream_request_Fct(void* fct)
     printf_log(LOG_NONE, "Warning, no more slot for pulse audio stream_request callback\n");
     return NULL;
 }
+// device_restore_read_device_formats
+#define GO(A)                                                                               \
+static uintptr_t my_device_restore_read_device_formats_fct_##A = 0;                         \
+static void my_device_restore_read_device_formats_##A(void* a, void* b, int c, void* d)     \
+{                                                                                           \
+    RunFunction(my_context, my_device_restore_read_device_formats_fct_##A, 4, a, b, c, d);  \
+}
+SUPER()
+#undef GO
+static void* find_device_restore_read_device_formats_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_device_restore_read_device_formats_fct_##A == (uintptr_t)fct) return my_device_restore_read_device_formats_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_device_restore_read_device_formats_fct_##A == 0) {my_device_restore_read_device_formats_fct_##A = (uintptr_t)fct; return my_device_restore_read_device_formats_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for pulse audio device_restore_read_device_formats callback\n");
+    return NULL;
+}
+// card_info
+#define GO(A)                                                      \
+static uintptr_t my_card_info_fct_##A = 0;                         \
+static void my_card_info_##A(void* a, void* b, int c, void* d)     \
+{                                                                  \
+    RunFunction(my_context, my_card_info_fct_##A, 4, a, b, c, d);  \
+}
+SUPER()
+#undef GO
+static void* find_card_info_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_card_info_fct_##A == (uintptr_t)fct) return my_card_info_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_card_info_fct_##A == 0) {my_card_info_fct_##A = (uintptr_t)fct; return my_card_info_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for pulse audio card_info callback\n");
+    return NULL;
+}
+// source_output_info
+#define GO(A)                                                      \
+static uintptr_t my_source_output_info_fct_##A = 0;                         \
+static void my_source_output_info_##A(void* a, void* b, int c, void* d)     \
+{                                                                  \
+    RunFunction(my_context, my_source_output_info_fct_##A, 4, a, b, c, d);  \
+}
+SUPER()
+#undef GO
+static void* find_source_output_info_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_source_output_info_fct_##A == (uintptr_t)fct) return my_source_output_info_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_source_output_info_fct_##A == 0) {my_source_output_info_fct_##A = (uintptr_t)fct; return my_source_output_info_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for pulse audio source_output_info callback\n");
+    return NULL;
+}
+// device_restore_subscribe
+#define GO(A)                                                                       \
+static uintptr_t my_device_restore_subscribe_fct_##A = 0;                           \
+static void my_device_restore_subscribe_##A(void* a, int b, uint32_t c, void* d)    \
+{                                                                                   \
+    RunFunction(my_context, my_device_restore_subscribe_fct_##A, 4, a, b, c, d);    \
+}
+SUPER()
+#undef GO
+static void* find_device_restore_subscribe_Fct(void* fct)
+{
+    if(!fct) return fct;
+    if(GetNativeFnc((uintptr_t)fct))  return GetNativeFnc((uintptr_t)fct);
+    #define GO(A) if(my_device_restore_subscribe_fct_##A == (uintptr_t)fct) return my_device_restore_subscribe_##A;
+    SUPER()
+    #undef GO
+    #define GO(A) if(my_device_restore_subscribe_fct_##A == 0) {my_device_restore_subscribe_fct_##A = (uintptr_t)fct; return my_device_restore_subscribe_##A; }
+    SUPER()
+    #undef GO
+    printf_log(LOG_NONE, "Warning, no more slot for pulse audio device_restore_subscribe callback\n");
+    return NULL;
+}
 
 #undef SUPER
 
@@ -1495,6 +1499,101 @@ EXPORT void my_pa_log_level_meta(x64emu_t* emu, int level, void* file, int line,
 }
 #endif
 
+EXPORT void* my_pa_ext_device_restore_save_formats(x64emu_t* emu, void* c, int t, uint32_t idx, uint8_t n, void* f, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_ext_device_restore_save_formats(c, t, idx, n, f, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_ext_device_restore_read_formats(x64emu_t* emu, void* c, int t, uint32_t idx, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_ext_device_restore_read_formats(c, t, idx, find_device_restore_read_device_formats_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_set_source_port_by_index(x64emu_t* emu, void* c, uint32_t idx, void* p, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_set_source_port_by_index(c, idx, p, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_set_card_profile_by_index(x64emu_t* emu, void* c, uint32_t idx, void* p, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_set_card_profile_by_index(c, idx, p, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_set_sink_port_by_index(x64emu_t* emu, void* c, uint32_t idx, void* p, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_set_sink_port_by_index(c, idx, p, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_get_card_info_list(x64emu_t* emu, void* c, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_get_card_info_list(c, find_card_info_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_get_source_output_info_list(x64emu_t* emu, void* c, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_get_source_output_info_list(c, find_source_output_info_Fct(cb), data);
+}
+
+EXPORT void* my_pa_ext_device_restore_read_formats_all(x64emu_t* emu, void* c, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_ext_device_restore_read_formats_all(c, find_device_restore_read_device_formats_Fct(cb), data);
+}
+
+EXPORT void* my_pa_ext_device_restore_set_subscribe_cb(x64emu_t* emu, void* c, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_ext_device_restore_set_subscribe_cb(c, find_device_restore_subscribe_Fct(cb), data);
+}
+
+EXPORT void* my_pa_ext_device_restore_subscribe(x64emu_t* emu, void* c, int e, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_ext_device_restore_subscribe(c, e, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_set_sink_mute_by_index(x64emu_t* emu, void* c, uint32_t idx, int m, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_set_sink_mute_by_index(c, idx, m, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_set_sink_port_by_name(x64emu_t* emu, void* c, void* n, void* p, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_set_sink_port_by_name(c, n, p, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_move_source_output_by_index(x64emu_t* emu, void* c, uint32_t idx, uint32_t s, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_move_source_output_by_index(c, idx, s, find_success_context_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_get_card_info_by_index(x64emu_t* emu, void* c, uint32_t idx, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_get_card_info_by_index(c, idx, find_card_info_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_get_client_info(x64emu_t* emu, void* c, uint32_t idx, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_get_client_info(c, idx, find_client_info_Fct(cb), data);
+}
+
+EXPORT void* my_pa_context_get_source_output_info(x64emu_t* emu, void* c, uint32_t idx, void* cb, void* data)
+{
+    pulse_my_t* my = (pulse_my_t*)emu->context->pulse->priv.w.p2;
+    return my->pa_context_get_source_output_info(c, idx, find_source_output_info_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 223d5e6e..9bc75bd5 100755
--- a/src/wrapped/wrappedpulse_private.h
+++ b/src/wrapped/wrappedpulse_private.h
@@ -33,10 +33,10 @@ GOM(pa_context_exit_daemon, pFEppp)
 //GO(pa_context_get_autoload_info_by_index, 
 //GO(pa_context_get_autoload_info_by_name, 
 //GO(pa_context_get_autoload_info_list, 
-//GO(pa_context_get_card_info_by_index, 
+GOM(pa_context_get_card_info_by_index, pFEpupp)
 //GO(pa_context_get_card_info_by_name, 
-//GO(pa_context_get_card_info_list, 
-//GO(pa_context_get_client_info, 
+GOM(pa_context_get_card_info_list, pFEppp)
+GOM(pa_context_get_client_info, pFEpupp)
 GOM(pa_context_get_client_info_list, pFEppp)
 GO(pa_context_get_index, uFp)
 //GO(pa_context_get_module_info, 
@@ -56,8 +56,8 @@ GOM(pa_context_get_sink_input_info_list, pFEppp)
 GOM(pa_context_get_source_info_by_index, pFEpupp)
 GOM(pa_context_get_source_info_by_name, pFEpppp)
 GOM(pa_context_get_source_info_list, pFEppp)
-//GO(pa_context_get_source_output_info, 
-//GO(pa_context_get_source_output_info_list, 
+GOM(pa_context_get_source_output_info, pFEpupp)
+GOM(pa_context_get_source_output_info_list, pFEppp)
 GO(pa_context_get_state, iFp)
 GO(pa_context_is_local, iFp)
 GO(pa_context_is_pending, iFp)
@@ -67,7 +67,7 @@ GO(pa_context_is_pending, iFp)
 GOM(pa_context_load_module, pFEppppp)
 GOM(pa_context_move_sink_input_by_index, pFEpuupp)
 //GO(pa_context_move_sink_input_by_name, 
-//GO(pa_context_move_source_output_by_index, 
+GOM(pa_context_move_source_output_by_index, pFEpuupp)
 //GO(pa_context_move_source_output_by_name, 
 GOM(pa_context_new, pFEpp)
 GOM(pa_context_new_with_proplist, pFEppp)
@@ -79,7 +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, 
-//GO(pa_context_set_card_profile_by_index, 
+GOM(pa_context_set_card_profile_by_index, pFEpuppp)
 //GO(pa_context_set_card_profile_by_name, 
 GOM(pa_context_set_default_sink, pFEpppp)
 GOM(pa_context_set_default_source, pFEpppp)
@@ -87,12 +87,15 @@ GOM(pa_context_set_event_callback, vFEppp)
 GOM(pa_context_set_name, pFEpppp)
 GOM(pa_context_set_sink_input_mute, pFEpuipp)
 GOM(pa_context_set_sink_input_volume, pFEpuppp)
-//GO(pa_context_set_sink_mute_by_index, 
+GOM(pa_context_set_sink_mute_by_index, pFEpuipp)
 //GO(pa_context_set_sink_mute_by_name, 
+GOM(pa_context_set_sink_port_by_index, pFEpuppp)
+GOM(pa_context_set_sink_port_by_name, pFEppppp)
 GOM(pa_context_set_sink_volume_by_index, pFEpuppp)
 //GO(pa_context_set_sink_volume_by_name, 
 GOM(pa_context_set_source_mute_by_index, pFEpuipp)
 //GO(pa_context_set_source_mute_by_name, 
+GOM(pa_context_set_source_port_by_index, pFEpuppp)
 GOM(pa_context_set_source_volume_by_index, pFEpuppp)
 GOM(pa_context_set_source_volume_by_name, pFEppppp)
 GOM(pa_context_set_state_callback, vFEppp)
@@ -121,12 +124,18 @@ GO(pa_cvolume_set_balance, pFppf)
 GO(pa_cvolume_set_fade, pFppf)
 GO(pa_cvolume_snprint, pFplp)
 GO(pa_cvolume_valid, iFp)
+GOM(pa_ext_device_restore_read_formats, pFEpiupp)
+GOM(pa_ext_device_restore_read_formats_all, pFEppp)
+GOM(pa_ext_device_restore_save_formats, pFEpiuCppp)
+GOM(pa_ext_device_restore_set_subscribe_cb, pFEppp)
+GOM(pa_ext_device_restore_subscribe, pFEpipp)
 //GO(pa_ext_stream_restore_delete, 
 //GO(pa_ext_stream_restore_read, 
 //GO(pa_ext_stream_restore_set_subscribe_cb, 
 //GO(pa_ext_stream_restore_subscribe, 
 //GO(pa_ext_stream_restore_test, 
 //GO(pa_ext_stream_restore_write, 
+GO(pa_format_info_new, pFv)
 GO(pa_frame_size, LFp)
 GO(pa_get_binary_name, pFpL)
 GO(pa_get_fqdn, pFpL)