Move driver_active variables over to driver global

This commit is contained in:
twinaphex 2014-10-01 22:34:48 +02:00
parent a35c61ec90
commit dead11f182
6 changed files with 39 additions and 38 deletions

View File

@ -376,7 +376,7 @@ static void init_osk(void)
if (!driver.osk_data) if (!driver.osk_data)
{ {
RARCH_ERR("Failed to initialize OSK driver. Will continue without OSK.\n"); RARCH_ERR("Failed to initialize OSK driver. Will continue without OSK.\n");
g_extern.osk_active = false; driver.osk_active = false;
} }
} }
@ -459,7 +459,7 @@ void init_camera(void)
if (!driver.camera_data) if (!driver.camera_data)
{ {
RARCH_ERR("Failed to initialize camera driver. Will continue without camera.\n"); RARCH_ERR("Failed to initialize camera driver. Will continue without camera.\n");
g_extern.camera_active = false; driver.camera_active = false;
} }
if (g_extern.system.camera_callback.initialized) if (g_extern.system.camera_callback.initialized)
@ -560,7 +560,7 @@ void init_location(void)
if (!driver.location_data) if (!driver.location_data)
{ {
RARCH_ERR("Failed to initialize location driver. Will continue without location.\n"); RARCH_ERR("Failed to initialize location driver. Will continue without location.\n");
g_extern.location_active = false; driver.location_active = false;
} }
if (g_extern.system.location_callback.initialized) if (g_extern.system.location_callback.initialized)
@ -772,7 +772,7 @@ void driver_set_monitor_refresh_rate(float hz)
void driver_set_nonblock_state(bool nonblock) void driver_set_nonblock_state(bool nonblock)
{ {
/* Only apply non-block-state for video if we're using vsync. */ /* Only apply non-block-state for video if we're using vsync. */
if (g_extern.video_active && driver.video_data) if (driver.video_active && driver.video_data)
{ {
bool video_nonblock = nonblock; bool video_nonblock = nonblock;
if (!g_settings.video.vsync || g_extern.system.force_nonblock) if (!g_settings.video.vsync || g_extern.system.force_nonblock)
@ -780,7 +780,7 @@ void driver_set_nonblock_state(bool nonblock)
driver.video->set_nonblock_state(driver.video_data, video_nonblock); driver.video->set_nonblock_state(driver.video_data, video_nonblock);
} }
if (g_extern.audio_active && driver.audio_data) if (driver.audio_active && driver.audio_data)
driver.audio->set_nonblock_state(driver.audio_data, driver.audio->set_nonblock_state(driver.audio_data,
g_settings.audio.sync ? nonblock : true); g_settings.audio.sync ? nonblock : true);
@ -896,11 +896,11 @@ void init_drivers(void)
init_audio(); init_audio();
/* Only initialize camera driver if we're ever going to use it. */ /* Only initialize camera driver if we're ever going to use it. */
if (g_extern.camera_active) if (driver.camera_active)
init_camera(); init_camera();
/* Only initialize location driver if we're ever going to use it. */ /* Only initialize location driver if we're ever going to use it. */
if (g_extern.location_active) if (driver.location_active)
init_location(); init_location();
init_osk(); init_osk();
@ -1042,7 +1042,7 @@ void init_audio(void)
if (!g_settings.audio.enable) if (!g_settings.audio.enable)
{ {
g_extern.audio_active = false; driver.audio_active = false;
return; return;
} }
@ -1071,14 +1071,14 @@ void init_audio(void)
if (!driver.audio_data) if (!driver.audio_data)
{ {
RARCH_ERR("Failed to initialize audio driver. Will continue without audio.\n"); RARCH_ERR("Failed to initialize audio driver. Will continue without audio.\n");
g_extern.audio_active = false; driver.audio_active = false;
} }
g_extern.audio_data.use_float = false; g_extern.audio_data.use_float = false;
if (g_extern.audio_active && driver.audio->use_float(driver.audio_data)) if (driver.audio_active && driver.audio->use_float(driver.audio_data))
g_extern.audio_data.use_float = true; g_extern.audio_data.use_float = true;
if (!g_settings.audio.sync && g_extern.audio_active) if (!g_settings.audio.sync && driver.audio_active)
{ {
rarch_main_command(RARCH_CMD_AUDIO_SET_NONBLOCKING_STATE); rarch_main_command(RARCH_CMD_AUDIO_SET_NONBLOCKING_STATE);
g_extern.audio_data.chunk_size = g_extern.audio_data.chunk_size =
@ -1103,7 +1103,7 @@ void init_audio(void)
{ {
RARCH_ERR("Failed to initialize resampler \"%s\".\n", RARCH_ERR("Failed to initialize resampler \"%s\".\n",
g_settings.audio.resampler); g_settings.audio.resampler);
g_extern.audio_active = false; driver.audio_active = false;
} }
rarch_assert(g_extern.audio_data.data = (float*) rarch_assert(g_extern.audio_data.data = (float*)
@ -1117,7 +1117,7 @@ void init_audio(void)
malloc(outsamples_max * sizeof(float))); malloc(outsamples_max * sizeof(float)));
g_extern.audio_data.rate_control = false; g_extern.audio_data.rate_control = false;
if (!g_extern.system.audio_callback.callback && g_extern.audio_active && if (!g_extern.system.audio_callback.callback && driver.audio_active &&
g_settings.audio.rate_control) g_settings.audio.rate_control)
{ {
if (driver.audio->buffer_size && driver.audio->write_avail) if (driver.audio->buffer_size && driver.audio->write_avail)
@ -1134,7 +1134,7 @@ void init_audio(void)
g_extern.measure_data.buffer_free_samples_count = 0; g_extern.measure_data.buffer_free_samples_count = 0;
if (g_extern.audio_active && !g_extern.audio_data.mute && if (driver.audio_active && !g_extern.audio_data.mute &&
g_extern.system.audio_callback.callback) g_extern.system.audio_callback.callback)
{ {
/* Threaded driver is initially stopped. */ /* Threaded driver is initially stopped. */
@ -1240,7 +1240,7 @@ void uninit_audio(void)
if (!g_settings.audio.enable) if (!g_settings.audio.enable)
{ {
g_extern.audio_active = false; driver.audio_active = false;
return; return;
} }

View File

@ -449,6 +449,12 @@ typedef struct driver
void *resampler_data; void *resampler_data;
void *recording_data; void *recording_data;
bool audio_active;
bool video_active;
bool camera_active;
bool location_active;
bool osk_active;
#ifdef HAVE_MENU #ifdef HAVE_MENU
menu_handle_t *menu; menu_handle_t *menu;
const menu_ctx_driver_t *menu_ctx; const menu_ctx_driver_t *menu_ctx;

View File

@ -405,8 +405,8 @@ void uninit_libretro_sym(void)
free(g_extern.system.special); free(g_extern.system.special);
free(g_extern.system.ports); free(g_extern.system.ports);
memset(&g_extern.system, 0, sizeof(g_extern.system)); memset(&g_extern.system, 0, sizeof(g_extern.system));
g_extern.camera_active = false; driver.camera_active = false;
g_extern.location_active = false; driver.location_active = false;
/* Performance counters no longer valid. */ /* Performance counters no longer valid. */
retro_perf_clear(); retro_perf_clear();
@ -895,7 +895,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
cb->start = driver_camera_start; cb->start = driver_camera_start;
cb->stop = driver_camera_stop; cb->stop = driver_camera_stop;
g_extern.system.camera_callback = *cb; g_extern.system.camera_callback = *cb;
g_extern.camera_active = cb->caps != 0; driver.camera_active = cb->caps != 0;
break; break;
} }
@ -909,7 +909,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
cb->get_position = driver_location_get_position; cb->get_position = driver_location_get_position;
cb->set_interval = driver_location_set_interval; cb->set_interval = driver_location_set_interval;
g_extern.system.location_callback = *cb; g_extern.system.location_callback = *cb;
g_extern.location_active = true; driver.location_active = true;
break; break;
} }

View File

@ -421,11 +421,6 @@ struct global
{ {
bool verbosity; bool verbosity;
bool perfcnt_enable; bool perfcnt_enable;
bool audio_active;
bool video_active;
bool camera_active;
bool location_active;
bool osk_active;
bool force_fullscreen; bool force_fullscreen;
bool core_shutdown_initiated; bool core_shutdown_initiated;

View File

@ -32,7 +32,7 @@ static void video_frame(const void *data, unsigned width,
{ {
const char *msg = NULL; const char *msg = NULL;
if (!g_extern.video_active) if (!driver.video_active)
return; return;
g_extern.frame_cache.data = data; g_extern.frame_cache.data = data;
@ -100,7 +100,7 @@ static void video_frame(const void *data, unsigned width,
} }
if (!driver.video->frame(driver.video_data, data, width, height, pitch, msg)) if (!driver.video->frame(driver.video_data, data, width, height, pitch, msg))
g_extern.video_active = false; driver.video_active = false;
} }
static void audio_sample(int16_t left, int16_t right) static void audio_sample(int16_t left, int16_t right)
@ -111,8 +111,8 @@ static void audio_sample(int16_t left, int16_t right)
if (g_extern.audio_data.data_ptr < g_extern.audio_data.chunk_size) if (g_extern.audio_data.data_ptr < g_extern.audio_data.chunk_size)
return; return;
g_extern.audio_active = rarch_audio_flush(g_extern.audio_data.conv_outsamples, driver.audio_active = rarch_audio_flush(g_extern.audio_data.conv_outsamples,
g_extern.audio_data.data_ptr) && g_extern.audio_active; g_extern.audio_data.data_ptr) && driver.audio_active;
g_extern.audio_data.data_ptr = 0; g_extern.audio_data.data_ptr = 0;
} }
@ -122,8 +122,8 @@ static size_t audio_sample_batch(const int16_t *data, size_t frames)
if (frames > (AUDIO_CHUNK_SIZE_NONBLOCKING >> 1)) if (frames > (AUDIO_CHUNK_SIZE_NONBLOCKING >> 1))
frames = AUDIO_CHUNK_SIZE_NONBLOCKING >> 1; frames = AUDIO_CHUNK_SIZE_NONBLOCKING >> 1;
g_extern.audio_active = rarch_audio_flush(data, frames << 1) driver.audio_active = rarch_audio_flush(data, frames << 1)
&& g_extern.audio_active; && driver.audio_active;
return frames; return frames;
} }

View File

@ -476,7 +476,7 @@ bool rarch_audio_flush(const int16_t *data, size_t samples)
if (g_extern.is_paused || g_extern.audio_data.mute) if (g_extern.is_paused || g_extern.audio_data.mute)
return true; return true;
if (!g_extern.audio_active || !g_extern.audio_data.data) if (!driver.audio_active || !g_extern.audio_data.data)
return false; return false;
RARCH_PERFORMANCE_INIT(audio_convert_s16); RARCH_PERFORMANCE_INIT(audio_convert_s16);
@ -1846,10 +1846,10 @@ static void check_stateslots(
static inline void flush_rewind_audio(void) static inline void flush_rewind_audio(void)
{ {
/* We just rewound. Flush rewind audio buffer. */ /* We just rewound. Flush rewind audio buffer. */
g_extern.audio_active = rarch_audio_flush(g_extern.audio_data.rewind_buf driver.audio_active = rarch_audio_flush(g_extern.audio_data.rewind_buf
+ g_extern.audio_data.rewind_ptr, + g_extern.audio_data.rewind_ptr,
g_extern.audio_data.rewind_size - g_extern.audio_data.rewind_ptr) g_extern.audio_data.rewind_size - g_extern.audio_data.rewind_ptr)
&& g_extern.audio_active; && driver.audio_active;
g_extern.frame_is_reverse = false; g_extern.frame_is_reverse = false;
} }
@ -2325,7 +2325,7 @@ static void check_mute(void)
else if (!driver.audio->start(driver.audio_data)) else if (!driver.audio->start(driver.audio_data))
{ {
RARCH_ERR("Failed to unmute audio.\n"); RARCH_ERR("Failed to unmute audio.\n");
g_extern.audio_active = false; driver.audio_active = false;
} }
} }
@ -2435,7 +2435,7 @@ static bool do_state_checks(
if (BIND_PRESSED(trigger_input, RARCH_SCREENSHOT)) if (BIND_PRESSED(trigger_input, RARCH_SCREENSHOT))
rarch_main_command(RARCH_CMD_TAKE_SCREENSHOT); rarch_main_command(RARCH_CMD_TAKE_SCREENSHOT);
if (g_extern.audio_active) if (driver.audio_active)
{ {
if (BIND_PRESSED(trigger_input, RARCH_MUTE)) if (BIND_PRESSED(trigger_input, RARCH_MUTE))
check_mute(); check_mute();
@ -2527,8 +2527,8 @@ static bool do_state_checks(
static void init_state(void) static void init_state(void)
{ {
g_extern.video_active = true; driver.video_active = true;
g_extern.audio_active = true; driver.audio_active = true;
} }
static void deinit_log_file(void) static void deinit_log_file(void)
@ -3156,7 +3156,7 @@ void rarch_main_command(unsigned cmd)
&& !driver.audio->start(driver.audio_data)) && !driver.audio->start(driver.audio_data))
{ {
RARCH_ERR("Failed to start audio driver. Will continue without audio.\n"); RARCH_ERR("Failed to start audio driver. Will continue without audio.\n");
g_extern.audio_active = false; driver.audio_active = false;
} }
break; break;
case RARCH_CMD_OVERLAY_INIT: case RARCH_CMD_OVERLAY_INIT: