mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	modules: introduce PA_MODULE_DEPRECATED() macro for marking modules deprecated
This commit is contained in:
		
							parent
							
								
									1c4393acf0
								
							
						
					
					
						commit
						c224aace42
					
				
					 11 changed files with 31 additions and 2 deletions
				
			
		| 
						 | 
				
			
			@ -71,6 +71,8 @@ static void long_info(const char *name, const char *path, pa_modinfo *i) {
 | 
			
		|||
        if (i->usage)
 | 
			
		||||
            printf(_("Usage: %s\n"), i->usage);
 | 
			
		||||
        printf(_("Load Once: %s\n"), pa_yes_no(i->load_once));
 | 
			
		||||
        if (i->deprecated)
 | 
			
		||||
            printf(_("DEPRECATION WARNING: %s\n"), i->deprecated);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (path)
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -17,6 +17,7 @@ gen_symbol(pa__get_author)
 | 
			
		|||
gen_symbol(pa__get_description)
 | 
			
		||||
gen_symbol(pa__get_usage)
 | 
			
		||||
gen_symbol(pa__get_version)
 | 
			
		||||
gen_symbol(pa__get_deprecated)
 | 
			
		||||
gen_symbol(pa__load_once)
 | 
			
		||||
gen_symbol(pa__get_n_used)
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -28,6 +29,7 @@ const char* pa__get_author(void);
 | 
			
		|||
const char* pa__get_description(void);
 | 
			
		||||
const char* pa__get_usage(void);
 | 
			
		||||
const char* pa__get_version(void);
 | 
			
		||||
const char* pa__get_deprecated(void);
 | 
			
		||||
pa_bool_t pa__load_once(void);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -50,6 +50,7 @@ PA_MODULE_DESCRIPTION("Detect available audio hardware and load matching drivers
 | 
			
		|||
PA_MODULE_VERSION(PACKAGE_VERSION);
 | 
			
		||||
PA_MODULE_LOAD_ONCE(TRUE);
 | 
			
		||||
PA_MODULE_USAGE("just-one=<boolean>");
 | 
			
		||||
PA_MODULE_DEPRECATED("Please use module-hal-detect instead of module-detect!");
 | 
			
		||||
 | 
			
		||||
static const char* const valid_modargs[] = {
 | 
			
		||||
    "just-one",
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -36,6 +36,7 @@ PA_MODULE_AUTHOR("Lennart Poettering");
 | 
			
		|||
PA_MODULE_DESCRIPTION("Compatibility module");
 | 
			
		||||
PA_MODULE_VERSION(PACKAGE_VERSION);
 | 
			
		||||
PA_MODULE_LOAD_ONCE(TRUE);
 | 
			
		||||
PA_MODULE_DEPRECATED("Please use module-stream-restore instead of module-volume-restore!");
 | 
			
		||||
 | 
			
		||||
static const char* const valid_modargs[] = {
 | 
			
		||||
    "table",
 | 
			
		||||
| 
						 | 
				
			
			@ -62,7 +63,7 @@ int pa__init(pa_module*m) {
 | 
			
		|||
        goto fail;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    pa_log_warn("module-volume-restore is obsolete. It has been replaced by module-stream-restore. We will now load the latter but please make sure to remove module-volume-restore from your configuration.");
 | 
			
		||||
    pa_log_warn("We will now load module-stream-restore. Please make sure to remove module-volume-restore from your configuration.");
 | 
			
		||||
 | 
			
		||||
    t = pa_sprintf_malloc("restore_volume=%s restore_device=%s", pa_yes_no(restore_volume), pa_yes_no(restore_device));
 | 
			
		||||
    pa_module_load(m->core, "module-stream-restore", t);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -98,6 +98,9 @@ PA_MODULE_USAGE(
 | 
			
		|||
        "fragments=<number of fragments> "
 | 
			
		||||
        "fragment_size=<fragment size> "
 | 
			
		||||
        "mmap=<enable memory mapping?>");
 | 
			
		||||
#ifdef __linux__
 | 
			
		||||
PA_MODULE_DEPRECATED("Please use module-alsa-card instead of module-oss!");
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
#define DEFAULT_DEVICE "/dev/dsp"
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -483,6 +483,8 @@ static int pa_cli_command_describe(pa_core *c, pa_tokenizer *t, pa_strbuf *buf,
 | 
			
		|||
            if (i->usage)
 | 
			
		||||
                pa_strbuf_printf(buf, "Usage: %s\n", i->usage);
 | 
			
		||||
            pa_strbuf_printf(buf, "Load Once: %s\n", pa_yes_no(i->load_once));
 | 
			
		||||
            if (i->deprecated)
 | 
			
		||||
                pa_strbuf_printf(buf, "Warning, deprecated: %s\n", i->deprecated);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        pa_modinfo_free(i);
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -29,4 +29,3 @@ typedef void (*pa_void_func_t)(void);
 | 
			
		|||
pa_void_func_t pa_load_sym(lt_dlhandle handle, const char*module, const char *symbol);
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -38,6 +38,7 @@
 | 
			
		|||
#define PA_SYMBOL_DESCRIPTION "pa__get_description"
 | 
			
		||||
#define PA_SYMBOL_USAGE "pa__get_usage"
 | 
			
		||||
#define PA_SYMBOL_VERSION "pa__get_version"
 | 
			
		||||
#define PA_SYMBOL_DEPRECATED "pa__get_deprecated"
 | 
			
		||||
#define PA_SYMBOL_LOAD_ONCE "pa__load_once"
 | 
			
		||||
 | 
			
		||||
pa_modinfo *pa_modinfo_get_by_handle(lt_dlhandle dl, const char *module_name) {
 | 
			
		||||
| 
						 | 
				
			
			@ -61,6 +62,9 @@ pa_modinfo *pa_modinfo_get_by_handle(lt_dlhandle dl, const char *module_name) {
 | 
			
		|||
    if ((func = (const char* (*)(void)) pa_load_sym(dl, module_name, PA_SYMBOL_VERSION)))
 | 
			
		||||
        i->version = pa_xstrdup(func());
 | 
			
		||||
 | 
			
		||||
    if ((func = (const char* (*)(void)) pa_load_sym(dl, module_name, PA_SYMBOL_DEPRECATED)))
 | 
			
		||||
        i->deprecated = pa_xstrdup(func());
 | 
			
		||||
 | 
			
		||||
    if ((func2 = (pa_bool_t (*)(void)) pa_load_sym(dl, module_name, PA_SYMBOL_LOAD_ONCE)))
 | 
			
		||||
        i->load_once = func2();
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			@ -91,5 +95,6 @@ void pa_modinfo_free(pa_modinfo *i) {
 | 
			
		|||
    pa_xfree(i->description);
 | 
			
		||||
    pa_xfree(i->usage);
 | 
			
		||||
    pa_xfree(i->version);
 | 
			
		||||
    pa_xfree(i->deprecated);
 | 
			
		||||
    pa_xfree(i);
 | 
			
		||||
}
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -30,6 +30,7 @@ typedef struct pa_modinfo {
 | 
			
		|||
    char *description;
 | 
			
		||||
    char *usage;
 | 
			
		||||
    char *version;
 | 
			
		||||
    char *deprecated;
 | 
			
		||||
    pa_bool_t load_once;
 | 
			
		||||
} pa_modinfo;
 | 
			
		||||
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -48,10 +48,12 @@
 | 
			
		|||
#define PA_SYMBOL_DONE "pa__done"
 | 
			
		||||
#define PA_SYMBOL_LOAD_ONCE "pa__load_once"
 | 
			
		||||
#define PA_SYMBOL_GET_N_USED "pa__get_n_used"
 | 
			
		||||
#define PA_SYMBOL_GET_DEPRECATE "pa__get_deprecated"
 | 
			
		||||
 | 
			
		||||
pa_module* pa_module_load(pa_core *c, const char *name, const char *argument) {
 | 
			
		||||
    pa_module *m = NULL;
 | 
			
		||||
    pa_bool_t (*load_once)(void);
 | 
			
		||||
    const char* (*get_deprecated)(void);
 | 
			
		||||
    pa_modinfo *mi;
 | 
			
		||||
 | 
			
		||||
    pa_assert(c);
 | 
			
		||||
| 
						 | 
				
			
			@ -89,6 +91,13 @@ pa_module* pa_module_load(pa_core *c, const char *name, const char *argument) {
 | 
			
		|||
        }
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if ((get_deprecated = (const char* (*) (void)) pa_load_sym(m->dl, name, PA_SYMBOL_GET_DEPRECATE))) {
 | 
			
		||||
        const char *t;
 | 
			
		||||
 | 
			
		||||
        if ((t = get_deprecated()))
 | 
			
		||||
            pa_log_warn("%s is deprecated: %s", name, t);
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    if (!(m->init = (int (*)(pa_module*_m)) pa_load_sym(m->dl, name, PA_SYMBOL_INIT))) {
 | 
			
		||||
        pa_log("Failed to load module \"%s\": symbol \""PA_SYMBOL_INIT"\" not found.", name);
 | 
			
		||||
        goto fail;
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
| 
						 | 
				
			
			@ -78,6 +78,10 @@ int pa_module_get_n_used(pa_module*m);
 | 
			
		|||
    const char * pa__get_version(void) { return s; }            \
 | 
			
		||||
    struct __stupid_useless_struct_to_allow_trailing_semicolon
 | 
			
		||||
 | 
			
		||||
#define PA_MODULE_DEPRECATED(s)                                 \
 | 
			
		||||
    const char * pa__get_deprecated(void) { return s; }         \
 | 
			
		||||
    struct __stupid_useless_struct_to_allow_trailing_semicolon
 | 
			
		||||
 | 
			
		||||
#define PA_MODULE_LOAD_ONCE(b)                                  \
 | 
			
		||||
    pa_bool_t pa__load_once(void) { return b; }                 \
 | 
			
		||||
    struct __stupid_useless_struct_to_allow_trailing_semicolon
 | 
			
		||||
| 
						 | 
				
			
			
 | 
			
		|||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue