2012-12-14 15:38:01 -08:00
|
|
|
#ifdef HAVE_CONFIG_H
|
|
|
|
#include <config.h>
|
|
|
|
#endif
|
|
|
|
|
|
|
|
#include <stdlib.h>
|
|
|
|
#include <stdio.h>
|
|
|
|
#include <string.h>
|
|
|
|
|
|
|
|
#ifdef HAVE_FEATURES_H
|
|
|
|
#include <features.h>
|
|
|
|
#endif
|
|
|
|
#include <ctype.h>
|
|
|
|
#include <errno.h>
|
|
|
|
|
|
|
|
#include "ecore_audio_private.h"
|
|
|
|
|
|
|
|
int _ecore_audio_log_dom = -1;
|
|
|
|
static int _ecore_audio_init_count = 0;
|
2013-05-03 13:44:01 -07:00
|
|
|
Eina_List *ecore_audio_modules;
|
|
|
|
|
2012-12-14 15:38:01 -08:00
|
|
|
|
|
|
|
/* externally accessible functions */
|
|
|
|
|
|
|
|
EAPI int
|
|
|
|
ecore_audio_init(void)
|
|
|
|
{
|
|
|
|
|
|
|
|
if (++_ecore_audio_init_count != 1)
|
|
|
|
return _ecore_audio_init_count;
|
|
|
|
|
|
|
|
if (!ecore_init())
|
|
|
|
return --_ecore_audio_init_count;
|
|
|
|
|
2013-04-11 10:21:37 -07:00
|
|
|
if (!eo_init()) {
|
|
|
|
ecore_shutdown();
|
|
|
|
return --_ecore_audio_init_count;
|
|
|
|
}
|
|
|
|
|
2012-12-14 15:38:01 -08:00
|
|
|
_ecore_audio_log_dom = eina_log_domain_register("ecore_audio", ECORE_AUDIO_DEFAULT_LOG_COLOR);
|
|
|
|
if (_ecore_audio_log_dom < 0)
|
|
|
|
{
|
|
|
|
EINA_LOG_ERR("Impossible to create a log domain for the ecore audio module.");
|
|
|
|
return --_ecore_audio_init_count;
|
|
|
|
}
|
|
|
|
|
|
|
|
DBG("Ecore_Audio init");
|
2013-05-03 13:44:01 -07:00
|
|
|
ecore_audio_modules = NULL;
|
|
|
|
|
2012-12-14 15:38:18 -08:00
|
|
|
|
2013-03-27 05:42:55 -07:00
|
|
|
eina_log_timing(_ecore_audio_log_dom,
|
|
|
|
EINA_LOG_STATE_STOP,
|
|
|
|
EINA_LOG_STATE_INIT);
|
|
|
|
|
2012-12-14 15:38:01 -08:00
|
|
|
return _ecore_audio_init_count;
|
|
|
|
}
|
|
|
|
|
|
|
|
EAPI int
|
|
|
|
ecore_audio_shutdown(void)
|
|
|
|
{
|
|
|
|
DBG("Ecore_Audio shutdown");
|
|
|
|
if (--_ecore_audio_init_count != 0)
|
|
|
|
return _ecore_audio_init_count;
|
|
|
|
|
|
|
|
/* FIXME: Shutdown all the inputs and outputs first */
|
2013-03-27 05:42:55 -07:00
|
|
|
eina_log_timing(_ecore_audio_log_dom,
|
|
|
|
EINA_LOG_STATE_START,
|
|
|
|
EINA_LOG_STATE_SHUTDOWN);
|
2012-12-14 15:38:01 -08:00
|
|
|
|
2012-12-14 15:38:08 -08:00
|
|
|
|
2013-05-03 13:44:01 -07:00
|
|
|
eina_list_free(ecore_audio_modules);
|
|
|
|
|
2012-12-14 15:38:01 -08:00
|
|
|
eina_log_domain_unregister(_ecore_audio_log_dom);
|
|
|
|
_ecore_audio_log_dom = -1;
|
|
|
|
|
2013-04-11 10:21:37 -07:00
|
|
|
eo_shutdown();
|
2012-12-14 15:38:01 -08:00
|
|
|
ecore_shutdown();
|
|
|
|
|
|
|
|
return _ecore_audio_init_count;
|
|
|
|
}
|
|
|
|
|
2012-12-14 15:38:18 -08:00
|
|
|
|
2012-12-14 15:38:01 -08:00
|
|
|
/**
|
|
|
|
* @}
|
|
|
|
*/
|