Просмотр исходного кода

Merge pull request #124 from jp9000/new-locale-handling

Update to new module locale API
Jim 11 лет назад
Родитель
Сommit
2ea50cab36
46 измененных файлов с 210 добавлено и 208 удалено
  1. 6 7
      libobs/obs-encoder.c
  2. 2 4
      libobs/obs-encoder.h
  3. 3 0
      libobs/obs-internal.h
  4. 6 1
      libobs/obs-module.c
  5. 5 6
      libobs/obs-module.h
  6. 6 6
      libobs/obs-output.c
  7. 2 2
      libobs/obs-output.h
  8. 5 12
      libobs/obs-properties.c
  9. 3 5
      libobs/obs-properties.h
  10. 1 2
      libobs/obs-scene.c
  11. 6 7
      libobs/obs-service.c
  12. 2 2
      libobs/obs-service.h
  13. 6 7
      libobs/obs-source.c
  14. 2 4
      libobs/obs-source.h
  15. 27 3
      libobs/obs.c
  16. 29 24
      libobs/obs.h
  17. 3 4
      obs/window-basic-main.cpp
  18. 2 2
      obs/window-basic-properties.cpp
  19. 4 6
      obs/window-basic-settings.cpp
  20. 1 2
      obs/window-basic-source-select.cpp
  21. 10 10
      plugins/linux-pulseaudio/pulse-input.c
  22. 5 4
      plugins/linux-v4l2/v4l2-input.c
  23. 4 5
      plugins/linux-xcomposite/plugin-main.cpp
  24. 2 2
      plugins/linux-xcomposite/xcompcap-main.cpp
  25. 1 1
      plugins/linux-xcomposite/xcompcap-main.h
  26. 5 4
      plugins/linux-xshm/xshm-input.c
  27. 3 4
      plugins/mac-avcapture/av-capture.m
  28. 8 10
      plugins/mac-capture/mac-audio.c
  29. 4 4
      plugins/obs-ffmpeg/obs-ffmpeg-aac.c
  30. 2 2
      plugins/obs-ffmpeg/obs-ffmpeg-output.c
  31. 4 4
      plugins/obs-libfdk/obs-libfdk.c
  32. 4 4
      plugins/obs-outputs/flv-output.c
  33. 3 4
      plugins/obs-outputs/rtmp-stream.c
  34. 3 4
      plugins/obs-x264/obs-x264.c
  35. 3 5
      plugins/rtmp-services/rtmp-common.c
  36. 3 5
      plugins/rtmp-services/rtmp-custom.c
  37. 2 2
      plugins/win-capture/monitor-capture.c
  38. 3 4
      plugins/win-capture/window-capture.c
  39. 4 4
      plugins/win-dshow/win-dshow.cpp
  40. 8 8
      plugins/win-wasapi/win-wasapi.cpp
  41. 1 1
      test/osx/test.mm
  42. 3 4
      test/test-input/test-desktop.m
  43. 1 2
      test/test-input/test-filter.c
  44. 1 2
      test/test-input/test-random.c
  45. 1 2
      test/test-input/test-sinewave.c
  46. 1 1
      test/win/test.cpp

+ 6 - 7
libobs/obs-encoder.c

@@ -30,10 +30,10 @@ static inline struct obs_encoder_info *get_encoder_info(const char *id)
 	return NULL;
 }
 
-const char *obs_encoder_getdisplayname(const char *id, const char *locale)
+const char *obs_encoder_getdisplayname(const char *id)
 {
 	struct obs_encoder_info *ei = get_encoder_info(id);
-	return ei ? ei->getname(locale) : NULL;
+	return ei ? ei->getname() : NULL;
 }
 
 static bool init_encoder(struct obs_encoder *encoder, const char *name,
@@ -227,14 +227,14 @@ obs_data_t obs_encoder_defaults(const char *id)
 	return (info) ? get_defaults(info) : NULL;
 }
 
-obs_properties_t obs_get_encoder_properties(const char *id, const char *locale)
+obs_properties_t obs_get_encoder_properties(const char *id)
 {
 	const struct obs_encoder_info *ei = get_encoder_info(id);
 	if (ei && ei->properties) {
 		obs_data_t       defaults = get_defaults(ei);
 		obs_properties_t properties;
 
-		properties = ei->properties(locale);
+		properties = ei->properties();
 		obs_properties_apply_settings(properties, defaults);
 		obs_data_release(defaults);
 		return properties;
@@ -242,12 +242,11 @@ obs_properties_t obs_get_encoder_properties(const char *id, const char *locale)
 	return NULL;
 }
 
-obs_properties_t obs_encoder_properties(obs_encoder_t encoder,
-		const char *locale)
+obs_properties_t obs_encoder_properties(obs_encoder_t encoder)
 {
 	if (encoder && encoder->info.properties) {
 		obs_properties_t props;
-		props = encoder->info.properties(locale);
+		props = encoder->info.properties();
 		obs_properties_apply_settings(props, encoder->context.settings);
 		return props;
 	}

+ 2 - 4
libobs/obs-encoder.h

@@ -102,10 +102,9 @@ struct obs_encoder_info {
 	/**
 	 * Gets the full translated name of this encoder
 	 *
-	 * @param  locale  Locale to use for translation
 	 * @return         Translated name of the encoder
 	 */
-	const char *(*getname)(const char *locale);
+	const char *(*getname)(void);
 
 	/**
 	 * Creates the encoder with the specified settings
@@ -155,10 +154,9 @@ struct obs_encoder_info {
 	/** 
 	 * Gets the property information of this encoder
 	 *
-	 * @param  locale  The locale to translate with
 	 * @return         The properties data
 	 */
-	obs_properties_t (*properties)(const char *locale);
+	obs_properties_t (*properties)(void);
 
 	/**
 	 * Updates the settings for this encoder (usually used for things like

+ 3 - 0
libobs/obs-internal.h

@@ -52,6 +52,7 @@ struct draw_callback {
 struct obs_module {
 	char *name;
 	void *module;
+	void (*set_locale)(const char *locale);
 };
 
 extern void free_module(struct obs_module *mod);
@@ -173,6 +174,8 @@ struct obs_core {
 	signal_handler_t                signals;
 	proc_handler_t                  procs;
 
+	char                            *locale;
+
 	/* segmented into multiple sub-structures to keep things a bit more
 	 * clean and organized */
 	struct obs_core_video           video;

+ 6 - 1
libobs/obs-module.c

@@ -73,7 +73,12 @@ int obs_load_module(const char *path)
 		return errorcode;
 	}
 
-	mod.name = bstrdup(path);
+	mod.name       = bstrdup(path);
+	mod.set_locale = os_dlsym(mod.module, "obs_module_set_locale");
+
+	if (mod.set_locale)
+		mod.set_locale(obs->locale);
+
 	da_push_back(obs->modules, &mod);
 	return MODULE_SUCCESS;
 }

+ 5 - 6
libobs/obs-module.h

@@ -50,6 +50,9 @@ MODULE_EXPORT bool obs_module_load(uint32_t libobs_version);
 /** Optional: Called when the module is unloaded.  */
 MODULE_EXPORT void obs_module_unload(void);
 
+/** Called to set the current locale data for the module.  */
+MODULE_EXPORT void obs_module_set_locale(const char *locale);
+
 /**
  * Optional: Declares the author(s) of the module
  *
@@ -59,9 +62,5 @@ MODULE_EXPORT void obs_module_unload(void);
 	MODULE_EXPORT const char *obs_module_author(void); \
 	const char *obs_module_author(void) {return name;}
 
-/**
- * Optional: Declares the author of the module
- *
- * @param locale Locale to look up the description for.
- */
-MODULE_EXPORT const char *obs_module_description(const char *locale);
+/** Optional: Returns a description of the module */
+MODULE_EXPORT const char *obs_module_description(void);

+ 6 - 6
libobs/obs-output.c

@@ -30,10 +30,10 @@ static inline const struct obs_output_info *find_output(const char *id)
 	return NULL;
 }
 
-const char *obs_output_getdisplayname(const char *id, const char *locale)
+const char *obs_output_getdisplayname(const char *id)
 {
 	const struct obs_output_info *info = find_output(id);
-	return (info != NULL) ? info->getname(locale) : NULL;
+	return (info != NULL) ? info->getname() : NULL;
 }
 
 static const char *output_signals[] = {
@@ -166,14 +166,14 @@ obs_data_t obs_output_defaults(const char *id)
 	return (info) ? get_defaults(info) : NULL;
 }
 
-obs_properties_t obs_get_output_properties(const char *id, const char *locale)
+obs_properties_t obs_get_output_properties(const char *id)
 {
 	const struct obs_output_info *info = find_output(id);
 	if (info && info->properties) {
 		obs_data_t       defaults = get_defaults(info);
 		obs_properties_t properties;
 
-		properties = info->properties(locale);
+		properties = info->properties();
 		obs_properties_apply_settings(properties, defaults);
 		obs_data_release(defaults);
 		return properties;
@@ -181,11 +181,11 @@ obs_properties_t obs_get_output_properties(const char *id, const char *locale)
 	return NULL;
 }
 
-obs_properties_t obs_output_properties(obs_output_t output, const char *locale)
+obs_properties_t obs_output_properties(obs_output_t output)
 {
 	if (output && output->info.properties) {
 		obs_properties_t props;
-		props = output->info.properties(locale);
+		props = output->info.properties();
 		obs_properties_apply_settings(props, output->context.settings);
 		return props;
 	}

+ 2 - 2
libobs/obs-output.h

@@ -31,7 +31,7 @@ struct obs_output_info {
 
 	uint32_t flags;
 
-	const char *(*getname)(const char *locale);
+	const char *(*getname)(void);
 
 	void *(*create)(obs_data_t settings, obs_output_t output);
 	void (*destroy)(void *data);
@@ -49,7 +49,7 @@ struct obs_output_info {
 
 	void (*defaults)(obs_data_t settings);
 
-	obs_properties_t (*properties)(const char *locale);
+	obs_properties_t (*properties)(void);
 
 	void (*pause)(void *data);
 };

+ 5 - 12
libobs/obs-properties.c

@@ -90,7 +90,6 @@ struct obs_property {
 };
 
 struct obs_properties {
-	const char              *locale;
 	void                    *param;
 	void                    (*destroy)(void *param);
 
@@ -98,12 +97,11 @@ struct obs_properties {
 	struct obs_property     **last;
 };
 
-obs_properties_t obs_properties_create(const char *locale)
+obs_properties_t obs_properties_create(void)
 {
 	struct obs_properties *props;
 	props = bzalloc(sizeof(struct obs_properties));
-	props->locale = locale;
-	props->last   = &props->first_property;
+	props->last = &props->first_property;
 	return props;
 }
 
@@ -125,10 +123,10 @@ void *obs_properties_get_param(obs_properties_t props)
 	return props ? props->param : NULL;
 }
 
-obs_properties_t obs_properties_create_param(const char *locale,
-		void *param, void (*destroy)(void *param))
+obs_properties_t obs_properties_create_param(void *param,
+		void (*destroy)(void *param))
 {
-	struct obs_properties *props = obs_properties_create(locale);
+	struct obs_properties *props = obs_properties_create();
 	obs_properties_set_param(props, param, destroy);
 	return props;
 }
@@ -161,11 +159,6 @@ void obs_properties_destroy(obs_properties_t props)
 	}
 }
 
-const char *obs_properties_locale(obs_properties_t props)
-{
-	return props ? props->locale : NULL;
-}
-
 obs_property_t obs_properties_first(obs_properties_t props)
 {
 	return (props != NULL) ? props->first_property : NULL;

+ 3 - 5
libobs/obs-properties.h

@@ -61,17 +61,15 @@ typedef struct obs_property   *obs_property_t;
 
 /* ------------------------------------------------------------------------- */
 
-EXPORT obs_properties_t obs_properties_create(const char *locale);
-EXPORT obs_properties_t obs_properties_create_param(const char *locale,
-		void *param, void (*destroy)(void *param));
+EXPORT obs_properties_t obs_properties_create(void);
+EXPORT obs_properties_t obs_properties_create_param(void *param,
+		void (*destroy)(void *param));
 EXPORT void obs_properties_destroy(obs_properties_t props);
 
 EXPORT void obs_properties_set_param(obs_properties_t props,
 		void *param, void (*destroy)(void *param));
 EXPORT void *obs_properties_get_param(obs_properties_t props);
 
-EXPORT const char *obs_properties_locale(obs_properties_t props);
-
 EXPORT obs_property_t obs_properties_first(obs_properties_t props);
 
 EXPORT obs_property_t obs_properties_get(obs_properties_t props,

+ 1 - 2
libobs/obs-scene.c

@@ -43,10 +43,9 @@ static inline void signal_item_remove(struct obs_scene_item *item)
 	calldata_free(&params);
 }
 
-static const char *scene_getname(const char *locale)
+static const char *scene_getname(void)
 {
 	/* TODO: locale */
-	UNUSED_PARAMETER(locale);
 	return "Scene";
 }
 

+ 6 - 7
libobs/obs-service.c

@@ -27,10 +27,10 @@ static inline const struct obs_service_info *find_service(const char *id)
 	return NULL;
 }
 
-const char *obs_service_getdisplayname(const char *id, const char *locale)
+const char *obs_service_getdisplayname(const char *id)
 {
 	const struct obs_service_info *info = find_service(id);
-	return (info != NULL) ? info->getname(locale) : NULL;
+	return (info != NULL) ? info->getname() : NULL;
 }
 
 obs_service_t obs_service_create(const char *id, const char *name,
@@ -112,14 +112,14 @@ obs_data_t obs_service_defaults(const char *id)
 	return (info) ? get_defaults(info) : NULL;
 }
 
-obs_properties_t obs_get_service_properties(const char *id, const char *locale)
+obs_properties_t obs_get_service_properties(const char *id)
 {
 	const struct obs_service_info *info = find_service(id);
 	if (info && info->properties) {
 		obs_data_t       defaults = get_defaults(info);
 		obs_properties_t properties;
 
-		properties = info->properties(locale);
+		properties = info->properties();
 		obs_properties_apply_settings(properties, defaults);
 		obs_data_release(defaults);
 		return properties;
@@ -127,12 +127,11 @@ obs_properties_t obs_get_service_properties(const char *id, const char *locale)
 	return NULL;
 }
 
-obs_properties_t obs_service_properties(obs_service_t service,
-		const char *locale)
+obs_properties_t obs_service_properties(obs_service_t service)
 {
 	if (service && service->info.properties) {
 		obs_properties_t props;
-		props = service->info.properties(locale);
+		props = service->info.properties();
 		obs_properties_apply_settings(props, service->context.settings);
 		return props;
 	}

+ 2 - 2
libobs/obs-service.h

@@ -21,7 +21,7 @@ struct obs_service_info {
 	/* required */
 	const char *id;
 
-	const char *(*getname)(const char *locale);
+	const char *(*getname)(void);
 	void *(*create)(obs_data_t settings, obs_service_t service);
 	void (*destroy)(void *data);
 
@@ -33,7 +33,7 @@ struct obs_service_info {
 
 	void (*defaults)(obs_data_t settings);
 
-	obs_properties_t (*properties)(const char *locale);
+	obs_properties_t (*properties)(void);
 
 	/**
 	 * Called when getting ready to start up an output, before the encoders

+ 6 - 7
libobs/obs-source.c

@@ -95,11 +95,10 @@ bool obs_source_init_context(struct obs_source *source,
 			source_signals);
 }
 
-const char *obs_source_getdisplayname(enum obs_source_type type,
-		const char *id, const char *locale)
+const char *obs_source_getdisplayname(enum obs_source_type type, const char *id)
 {
 	const struct obs_source_info *info = get_source_info(type, id);
-	return (info != NULL) ? info->getname(locale) : NULL;
+	return (info != NULL) ? info->getname() : NULL;
 }
 
 /* internal initialization */
@@ -322,14 +321,14 @@ obs_data_t obs_source_settings(enum obs_source_type type, const char *id)
 }
 
 obs_properties_t obs_get_source_properties(enum obs_source_type type,
-		const char *id, const char *locale)
+		const char *id)
 {
 	const struct obs_source_info *info = get_source_info(type, id);
 	if (info && info->properties) {
 		obs_data_t       defaults = get_defaults(info);
 		obs_properties_t properties;
 
-		properties = info->properties(locale);
+		properties = info->properties();
 		obs_properties_apply_settings(properties, defaults);
 		obs_data_release(defaults);
 		return properties;
@@ -337,11 +336,11 @@ obs_properties_t obs_get_source_properties(enum obs_source_type type,
 	return NULL;
 }
 
-obs_properties_t obs_source_properties(obs_source_t source, const char *locale)
+obs_properties_t obs_source_properties(obs_source_t source)
 {
 	if (source_valid(source) && source->info.properties) {
 		obs_properties_t props;
-		props = source->info.properties(locale);
+		props = source->info.properties();
 		obs_properties_apply_settings(props, source->context.settings);
 		return props;
 	}

+ 2 - 4
libobs/obs-source.h

@@ -118,10 +118,9 @@ struct obs_source_info {
 	/**
 	 * Get the translated name of the source type
 	 *
-	 * @param  locale  The locale to translate with
 	 * @return         The translated name of the source type
 	 */
-	const char *(*getname)(const char *locale);
+	const char *(*getname)(void);
 
 	/**
 	 * Creates the source data for the source
@@ -161,10 +160,9 @@ struct obs_source_info {
 	/** 
 	 * Gets the property information of this source
 	 *
-	 * @param  locale  The locale to translate with
 	 * @return         The properties data
 	 */
-	obs_properties_t (*properties)(const char *locale);
+	obs_properties_t (*properties)(void);
 
 	/**
 	 * Updates the settings for this source

+ 27 - 3
libobs/obs.c

@@ -503,7 +503,7 @@ static inline bool obs_init_handlers(void)
 
 extern const struct obs_source_info scene_info;
 
-static bool obs_init(void)
+static bool obs_init(const char *locale)
 {
 	obs = bzalloc(sizeof(struct obs_core));
 
@@ -512,11 +512,12 @@ static bool obs_init(void)
 	if (!obs_init_handlers())
 		return false;
 
+	obs->locale = bstrdup(locale);
 	obs_register_source(&scene_info);
 	return true;
 }
 
-bool obs_startup(void)
+bool obs_startup(const char *locale)
 {
 	bool success;
 
@@ -525,7 +526,7 @@ bool obs_startup(void)
 		return false;
 	}
 
-	success = obs_init();
+	success = obs_init(locale);
 	if (!success)
 		obs_shutdown();
 
@@ -559,6 +560,7 @@ void obs_shutdown(void)
 		free_module(obs->modules.array+i);
 	da_free(obs->modules);
 
+	bfree(obs->locale);
 	bfree(obs);
 	obs = NULL;
 }
@@ -568,6 +570,28 @@ bool obs_initialized(void)
 	return obs != NULL;
 }
 
+void obs_set_locale(const char *locale)
+{
+	if (!obs)
+		return;
+
+	if (obs->locale)
+		bfree(obs->locale);
+	obs->locale = bstrdup(locale);
+
+	for (size_t i = 0; i < obs->modules.num; i++) {
+		struct obs_module *module = obs->modules.array+i;
+
+		if (module->set_locale)
+			module->set_locale(locale);
+	}
+}
+
+const char *obs_get_locale(void)
+{
+	return obs ? obs->locale : NULL;
+}
+
 bool obs_reset_video(struct obs_video_info *ovi)
 {
 	if (!obs) return false;

+ 29 - 24
libobs/obs.h

@@ -197,8 +197,12 @@ struct source_frame {
 /* ------------------------------------------------------------------------- */
 /* OBS context */
 
-/** Initializes OBS */
-EXPORT bool obs_startup(void);
+/**
+ * Initializes OBS
+ *
+ * @param  locale  The locale to use for modules
+ */
+EXPORT bool obs_startup(const char *locale);
 
 /** Releases all data associated with OBS and terminates the OBS context */
 EXPORT void obs_shutdown(void);
@@ -206,6 +210,17 @@ EXPORT void obs_shutdown(void);
 /** @return true if the main OBS context has been initialized */
 EXPORT bool obs_initialized(void);
 
+/**
+ * Sets a new locale to use for modules.  This will call obs_module_set_locale
+ * for each module with the new locale.
+ *
+ * @param  locale  The locale to use for modules
+ */
+EXPORT void obs_set_locale(const char *locale);
+
+/** @return the current locale */
+EXPORT const char *obs_get_locale(void);
+
 /**
  * Sets base video ouput base resolution/fps/format
  *
@@ -462,7 +477,7 @@ EXPORT void obs_display_remove_draw_callback(obs_display_t display,
 
 /** Returns the translated display name of a source */
 EXPORT const char *obs_source_getdisplayname(enum obs_source_type type,
-		const char *id, const char *locale);
+		const char *id);
 
 /**
  * Creates a source of the specified type with the specified settings.
@@ -497,14 +512,13 @@ EXPORT obs_data_t obs_get_source_defaults(enum obs_source_type type,
 
 /** Returns the property list, if any.  Free with obs_properties_destroy */
 EXPORT obs_properties_t obs_get_source_properties(enum obs_source_type type,
-		const char *id, const char *locale);
+		const char *id);
 
 /**
  * Returns the properties list for a specific existing source.  Free with
  * obs_properties_destroy
  */
-EXPORT obs_properties_t obs_source_properties(obs_source_t source,
-		const char *locale);
+EXPORT obs_properties_t obs_source_properties(obs_source_t source);
 
 /** Updates settings for this source */
 EXPORT void obs_source_update(obs_source_t source, obs_data_t settings);
@@ -737,8 +751,7 @@ EXPORT void obs_sceneitem_get_box_transform(obs_sceneitem_t item,
 /* ------------------------------------------------------------------------- */
 /* Outputs */
 
-EXPORT const char *obs_output_getdisplayname(const char *id,
-		const char *locale);
+EXPORT const char *obs_output_getdisplayname(const char *id);
 
 /**
  * Creates an output.
@@ -763,15 +776,13 @@ EXPORT bool obs_output_active(obs_output_t output);
 EXPORT obs_data_t obs_output_defaults(const char *id);
 
 /** Returns the property list, if any.  Free with obs_properties_destroy */
-EXPORT obs_properties_t obs_get_output_properties(const char *id,
-		const char *locale);
+EXPORT obs_properties_t obs_get_output_properties(const char *id);
 
 /**
  * Returns the property list of an existing output, if any.  Free with
  * obs_properties_destroy
  */
-EXPORT obs_properties_t obs_output_properties(obs_output_t output,
-		const char *locale);
+EXPORT obs_properties_t obs_output_properties(obs_output_t output);
 
 /** Updates the settings for this output context */
 EXPORT void obs_output_update(obs_output_t output, obs_data_t settings);
@@ -883,8 +894,7 @@ EXPORT void obs_output_signal_stop(obs_output_t output, int code);
 /* ------------------------------------------------------------------------- */
 /* Encoders */
 
-EXPORT const char *obs_encoder_getdisplayname(const char *id,
-		const char *locale);
+EXPORT const char *obs_encoder_getdisplayname(const char *id);
 
 /**
  * Creates a video encoder context
@@ -918,15 +928,13 @@ EXPORT const char *obs_encoder_get_codec(obs_encoder_t encoder);
 EXPORT obs_data_t obs_encoder_defaults(const char *id);
 
 /** Returns the property list, if any.  Free with obs_properties_destroy */
-EXPORT obs_properties_t obs_get_encoder_properties(const char *id,
-		const char *locale);
+EXPORT obs_properties_t obs_get_encoder_properties(const char *id);
 
 /**
  * Returns the property list of an existing encoder, if any.  Free with
  * obs_properties_destroy
  */
-EXPORT obs_properties_t obs_encoder_properties(obs_encoder_t encoder,
-		const char *locale);
+EXPORT obs_properties_t obs_encoder_properties(obs_encoder_t encoder);
 
 /**
  * Updates the settings of the encoder context.  Usually used for changing
@@ -972,8 +980,7 @@ EXPORT void obs_free_encoder_packet(struct encoder_packet *packet);
 /* ------------------------------------------------------------------------- */
 /* Stream Services */
 
-EXPORT const char *obs_service_getdisplayname(const char *id,
-		const char *locale);
+EXPORT const char *obs_service_getdisplayname(const char *id);
 
 EXPORT obs_service_t obs_service_create(const char *id, const char *name,
 		obs_data_t settings);
@@ -985,15 +992,13 @@ EXPORT const char *obs_service_getname(obs_service_t service);
 EXPORT obs_data_t obs_service_defaults(const char *id);
 
 /** Returns the property list, if any.  Free with obs_properties_destroy */
-EXPORT obs_properties_t obs_get_service_properties(const char *id,
-		const char *locale);
+EXPORT obs_properties_t obs_get_service_properties(const char *id);
 
 /**
  * Returns the property list of an existing service context, if any.  Free with
  * obs_properties_destroy
  */
-EXPORT obs_properties_t obs_service_properties(obs_service_t service,
-		const char *locale);
+EXPORT obs_properties_t obs_service_properties(obs_service_t service);
 
 /** Gets the service type */
 EXPORT const char *obs_service_gettype(obs_service_t service);

+ 3 - 4
obs/window-basic-main.cpp

@@ -210,7 +210,7 @@ static inline bool HasAudioDevices(const char *source_id)
 {
 	const char *output_id = source_id;
 	obs_properties_t props = obs_get_source_properties(
-			OBS_SOURCE_TYPE_INPUT, output_id, App()->GetLocale());
+			OBS_SOURCE_TYPE_INPUT, output_id);
 	size_t count = 0;
 
 	if (!props)
@@ -468,7 +468,7 @@ void OBSBasic::OBSInit()
 	show();
 	App()->processEvents();
 
-	if (!obs_startup())
+	if (!obs_startup(App()->GetLocale()))
 		throw "Failed to initialize libobs";
 	if (!InitBasicConfig())
 		throw "Failed to load basic.ini";
@@ -1299,8 +1299,7 @@ void OBSBasic::AddSourcePopupMenu(const QPoint &pos)
 	QMenu popup;
 	while (obs_enum_input_types(idx++, &type)) {
 		const char *name = obs_source_getdisplayname(
-				OBS_SOURCE_TYPE_INPUT,
-				type, App()->GetLocale());
+				OBS_SOURCE_TYPE_INPUT, type);
 
 		if (strcmp(type, "scene") == 0)
 			continue;

+ 2 - 2
obs/window-basic-properties.cpp

@@ -44,8 +44,8 @@ OBSBasicProperties::OBSBasicProperties(QWidget *parent, OBSSource source_)
 	obs_data_release(settings);
 
 	view = new OBSPropertiesView(settings,
-			obs_source_properties(source, App()->GetLocale()),
-			source, (PropertiesUpdateCallback)obs_source_update);
+			obs_source_properties(source), source,
+			(PropertiesUpdateCallback)obs_source_update);
 
 	layout()->addWidget(view);
 	layout()->setAlignment(view, Qt::AlignBottom);

+ 4 - 6
obs/window-basic-settings.cpp

@@ -212,8 +212,7 @@ void OBSBasicSettings::LoadServiceTypes()
 	size_t        idx = 0;
 
 	while (obs_enum_service_types(idx++, &type)) {
-		const char *name = obs_service_getdisplayname(type,
-				App()->GetLocale());
+		const char *name = obs_service_getdisplayname(type);
 		QString qName = QT_UTF8(name);
 		QString qType = QT_UTF8(type);
 
@@ -229,8 +228,7 @@ void OBSBasicSettings::LoadServiceInfo()
 	QLayout          *layout    = ui->streamContainer->layout();
 	obs_service_t    service    = main->GetService();
 	obs_data_t       settings   = obs_service_get_settings(service);
-	obs_properties_t properties = obs_service_properties(service,
-			App()->GetLocale());
+	obs_properties_t properties = obs_service_properties(service);
 
 	delete streamProperties;
 	streamProperties = new OBSPropertiesView(
@@ -480,9 +478,9 @@ void OBSBasicSettings::LoadAudioDevices()
 	const char *output_id = App()->OutputAudioSource();
 
 	obs_properties_t input_props = obs_get_source_properties(
-			OBS_SOURCE_TYPE_INPUT, input_id, App()->GetLocale());
+			OBS_SOURCE_TYPE_INPUT, input_id);
 	obs_properties_t output_props = obs_get_source_properties(
-			OBS_SOURCE_TYPE_INPUT, output_id, App()->GetLocale());
+			OBS_SOURCE_TYPE_INPUT, output_id);
 
 	if (input_props) {
 		obs_property_t inputs  = obs_properties_get(input_props,

+ 1 - 2
obs/window-basic-source-select.cpp

@@ -169,8 +169,7 @@ OBSBasicSourceSelect::OBSBasicSourceSelect(OBSBasic *parent, const char *type_)
 	ui->setupUi(this);
 
 	QString placeHolderText{QT_UTF8(obs_source_getdisplayname(
-				OBS_SOURCE_TYPE_INPUT,
-				type_, App()->GetLocale()))};
+				OBS_SOURCE_TYPE_INPUT, type_))};
 
 	QString text{placeHolderText};
 	int i = 1;

+ 10 - 10
plugins/linux-pulseaudio/pulse-input.c

@@ -281,9 +281,9 @@ skip:
 /**
  * Get plugin properties
  */
-static obs_properties_t pulse_properties(const char *locale, bool input)
+static obs_properties_t pulse_properties(bool input)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 	obs_property_t devices = obs_properties_add_list(props, "device_id",
 		"Device", OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING);
 
@@ -295,14 +295,14 @@ static obs_properties_t pulse_properties(const char *locale, bool input)
 	return props;
 }
 
-static obs_properties_t pulse_input_properties(const char *locale)
+static obs_properties_t pulse_input_properties(void)
 {
-	return pulse_properties(locale, true);
+	return pulse_properties(true);
 }
 
-static obs_properties_t pulse_output_properties(const char *locale)
+static obs_properties_t pulse_output_properties(void)
 {
-	return pulse_properties(locale, false);
+	return pulse_properties(false);
 }
 
 /**
@@ -366,15 +366,15 @@ static void pulse_output_defaults(obs_data_t settings)
 /**
  * Returns the name of the plugin
  */
-static const char *pulse_input_getname(const char *locale)
+static const char *pulse_input_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "Pulse Audio Input Capture";
 }
 
-static const char *pulse_output_getname(const char *locale)
+static const char *pulse_output_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "Pulse Audio Output Capture";
 }
 

+ 5 - 4
plugins/linux-v4l2/v4l2-input.c

@@ -266,9 +266,9 @@ exit:
 	return NULL;
 }
 
