mixer: factorize backend emix infra

Summary:
The mixer gadgets suffer of a bad design between old and new gadget infra.
This commit refactorize the mixer backend to get only one instance
between old and new gadget. This resolve many problems as e_client_volume
integration or the default_sink choosen in one of this modules.
Now it will be easier to maintain this code and better support when we will
remove old gadget infra.

Reviewers: zmike, devilhorns, stephenmhouston

Reviewed By: zmike

Subscribers: cedric

Tags: #enlightenment-git

Differential Revision: https://phab.enlightenment.org/D7718
This commit is contained in:
Michael Bouchaud (yoz) 2019-03-18 08:54:42 -04:00 committed by Mike Blumenkrantz
parent ea3f6ed68f
commit fb23acf874
6 changed files with 1515 additions and 2252 deletions

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@ -0,0 +1,24 @@
#ifndef MIXER_GADGET_BACKEND_
#define MIXER_GADGET_BACKEND_
typedef void (*Backend_Hook)(void);
EINTERN extern int E_EVENT_MIXER_BACKEND_CHANGED;
EINTERN extern int E_EVENT_MIXER_SINKS_CHANGED;
EINTERN int backend_init(void);
EINTERN int backend_shutdown(void);
EINTERN void backend_emixer_exec(void);
EINTERN void backend_volume_set(unsigned int volume);
EINTERN unsigned int backend_volume_get(void);
EINTERN void backend_volume_decrease(void);
EINTERN void backend_volume_increase(void);
EINTERN void backend_mute_set(Eina_Bool mute);
EINTERN Eina_Bool backend_mute_get(void);
EINTERN void backend_sink_default_set(const Emix_Sink *s);
EINTERN const Emix_Sink *backend_sink_default_get(void);
#endif /* MIXER_GADGET_BACKEND */

File diff suppressed because it is too large Load Diff

View File

@ -1,10 +1,13 @@
#include "mixer.h"
#include "backend.h"
EINTERN int _e_gemix_log_domain;
EINTERN void *
e_modapi_gadget_init(E_Module *m)
{
if (!backend_init()) return NULL;
_e_gemix_log_domain = eina_log_domain_register("mixer_gadget", EINA_COLOR_RED);
e_gadget_type_add("Mixer", mixer_gadget_create, NULL);
@ -19,7 +22,7 @@ e_modapi_gadget_shutdown(E_Module *m EINA_UNUSED)
e_gadget_type_del("Mixer");
emix_shutdown();
backend_shutdown();
return 1;
}

View File

@ -5,7 +5,8 @@ src = files(
'e_mod_main.h',
'gadget/mixer.h',
'gadget/mixer.c',
'gadget/mod.c'
'gadget/mod.c',
'gadget/backend.c'
)
mixer_lib = files(