浏览代码

win-capture: Warning fixes

Add explicit casts to convert data pointers to function pointers.

Add references for unused parameters.

Replace accidental BOOL* return values with BOOL.
jpark37 5 年之前
父节点
当前提交
a164a75ed6
共有 2 个文件被更改,包括 45 次插入24 次删除
  1. 9 2
      plugins/win-capture/game-capture.c
  2. 36 22
      plugins/win-capture/window-capture.c

+ 9 - 2
plugins/win-capture/game-capture.c

@@ -273,9 +273,10 @@ static inline HMODULE kernel32(void)
 static inline HANDLE open_process(DWORD desired_access, bool inherit_handle,
 static inline HANDLE open_process(DWORD desired_access, bool inherit_handle,
 				  DWORD process_id)
 				  DWORD process_id)
 {
 {
-	static HANDLE(WINAPI * open_process_proc)(DWORD, BOOL, DWORD) = NULL;
+	typedef HANDLE(WINAPI * PFN_OpenProcess)(DWORD, BOOL, DWORD);
+	PFN_OpenProcess open_process_proc = NULL;
 	if (!open_process_proc)
 	if (!open_process_proc)
-		open_process_proc = get_obfuscated_func(
+		open_process_proc = (PFN_OpenProcess)get_obfuscated_func(
 			kernel32(), "NuagUykjcxr", 0x1B694B59451ULL);
 			kernel32(), "NuagUykjcxr", 0x1B694B59451ULL);
 
 
 	return open_process_proc(desired_access, inherit_handle, process_id);
 	return open_process_proc(desired_access, inherit_handle, process_id);
@@ -457,6 +458,9 @@ static inline bool capture_needs_reset(struct game_capture_config *cfg1,
 static bool hotkey_start(void *data, obs_hotkey_pair_id id,
 static bool hotkey_start(void *data, obs_hotkey_pair_id id,
 			 obs_hotkey_t *hotkey, bool pressed)
 			 obs_hotkey_t *hotkey, bool pressed)
 {
 {
+	UNUSED_PARAMETER(id);
+	UNUSED_PARAMETER(hotkey);
+
 	struct game_capture *gc = data;
 	struct game_capture *gc = data;
 
 
 	if (pressed && gc->config.mode == CAPTURE_MODE_HOTKEY) {
 	if (pressed && gc->config.mode == CAPTURE_MODE_HOTKEY) {
@@ -473,6 +477,9 @@ static bool hotkey_start(void *data, obs_hotkey_pair_id id,
 static bool hotkey_stop(void *data, obs_hotkey_pair_id id, obs_hotkey_t *hotkey,
 static bool hotkey_stop(void *data, obs_hotkey_pair_id id, obs_hotkey_t *hotkey,
 			bool pressed)
 			bool pressed)
 {
 {
+	UNUSED_PARAMETER(id);
+	UNUSED_PARAMETER(hotkey);
+
 	struct game_capture *gc = data;
 	struct game_capture *gc = data;
 
 
 	if (pressed && gc->config.mode == CAPTURE_MODE_HOTKEY) {
 	if (pressed && gc->config.mode == CAPTURE_MODE_HOTKEY) {

+ 36 - 22
plugins/win-capture/window-capture.c

@@ -26,19 +26,33 @@
 
 
 #define WC_CHECK_TIMER 1.0f
 #define WC_CHECK_TIMER 1.0f
 
 
+typedef BOOL (*PFN_winrt_capture_supported)();
+typedef BOOL (*PFN_winrt_capture_cursor_toggle_supported)();
+typedef struct winrt_capture *(*PFN_winrt_capture_init)(BOOL cursor,
+							HWND window,
+							BOOL client_area);
+typedef void (*PFN_winrt_capture_free)(struct winrt_capture *capture);
+
+typedef BOOL (*PFN_winrt_capture_active)(const struct winrt_capture *capture);
+typedef void (*PFN_winrt_capture_show_cursor)(struct winrt_capture *capture,
+					      BOOL visible);
+typedef void (*PFN_winrt_capture_render)(struct winrt_capture *capture,
+					 gs_effect_t *effect);
+typedef uint32_t (*PFN_winrt_capture_width)(const struct winrt_capture *capture);
+typedef uint32_t (*PFN_winrt_capture_height)(
+	const struct winrt_capture *capture);
+
 struct winrt_exports {
 struct winrt_exports {
-	BOOL *(*winrt_capture_supported)();
-	BOOL *(*winrt_capture_cursor_toggle_supported)();
-	struct winrt_capture *(*winrt_capture_init)(BOOL cursor, HWND window,
-						    BOOL client_area);
-	void (*winrt_capture_free)(struct winrt_capture *capture);
-	BOOL *(*winrt_capture_active)(const struct winrt_capture *capture);
-	void (*winrt_capture_show_cursor)(struct winrt_capture *capture,
-					  BOOL visible);
-	void (*winrt_capture_render)(struct winrt_capture *capture,
-				     gs_effect_t *effect);
-	uint32_t (*winrt_capture_width)(const struct winrt_capture *capture);
-	uint32_t (*winrt_capture_height)(const struct winrt_capture *capture);
+	PFN_winrt_capture_supported winrt_capture_supported;
+	PFN_winrt_capture_cursor_toggle_supported
+		winrt_capture_cursor_toggle_supported;
+	PFN_winrt_capture_init winrt_capture_init;
+	PFN_winrt_capture_free winrt_capture_free;
+	PFN_winrt_capture_active winrt_capture_active;
+	PFN_winrt_capture_show_cursor winrt_capture_show_cursor;
+	PFN_winrt_capture_render winrt_capture_render;
+	PFN_winrt_capture_width winrt_capture_width;
+	PFN_winrt_capture_height winrt_capture_height;
 };
 };
 
 
 enum window_capture_method {
 enum window_capture_method {
@@ -191,16 +205,16 @@ static const char *wc_getname(void *unused)
 	return TEXT_WINDOW_CAPTURE;
 	return TEXT_WINDOW_CAPTURE;
 }
 }
 
 
-#define WINRT_IMPORT(func)                                        \
-	do {                                                      \
-		exports->func = os_dlsym(module, #func);          \
-		if (!exports->func) {                             \
-			success = false;                          \
-			blog(LOG_ERROR,                           \
-			     "Could not load function '%s' from " \
-			     "module '%s'",                       \
-			     #func, module_name);                 \
-		}                                                 \
+#define WINRT_IMPORT(func)                                           \
+	do {                                                         \
+		exports->func = (PFN_##func)os_dlsym(module, #func); \
+		if (!exports->func) {                                \
+			success = false;                             \
+			blog(LOG_ERROR,                              \
+			     "Could not load function '%s' from "    \
+			     "module '%s'",                          \
+			     #func, module_name);                    \
+		}                                                    \
 	} while (false)
 	} while (false)
 
 
 static bool load_winrt_imports(struct winrt_exports *exports, void *module,
 static bool load_winrt_imports(struct winrt_exports *exports, void *module,