-static const char* v4l2_getname(const char* locale)
+static const char* v4l2_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "V4L2 Capture Input";
 }
 
@@ -452,9 +452,10 @@ static bool resolution_selected(obs_properties_t props, obs_property_t p,
 	return true;
 }
 
-static obs_properties_t v4l2_properties(const char *locale)
+static obs_properties_t v4l2_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	/* TODO: locale */
+	obs_properties_t props = obs_properties_create();
 	obs_property_t device_list = obs_properties_add_list(props, "device_id",
 			"Device", OBS_COMBO_TYPE_LIST, OBS_COMBO_FORMAT_STRING);
 	obs_property_t format_list = obs_properties_add_list(props,

+ 4 - 5
plugins/linux-xcomposite/plugin-main.cpp

@@ -37,9 +37,9 @@ static uint32_t xcompcap_getheight(void* data)
 	return cc->height();
 }
 
-static obs_properties_t xcompcap_props(const char *locale)
+static obs_properties_t xcompcap_props(void)
 {
-	return XCompcapMain::properties(locale);
+	return XCompcapMain::properties();
 }
 
 void xcompcap_defaults(obs_data_t settings)
@@ -55,10 +55,9 @@ void xcompcap_update(void *data, obs_data_t settings)
 
 OBS_DECLARE_MODULE()
 
-static const char* xcompcap_getname(const char* locale)
+static const char* xcompcap_getname(void)
 {
-	UNUSED_PARAMETER(locale);
-
+	/* TODO: locale */
 	return "Xcomposite capture";
 }
 

+ 2 - 2
plugins/linux-xcomposite/xcompcap-main.cpp

@@ -46,9 +46,9 @@ void XCompcapMain::deinit()
 	XCompcap::cleanupDisplay();
 }
 
-obs_properties_t XCompcapMain::properties(const char *locale)
+obs_properties_t XCompcapMain::properties()
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 
 	obs_property_t wins = obs_properties_add_list(props, "capture_window",
 			"Captured Window", OBS_COMBO_TYPE_LIST,

+ 1 - 1
plugins/linux-xcomposite/xcompcap-main.h

@@ -8,7 +8,7 @@ class XCompcapMain
 	static bool init();
 	static void deinit();
 
-	static obs_properties_t properties(const char *locale);
+	static obs_properties_t properties();
 	static void defaults(obs_data_t settings);
 
 	XCompcapMain(obs_data_t settings, obs_source_t source);

+ 5 - 4
plugins/linux-xshm/xshm-input.c

@@ -108,9 +108,9 @@ static int_fast32_t xshm_update_geometry(struct xshm_data *data,
 /**
  * Returns the name of the plugin
  */
-static const char* xshm_getname(const char* locale)
+static const char* xshm_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "X11 Shared Memory Screen Input";
 }
 
@@ -154,9 +154,10 @@ static void xshm_defaults(obs_data_t defaults)
 /**
  * Get the properties for the capture
  */
-static obs_properties_t xshm_properties(const char *locale)
+static obs_properties_t xshm_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	/* TODO: locale */
+	obs_properties_t props = obs_properties_create();
 	int_fast32_t screen_max;
 
 	Display *dpy = XOpenDisplay(NULL);

+ 3 - 4
plugins/mac-avcapture/av-capture.m

@@ -131,10 +131,9 @@ static inline void update_frame_size(struct av_capture *capture,
 }
 @end
 
-static const char *av_capture_getname(const char *locale)
+static const char *av_capture_getname(void)
 {
 	/* TODO: locale */
-	UNUSED_PARAMETER(locale);
 	return "Video Capture Device";
 }
 
@@ -569,9 +568,9 @@ static bool properties_device_changed(obs_properties_t props, obs_property_t p,
 	return true;
 }
 
-static obs_properties_t av_capture_properties(char const *locale)
+static obs_properties_t av_capture_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 
 	/* TODO: locale */
 	obs_property_t dev_list = obs_properties_add_list(props, "device",

+ 8 - 10
plugins/mac-capture/mac-audio.c

@@ -628,17 +628,15 @@ static void coreaudio_uninit(struct coreaudio_data *ca)
 
 /* ------------------------------------------------------------------------- */
 
-static const char *coreaudio_input_getname(const char *locale)
+static const char *coreaudio_input_getname(void)
 {
 	/* TODO: Locale */
-	UNUSED_PARAMETER(locale);
 	return "CoreAudio Input Capture";
 }
 
-static const char *coreaudio_output_getname(const char *locale)
+static const char *coreaudio_output_getname(void)
 {
 	/* TODO: Locale */
-	UNUSED_PARAMETER(locale);
 	return "CoreAudio Output Capture";
 }
 
@@ -704,9 +702,9 @@ static void *coreaudio_create_output_capture(obs_data_t settings,
 	return coreaudio_create(settings, source, false);
 }
 
-static obs_properties_t coreaudio_properties(const char *locale, bool input)
+static obs_properties_t coreaudio_properties(bool input)
 {
-	obs_properties_t   props = obs_properties_create(locale);
+	obs_properties_t   props = obs_properties_create();
 	obs_property_t     property;
 	struct device_list devices;
 
@@ -732,14 +730,14 @@ static obs_properties_t coreaudio_properties(const char *locale, bool input)
 	return props;
 }
 
-static obs_properties_t coreaudio_input_properties(const char *locale)
+static obs_properties_t coreaudio_input_properties(void)
 {
-	return coreaudio_properties(locale, true);
+	return coreaudio_properties(true);
 }
 
-static obs_properties_t coreaudio_output_properties(const char *locale)
+static obs_properties_t coreaudio_output_properties(void)
 {
-	return coreaudio_properties(locale, false);
+	return coreaudio_properties(false);
 }
 
 struct obs_source_info coreaudio_input_capture_info = {

+ 4 - 4
plugins/obs-ffmpeg/obs-ffmpeg-aac.c

@@ -44,9 +44,9 @@ struct aac_encoder {
 	int              frame_size_bytes;
 };
 
-static const char *aac_getname(const char *locale)
+static const char *aac_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "FFmpeg Default AAC Encoder";
 }
 
@@ -238,9 +238,9 @@ static void aac_defaults(obs_data_t settings)
 	obs_data_set_default_int(settings, "bitrate", 128);
 }
 
-static obs_properties_t aac_properties(const char *locale)
+static obs_properties_t aac_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 
 	/* TODO: locale */
 	obs_properties_add_int(props, "bitrate", "Bitrate", 32, 320, 32);

+ 2 - 2
plugins/obs-ffmpeg/obs-ffmpeg-output.c

@@ -396,9 +396,9 @@ fail:
 
 /* ------------------------------------------------------------------------- */
 
-static const char *ffmpeg_output_getname(const char *locale)
+static const char *ffmpeg_output_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "FFmpeg file output";
 }
 

+ 4 - 4
plugins/obs-libfdk/obs-libfdk.c

@@ -59,15 +59,15 @@ typedef struct libfdk_encoder {
 	int packet_buffer_size;
 } libfdk_encoder_t;
 
-static const char *libfdk_getname(const char *locale)
+static const char *libfdk_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "libfdk aac encoder";
 }
 
-static obs_properties_t libfdk_properties(const char *locale)
+static obs_properties_t libfdk_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 
 	obs_properties_add_int(props, "bitrate", "Bitrate", 32, 256, 32);
 	obs_properties_add_bool(props, "afterburner", "Enable AAC Afterburner");

+ 4 - 4
plugins/obs-outputs/flv-output.c

@@ -32,9 +32,9 @@ struct flv_output {
 	int64_t      last_packet_ts;
 };
 
-static const char *flv_output_getname(const char *locale)
+static const char *flv_output_getname(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "FLV File Output";
 }
 
@@ -189,9 +189,9 @@ static void flv_output_data(void *data, struct encoder_packet *packet)
 	}
 }
 
-static obs_properties_t flv_output_properties(const char *locale)
+static obs_properties_t flv_output_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 
 	/* TODO: locale */
 	obs_properties_add_text(props, "path", "File Path", OBS_TEXT_DEFAULT);

+ 3 - 4
plugins/obs-outputs/rtmp-stream.c

@@ -61,10 +61,9 @@ struct rtmp_stream {
 	RTMP             rtmp;
 };
 
-static const char *rtmp_stream_getname(const char *locale)
+static const char *rtmp_stream_getname(void)
 {
 	/* TODO: locale stuff */
-	UNUSED_PARAMETER(locale);
 	return "RTMP Stream";
 }
 
@@ -567,9 +566,9 @@ static void rtmp_stream_defaults(obs_data_t defaults)
 	obs_data_set_default_int(defaults, "drop_threshold", 600000);
 }
 
-static obs_properties_t rtmp_stream_properties(const char *locale)
+static obs_properties_t rtmp_stream_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 
 	/* TODO: locale */
 	obs_properties_add_text(props, "path", "Stream URL", OBS_TEXT_DEFAULT);

+ 3 - 4
plugins/obs-x264/obs-x264.c

@@ -38,10 +38,9 @@ struct obs_x264 {
 
 /* ------------------------------------------------------------------------- */
 
-static const char *obs_x264_getname(const char *locale)
+static const char *obs_x264_getname(void)
 {
 	/* TODO locale lookup */
-	UNUSED_PARAMETER(locale);
 	return "x264";
 }
 
@@ -93,11 +92,11 @@ static inline void add_strings(obs_property_t list, const char *const *strings)
 	}
 }
 
-static obs_properties_t obs_x264_props(const char *locale)
+static obs_properties_t obs_x264_props(void)
 {
 	/* TODO: locale */
 
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 	obs_property_t list;
 
 	obs_properties_add_int(props, "bitrate", "Bitrate", 50, 100000, 1);

+ 3 - 5
plugins/rtmp-services/rtmp-common.c

@@ -8,10 +8,8 @@ struct rtmp_common {
 	char *key;
 };
 
-static const char *rtmp_common_getname(const char *locale)
+static const char *rtmp_common_getname(void)
 {
-	UNUSED_PARAMETER(locale);
-
 	/* TODO: locale */
 	return "Streaming Services";
 }
@@ -200,9 +198,9 @@ static bool service_selected(obs_properties_t props, obs_property_t p,
 	return true;
 }
 
-static obs_properties_t rtmp_common_properties(const char *locale)
+static obs_properties_t rtmp_common_properties(void)
 {
-	obs_properties_t ppts = obs_properties_create(locale);
+	obs_properties_t ppts = obs_properties_create();
 	obs_property_t   list;
 	char             *file;
 

+ 3 - 5
plugins/rtmp-services/rtmp-custom.c

@@ -4,10 +4,8 @@ struct rtmp_custom {
 	char *server, *key;
 };
 
-static const char *rtmp_custom_name(const char *locale)
+static const char *rtmp_custom_name(void)
 {
-	UNUSED_PARAMETER(locale);
-
 	/* TODO: locale */
 	return "Custom Streaming Server";
 }
@@ -41,9 +39,9 @@ static void *rtmp_custom_create(obs_data_t settings, obs_service_t service)
 	return data;
 }
 
-static obs_properties_t rtmp_custom_properties(const char *locale)
+static obs_properties_t rtmp_custom_properties(void)
 {
-	obs_properties_t ppts = obs_properties_create(locale);
+	obs_properties_t ppts = obs_properties_create();
 
 	/* TODO: locale */
 

+ 2 - 2
plugins/win-capture/monitor-capture.c

@@ -81,9 +81,9 @@ static inline void update_settings(struct monitor_capture *capture,
 
 /* ------------------------------------------------------------------------- */
 
-static const char *monitor_capture_getname(const char *locale)
+static const char *monitor_capture_getname(void)
 {
-	/* TODO: translate */
+	/* TODO: locale */
 	return "Monitor Capture";
 }
 

+ 3 - 4
plugins/win-capture/window-capture.c

@@ -294,10 +294,9 @@ static HWND find_window(struct window_capture *wc)
 
 /* ------------------------------------------------------------------------- */
 
-static const char *wc_getname(const char *locale)
+static const char *wc_getname(void)
 {
 	/* TODO: locale */
-	UNUSED_PARAMETER(locale);
 	return "Window capture";
 }
 
@@ -362,9 +361,9 @@ static void wc_defaults(obs_data_t defaults)
 	obs_data_setbool(defaults, "compatibility", false);
 }
 
-static obs_properties_t wc_properties(const char *locale)
+static obs_properties_t wc_properties(void)
 {
-	obs_properties_t ppts = obs_properties_create(locale);
+	obs_properties_t ppts = obs_properties_create();
 	obs_property_t p;
 
 	/* TODO: locale */

+ 4 - 4
plugins/win-dshow/win-dshow.cpp

@@ -251,9 +251,9 @@ void DShowInput::Update(obs_data_t settings)
 
 /* ------------------------------------------------------------------------- */
 
-static const char *GetDShowInputName(const char *locale)
+static const char *GetDShowInputName(void)
 {
-	UNUSED_PARAMETER(locale);
+	/* TODO: locale */
 	return "Video Capture Device";
 }
 
@@ -778,9 +778,9 @@ static bool DeviceIntervalChanged(obs_properties_t props, obs_property_t p,
 	return true;
 }
 
-static obs_properties_t GetDShowProperties(const char *locale)
+static obs_properties_t GetDShowProperties(void)
 {
-	obs_properties_t ppts = obs_properties_create(locale);
+	obs_properties_t ppts = obs_properties_create();
 	PropertiesData *data = new PropertiesData;
 
 	obs_properties_set_param(ppts, data, PropertiesDataDestroy);

+ 8 - 8
plugins/win-wasapi/win-wasapi.cpp

@@ -416,13 +416,13 @@ DWORD WINAPI WASAPISource::CaptureThread(LPVOID param)
 
 /* ------------------------------------------------------------------------- */
 
-static const char *GetWASAPIInputName(const char *locale)
+static const char *GetWASAPIInputName(void)
 {
 	/* TODO: translate */
 	return "Audio Input Capture (WASAPI)";
 }
 
-static const char *GetWASAPIOutputName(const char *locale)
+static const char *GetWASAPIOutputName(void)
 {
 	/* TODO: translate */
 	return "Audio Output Capture (WASAPI)";
@@ -466,9 +466,9 @@ static void UpdateWASAPISource(void *obj, obs_data_t settings)
 	static_cast<WASAPISource*>(obj)->Update(settings);
 }
 
-static obs_properties_t GetWASAPIProperties(const char *locale, bool input)
+static obs_properties_t GetWASAPIProperties(bool input)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 	vector<AudioDeviceInfo> devices;
 
 	/* TODO: translate */
@@ -494,14 +494,14 @@ static obs_properties_t GetWASAPIProperties(const char *locale, bool input)
 	return props;
 }
 
-static obs_properties_t GetWASAPIPropertiesInput(const char *locale)
+static obs_properties_t GetWASAPIPropertiesInput(void)
 {
-	return GetWASAPIProperties(locale, true);
+	return GetWASAPIProperties(true);
 }
 
-static obs_properties_t GetWASAPIPropertiesOutput(const char *locale)
+static obs_properties_t GetWASAPIPropertiesOutput(void)
 {
-	return GetWASAPIProperties(locale, false);
+	return GetWASAPIProperties(false);
 }
 
 void RegisterWASAPIInput()

+ 1 - 1
test/osx/test.mm

@@ -38,7 +38,7 @@ using SceneContext = OBSUniqueHandle<obs_scene,
 
 static void CreateOBS(NSView *view)
 {
-	if (!obs_startup())
+	if (!obs_startup("en"))
 		throw "Couldn't create OBS";
 
 	struct obs_video_info ovi;

+ 3 - 4
test/test-input/test-desktop.m

@@ -258,9 +258,8 @@ static void display_capture_video_render(void *data, effect_t effect)
 	technique_end(tech);
 }
 
-static const char *display_capture_getname(const char *locale)
+static const char *display_capture_getname(void)
 {
-	UNUSED_PARAMETER(locale);
 	return "Display Capture";
 }
 
@@ -300,9 +299,9 @@ static void display_capture_update(void *data, obs_data_t settings)
 	gs_leavecontext();
 }
 
-static obs_properties_t display_capture_properties(char const *locale)
+static obs_properties_t display_capture_properties(void)
 {
-	obs_properties_t props = obs_properties_create(locale);
+	obs_properties_t props = obs_properties_create();
 
 	obs_property_t list = obs_properties_add_list(props,
 			"display", "Display",

+ 1 - 2
test/test-input/test-filter.c

@@ -5,9 +5,8 @@ struct test_filter {
 	effect_t whatever;
 };
 
-static const char *filter_getname(const char *locale)
+static const char *filter_getname(void)
 {
-	UNUSED_PARAMETER(locale);
 	return "Test";
 }
 

+ 1 - 2
test/test-input/test-random.c

@@ -10,9 +10,8 @@ struct random_tex {
 	bool         initialized;
 };
 
-static const char *random_getname(const char *locale)
+static const char *random_getname(void)
 {
-	UNUSED_PARAMETER(locale);
 	return "20x20 Random Pixel Texture Source (Test)";
 }
 

+ 1 - 2
test/test-input/test-sinewave.c

@@ -58,9 +58,8 @@ static void *sinewave_thread(void *pdata)
 
 /* ------------------------------------------------------------------------- */
 
-static const char *sinewave_getname(const char *locale)
+static const char *sinewave_getname(void)
 {
-	UNUSED_PARAMETER(locale);
 	return "Sinewave Sound Source (Test)";
 }
 

+ 1 - 1
test/win/test.cpp

@@ -71,7 +71,7 @@ static void CreateOBS(HWND hwnd)
 	RECT rc;
 	GetClientRect(hwnd, &rc);
 
-	if (!obs_startup())
+	if (!obs_startup("en"))
 		throw "Couldn't create OBS";
 
 	struct obs_video_info ovi;