mirror of
https://github.com/libretro/RetroArch
synced 2025-02-21 09:39:56 +00:00
Create wrapper functions for passing a message to the runloop's
message queue
This commit is contained in:
parent
96ae2e9882
commit
00239a30d6
@ -22,6 +22,7 @@
|
|||||||
#include "../driver.h"
|
#include "../driver.h"
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
#include "../retroarch.h"
|
#include "../retroarch.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
static const audio_driver_t *audio_drivers[] = {
|
static const audio_driver_t *audio_drivers[] = {
|
||||||
#ifdef HAVE_ALSA
|
#ifdef HAVE_ALSA
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "camera_driver.h"
|
#include "camera_driver.h"
|
||||||
#include "../driver.h"
|
#include "../driver.h"
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
static const camera_driver_t *camera_drivers[] = {
|
static const camera_driver_t *camera_drivers[] = {
|
||||||
#ifdef HAVE_V4L2
|
#ifdef HAVE_V4L2
|
||||||
|
4
cheats.c
4
cheats.c
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "cheats.h"
|
#include "cheats.h"
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include "dynamic.h"
|
#include "dynamic.h"
|
||||||
#include <file/config_file.h>
|
#include <file/config_file.h>
|
||||||
#include <file/file_path.h>
|
#include <file/file_path.h>
|
||||||
@ -232,7 +233,6 @@ void cheat_manager_free(cheat_manager_t *handle)
|
|||||||
|
|
||||||
void cheat_manager_update(cheat_manager_t *handle, unsigned handle_idx)
|
void cheat_manager_update(cheat_manager_t *handle, unsigned handle_idx)
|
||||||
{
|
{
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
|
||||||
char msg[256];
|
char msg[256];
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Cheat: #%u [%s]: %s",
|
snprintf(msg, sizeof(msg), "Cheat: #%u [%s]: %s",
|
||||||
@ -240,7 +240,7 @@ void cheat_manager_update(cheat_manager_t *handle, unsigned handle_idx)
|
|||||||
(handle->cheats[handle_idx].desc) ?
|
(handle->cheats[handle_idx].desc) ?
|
||||||
(handle->cheats[handle_idx].desc) : (handle->cheats[handle_idx].code)
|
(handle->cheats[handle_idx].desc) : (handle->cheats[handle_idx].code)
|
||||||
);
|
);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
rarch_main_msg_queue_push(msg, 1, 180, true);
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include "compat/strl.h"
|
#include "compat/strl.h"
|
||||||
#include "compat/posix_string.h"
|
#include "compat/posix_string.h"
|
||||||
#include <file/file_path.h>
|
#include <file/file_path.h>
|
||||||
@ -230,10 +231,8 @@ static bool cmd_set_shader(const char *arg)
|
|||||||
if (type == RARCH_SHADER_NONE)
|
if (type == RARCH_SHADER_NONE)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Shader: \"%s\"", arg);
|
snprintf(msg, sizeof(msg), "Shader: \"%s\"", arg);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 120);
|
rarch_main_msg_queue_push(msg, 1, 120, true);
|
||||||
RARCH_LOG("Applying shader \"%s\".\n", arg);
|
RARCH_LOG("Applying shader \"%s\".\n", arg);
|
||||||
|
|
||||||
return driver.video->set_shader(driver.video_data, type, arg);
|
return driver.video->set_shader(driver.video_data, type, arg);
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "file_ops.h"
|
#include "file_ops.h"
|
||||||
#include "file_extract.h"
|
#include "file_extract.h"
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include <file/file_path.h>
|
#include <file/file_path.h>
|
||||||
#include "file_ext.h"
|
#include "file_ext.h"
|
||||||
#include <file/dir_list.h>
|
#include <file/dir_list.h>
|
||||||
@ -84,8 +85,7 @@ void database_info_write_rdl_free(database_info_rdl_handle_t *dbl)
|
|||||||
string_list_free(dbl->list);
|
string_list_free(dbl->list);
|
||||||
free(dbl);
|
free(dbl);
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push("Scanning of directory finished.\n", 1, 180, true);
|
||||||
msg_queue_push(g_runloop.msg_queue, "Scanning of directory finished.\n", 1, 180);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
int database_info_write_rdl_iterate(database_info_rdl_handle_t *dbl)
|
int database_info_write_rdl_iterate(database_info_rdl_handle_t *dbl)
|
||||||
@ -141,8 +141,7 @@ int database_info_write_rdl_iterate(database_info_rdl_handle_t *dbl)
|
|||||||
snprintf(msg, sizeof(msg), "%zu/%zu: Scanning %s...\n",
|
snprintf(msg, sizeof(msg), "%zu/%zu: Scanning %s...\n",
|
||||||
dbl->list_ptr, dbl->list->size, name);
|
dbl->list_ptr, dbl->list->size, name);
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push(msg, 1, 180, true);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
|
||||||
|
|
||||||
crc = crc32_calculate(ret_buf, ret);
|
crc = crc32_calculate(ret_buf, ret);
|
||||||
|
|
||||||
|
3
driver.c
3
driver.c
@ -17,6 +17,7 @@
|
|||||||
#include "driver.h"
|
#include "driver.h"
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
#include "retroarch.h"
|
#include "retroarch.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include "compat/posix_string.h"
|
#include "compat/posix_string.h"
|
||||||
#include "gfx/video_monitor.h"
|
#include "gfx/video_monitor.h"
|
||||||
#include "audio/audio_monitor.h"
|
#include "audio/audio_monitor.h"
|
||||||
@ -281,7 +282,7 @@ bool driver_update_system_av_info(const struct retro_system_av_info *info)
|
|||||||
if (driver.recording_data)
|
if (driver.recording_data)
|
||||||
{
|
{
|
||||||
static const char *msg = "Restarting recording due to driver reinit.";
|
static const char *msg = "Restarting recording due to driver reinit.";
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 2, 180);
|
rarch_main_msg_queue_push(msg, 2, 180, false);
|
||||||
RARCH_WARN("%s\n", msg);
|
RARCH_WARN("%s\n", msg);
|
||||||
rarch_main_command(RARCH_CMD_RECORD_DEINIT);
|
rarch_main_command(RARCH_CMD_RECORD_DEINIT);
|
||||||
rarch_main_command(RARCH_CMD_RECORD_INIT);
|
rarch_main_command(RARCH_CMD_RECORD_INIT);
|
||||||
|
@ -31,6 +31,7 @@
|
|||||||
#include "libretro_private.h"
|
#include "libretro_private.h"
|
||||||
#include "dynamic_dummy.h"
|
#include "dynamic_dummy.h"
|
||||||
#include "retroarch.h"
|
#include "retroarch.h"
|
||||||
|
#include "runloop.h"
|
||||||
|
|
||||||
#include "input/input_sensor.h"
|
#include "input/input_sensor.h"
|
||||||
|
|
||||||
@ -674,11 +675,7 @@ bool rarch_environment_cb(unsigned cmd, void *data)
|
|||||||
{
|
{
|
||||||
const struct retro_message *msg = (const struct retro_message*)data;
|
const struct retro_message *msg = (const struct retro_message*)data;
|
||||||
RARCH_LOG("Environ SET_MESSAGE: %s\n", msg->msg);
|
RARCH_LOG("Environ SET_MESSAGE: %s\n", msg->msg);
|
||||||
if (g_runloop.msg_queue)
|
rarch_main_msg_queue_push(msg->msg, 1, msg->frames, true);
|
||||||
{
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
|
||||||
msg_queue_push(g_runloop.msg_queue, msg->msg, 1, msg->frames);
|
|
||||||
}
|
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
66
general.h
66
general.h
@ -395,71 +395,6 @@ typedef struct rarch_resolution
|
|||||||
unsigned id;
|
unsigned id;
|
||||||
} rarch_resolution_t;
|
} rarch_resolution_t;
|
||||||
|
|
||||||
#define AUDIO_BUFFER_FREE_SAMPLES_COUNT (8 * 1024)
|
|
||||||
#define MEASURE_FRAME_TIME_SAMPLES_COUNT (2 * 1024)
|
|
||||||
|
|
||||||
/* All libretro runloop-related globals go here. */
|
|
||||||
|
|
||||||
struct runloop
|
|
||||||
{
|
|
||||||
/* Lifecycle state checks. */
|
|
||||||
bool is_paused;
|
|
||||||
bool is_idle;
|
|
||||||
bool is_menu;
|
|
||||||
bool is_slowmotion;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned count;
|
|
||||||
unsigned max;
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
bool is_updated;
|
|
||||||
} label;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
bool is_active;
|
|
||||||
} animation;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
bool dirty;
|
|
||||||
} framebuf;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
bool active;
|
|
||||||
} action;
|
|
||||||
} menu;
|
|
||||||
} current;
|
|
||||||
} video;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
retro_time_t minimum_time;
|
|
||||||
retro_time_t last_time;
|
|
||||||
} limit;
|
|
||||||
} frames;
|
|
||||||
|
|
||||||
struct
|
|
||||||
{
|
|
||||||
unsigned buffer_free_samples[AUDIO_BUFFER_FREE_SAMPLES_COUNT];
|
|
||||||
uint64_t buffer_free_samples_count;
|
|
||||||
|
|
||||||
retro_time_t frame_time_samples[MEASURE_FRAME_TIME_SAMPLES_COUNT];
|
|
||||||
uint64_t frame_time_samples_count;
|
|
||||||
} measure_data;
|
|
||||||
|
|
||||||
msg_queue_t *msg_queue;
|
|
||||||
};
|
|
||||||
|
|
||||||
/* All run-time- / command line flag-related globals go here. */
|
/* All run-time- / command line flag-related globals go here. */
|
||||||
|
|
||||||
struct global
|
struct global
|
||||||
@ -783,7 +718,6 @@ struct global
|
|||||||
|
|
||||||
/* Public data structures. */
|
/* Public data structures. */
|
||||||
extern struct settings g_settings;
|
extern struct settings g_settings;
|
||||||
extern struct runloop g_runloop;
|
|
||||||
extern struct global g_extern;
|
extern struct global g_extern;
|
||||||
extern struct defaults g_defaults;
|
extern struct defaults g_defaults;
|
||||||
|
|
||||||
|
@ -32,6 +32,7 @@
|
|||||||
|
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
#include "../../retroarch.h"
|
#include "../../retroarch.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_viewport.h"
|
#include "../video_viewport.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "../font_renderer_driver.h"
|
#include "../font_renderer_driver.h"
|
||||||
@ -1432,7 +1433,7 @@ static bool exynos_gfx_frame(void *data, const void *frame, unsigned width,
|
|||||||
char buffer[128], buffer_fps[128];
|
char buffer[128], buffer_fps[128];
|
||||||
video_monitor_get_fps(buffer, sizeof(buffer),
|
video_monitor_get_fps(buffer, sizeof(buffer),
|
||||||
g_settings.fps_show ? buffer_fps : NULL, sizeof(buffer_fps));
|
g_settings.fps_show ? buffer_fps : NULL, sizeof(buffer_fps));
|
||||||
msg_queue_push(g_runloop.msg_queue, buffer_fps, 1, 1);
|
rarch_main_msg_queue_push(buffer_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If at this point the dimension parameters are still zero, setup some *
|
/* If at this point the dimension parameters are still zero, setup some *
|
||||||
|
@ -30,6 +30,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
#include "../../retroarch.h"
|
#include "../../retroarch.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include <math.h>
|
#include <math.h>
|
||||||
|
|
||||||
#ifdef HAVE_CONFIG_H
|
#ifdef HAVE_CONFIG_H
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
#include "../../retroarch.h"
|
#include "../../retroarch.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../../performance.h"
|
#include "../../performance.h"
|
||||||
#include <gfx/scaler/scaler.h>
|
#include <gfx/scaler/scaler.h>
|
||||||
#include "../video_viewport.h"
|
#include "../video_viewport.h"
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
|
|
||||||
@ -271,7 +272,7 @@ static void android_gfx_ctx_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool android_gfx_ctx_set_video_mode(void *data,
|
static bool android_gfx_ctx_set_video_mode(void *data,
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
|
|
||||||
@ -358,7 +359,7 @@ static void gfx_ctx_qnx_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gfx_ctx_qnx_set_video_mode(void *data,
|
static bool gfx_ctx_qnx_set_video_mode(void *data,
|
||||||
|
@ -18,6 +18,7 @@
|
|||||||
#include "../d3d/d3d.h"
|
#include "../d3d/d3d.h"
|
||||||
#include "win32_common.h"
|
#include "win32_common.h"
|
||||||
|
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
|
|
||||||
#ifdef _MSC_VER
|
#ifdef _MSC_VER
|
||||||
@ -144,7 +145,7 @@ static void gfx_ctx_d3d_update_title(void *data)
|
|||||||
stat.dwAvailPhys/(1024.0f*1024.0f), stat.dwTotalPhys/(1024.0f*1024.0f));
|
stat.dwAvailPhys/(1024.0f*1024.0f), stat.dwTotalPhys/(1024.0f*1024.0f));
|
||||||
strlcat(buffer_fps, mem, sizeof(buffer_fps));
|
strlcat(buffer_fps, mem, sizeof(buffer_fps));
|
||||||
#endif
|
#endif
|
||||||
msg_queue_push(g_runloop.msg_queue, buffer_fps, 1, 1);
|
rarch_main_msg_queue_push(buffer_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include <file/dir_list.h>
|
#include <file/dir_list.h>
|
||||||
@ -268,7 +269,7 @@ static void gfx_ctx_drm_egl_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push( buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_drm_egl_get_video_size(void *data, unsigned *width, unsigned *height)
|
static void gfx_ctx_drm_egl_get_video_size(void *data, unsigned *width, unsigned *height)
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_context_driver.h"
|
#include "../video_context_driver.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
@ -92,7 +93,7 @@ static void gfx_ctx_emscripten_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_emscripten_get_video_size(void *data,
|
static void gfx_ctx_emscripten_get_video_size(void *data,
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "x11_common.h"
|
#include "x11_common.h"
|
||||||
@ -212,7 +213,7 @@ static void gfx_ctx_glx_update_window_title(void *data)
|
|||||||
buf_fps, sizeof(buf_fps)))
|
buf_fps, sizeof(buf_fps)))
|
||||||
XStoreName(glx->g_dpy, glx->g_win, buf);
|
XStoreName(glx->g_dpy, glx->g_win, buf);
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_glx_get_video_size(void *data,
|
static void gfx_ctx_glx_get_video_size(void *data,
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
|
|
||||||
@ -204,7 +205,7 @@ static void gfx_ctx_mali_fbdev_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gfx_ctx_mali_fbdev_set_video_mode(void *data,
|
static bool gfx_ctx_mali_fbdev_set_video_mode(void *data,
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../../ps3/sdk_defines.h"
|
#include "../../ps3/sdk_defines.h"
|
||||||
|
|
||||||
#ifdef HAVE_LIBDBGFONT
|
#ifdef HAVE_LIBDBGFONT
|
||||||
@ -220,7 +221,7 @@ static void gfx_ctx_ps3_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_ps3_get_video_size(void *data,
|
static void gfx_ctx_ps3_get_video_size(void *data,
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
|
|
||||||
@ -290,7 +291,7 @@ static void sdl_ctx_update_window_title(void *data)
|
|||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void sdl_ctx_check_window(void *data, bool *quit, bool *resize,unsigned *width,
|
static void sdl_ctx_check_window(void *data, bool *quit, bool *resize,unsigned *width,
|
||||||
|
@ -15,6 +15,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_context_driver.h"
|
#include "../video_context_driver.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
@ -124,7 +125,7 @@ static void gfx_ctx_vc_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_vc_get_video_size(void *data,
|
static void gfx_ctx_vc_get_video_size(void *data,
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
|
|
||||||
@ -193,7 +194,7 @@ static void gfx_ctx_vivante_update_window_title(void *data)
|
|||||||
video_monitor_get_fps(buf, sizeof(buf),
|
video_monitor_get_fps(buf, sizeof(buf),
|
||||||
buf_fps, sizeof(buf_fps));
|
buf_fps, sizeof(buf_fps));
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool gfx_ctx_vivante_set_video_mode(void *data,
|
static bool gfx_ctx_vivante_set_video_mode(void *data,
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
|
|
||||||
@ -341,7 +342,7 @@ static void gfx_ctx_wl_update_window_title(void *data)
|
|||||||
wl_shell_surface_set_title(wl->g_shell_surf, buf);
|
wl_shell_surface_set_title(wl->g_shell_surf, buf);
|
||||||
|
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_wl_get_video_size(void *data,
|
static void gfx_ctx_wl_get_video_size(void *data,
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../video_context_driver.h"
|
#include "../video_context_driver.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
@ -352,7 +353,7 @@ static void gfx_ctx_wgl_update_window_title(void *data)
|
|||||||
buf_fps, sizeof(buf_fps)))
|
buf_fps, sizeof(buf_fps)))
|
||||||
SetWindowText(g_hwnd, buf);
|
SetWindowText(g_hwnd, buf);
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_wgl_get_video_size(void *data, unsigned *width, unsigned *height)
|
static void gfx_ctx_wgl_get_video_size(void *data, unsigned *width, unsigned *height)
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
*/
|
*/
|
||||||
|
|
||||||
#include "../../driver.h"
|
#include "../../driver.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../gl_common.h"
|
#include "../gl_common.h"
|
||||||
#include "../video_monitor.h"
|
#include "../video_monitor.h"
|
||||||
#include "x11_common.h"
|
#include "x11_common.h"
|
||||||
@ -227,7 +228,7 @@ static void gfx_ctx_xegl_update_window_title(void *data)
|
|||||||
buf_fps, sizeof(buf_fps)))
|
buf_fps, sizeof(buf_fps)))
|
||||||
XStoreName(g_dpy, g_win, buf);
|
XStoreName(g_dpy, g_win, buf);
|
||||||
if (g_settings.fps_show)
|
if (g_settings.fps_show)
|
||||||
msg_queue_push(g_runloop.msg_queue, buf_fps, 1, 1);
|
rarch_main_msg_queue_push(buf_fps, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
static void gfx_ctx_xegl_get_video_size(void *data,
|
static void gfx_ctx_xegl_get_video_size(void *data,
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include "video_monitor.h"
|
#include "video_monitor.h"
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
#include "../retroarch.h"
|
#include "../retroarch.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
static const video_driver_t *video_drivers[] = {
|
static const video_driver_t *video_drivers[] = {
|
||||||
#ifdef HAVE_OPENGL
|
#ifdef HAVE_OPENGL
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "video_monitor.h"
|
#include "video_monitor.h"
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
#include "../retroarch.h"
|
#include "../retroarch.h"
|
||||||
|
#include "../runloop.h"
|
||||||
#include "../performance.h"
|
#include "../performance.h"
|
||||||
|
|
||||||
void video_monitor_adjust_system_rates(void)
|
void video_monitor_adjust_system_rates(void)
|
||||||
@ -59,7 +60,7 @@ void video_monitor_set_refresh_rate(float hz)
|
|||||||
{
|
{
|
||||||
char msg[PATH_MAX_LENGTH];
|
char msg[PATH_MAX_LENGTH];
|
||||||
snprintf(msg, sizeof(msg), "Setting refresh rate to: %.3f Hz.", hz);
|
snprintf(msg, sizeof(msg), "Setting refresh rate to: %.3f Hz.", hz);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
rarch_main_msg_queue_push(msg, 1, 180, false);
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
|
|
||||||
g_settings.video.refresh_rate = hz;
|
g_settings.video.refresh_rate = hz;
|
||||||
|
@ -17,12 +17,12 @@
|
|||||||
#include "video_thread_wrapper.h"
|
#include "video_thread_wrapper.h"
|
||||||
#include "video_viewport.h"
|
#include "video_viewport.h"
|
||||||
#include "../performance.h"
|
#include "../performance.h"
|
||||||
|
#include "../runloop.h"
|
||||||
#include <file/dir_list.h>
|
#include <file/dir_list.h>
|
||||||
#include <stdlib.h>
|
#include <stdlib.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <limits.h>
|
#include <limits.h>
|
||||||
|
|
||||||
|
|
||||||
static void *thread_init_never_call(const video_info_t *video,
|
static void *thread_init_never_call(const video_info_t *video,
|
||||||
const input_driver_t **input, void **input_data)
|
const input_driver_t **input, void **input_data)
|
||||||
{
|
{
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "../input_autodetect.h"
|
#include "../input_autodetect.h"
|
||||||
#include "../input_common.h"
|
#include "../input_common.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
|
|
||||||
struct pad_connection
|
struct pad_connection
|
||||||
{
|
{
|
||||||
@ -127,7 +128,7 @@ static void remove_device(void* context, IOReturn result, void* sender)
|
|||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Joypad #%u (%s) disconnected.",
|
snprintf(msg, sizeof(msg), "Joypad #%u (%s) disconnected.",
|
||||||
connection->slot, "N/A");
|
connection->slot, "N/A");
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 0, 60);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
RARCH_LOG("[apple_input]: %s\n", msg);
|
RARCH_LOG("[apple_input]: %s\n", msg);
|
||||||
|
|
||||||
apple->buttons[connection->slot] = 0;
|
apple->buttons[connection->slot] = 0;
|
||||||
|
@ -17,6 +17,7 @@
|
|||||||
#include "../input_autodetect.h"
|
#include "../input_autodetect.h"
|
||||||
#include "../input_common.h"
|
#include "../input_common.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -97,7 +98,7 @@ static bool linuxraw_joypad_init_pad(const char *path, struct linuxraw_joypad *p
|
|||||||
{
|
{
|
||||||
char msg[512];
|
char msg[512];
|
||||||
snprintf(msg, sizeof(msg), "Joypad #%u (%s) connected.", (unsigned)(pad - linuxraw_pads), pad->ident);
|
snprintf(msg, sizeof(msg), "Joypad #%u (%s) connected.", (unsigned)(pad - linuxraw_pads), pad->ident);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 0, 60);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
}
|
||||||
@ -153,7 +154,7 @@ static void handle_plugged_pad(void)
|
|||||||
{
|
{
|
||||||
char msg[512];
|
char msg[512];
|
||||||
snprintf(msg, sizeof(msg), "Joypad #%u (%s) disconnected.", idx, linuxraw_pads[idx].ident);
|
snprintf(msg, sizeof(msg), "Joypad #%u (%s) disconnected.", idx, linuxraw_pads[idx].ident);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 0, 60);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
@ -16,6 +16,7 @@
|
|||||||
#include "../input_autodetect.h"
|
#include "../input_autodetect.h"
|
||||||
#include "../input_common.h"
|
#include "../input_common.h"
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include <unistd.h>
|
#include <unistd.h>
|
||||||
#include <stdint.h>
|
#include <stdint.h>
|
||||||
#include <string.h>
|
#include <string.h>
|
||||||
@ -457,7 +458,7 @@ static void check_device(struct udev_device *dev, const char *path, bool hotplug
|
|||||||
{
|
{
|
||||||
char msg[512];
|
char msg[512];
|
||||||
snprintf(msg, sizeof(msg), "Joypad #%u (%s) connected.", pad, path);
|
snprintf(msg, sizeof(msg), "Joypad #%u (%s) connected.", pad, path);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 0, 60);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
RARCH_LOG("[udev]: %s\n", msg);
|
RARCH_LOG("[udev]: %s\n", msg);
|
||||||
}
|
}
|
||||||
#else
|
#else
|
||||||
@ -482,7 +483,7 @@ static void udev_joypad_remove_device(const char *path)
|
|||||||
#ifndef IS_JOYCONFIG
|
#ifndef IS_JOYCONFIG
|
||||||
char msg[512];
|
char msg[512];
|
||||||
snprintf(msg, sizeof(msg), "Joypad #%u (%s) disconnected.", i, udev_pads[i].ident);
|
snprintf(msg, sizeof(msg), "Joypad #%u (%s) disconnected.", i, udev_pads[i].ident);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 0, 60);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
RARCH_LOG("[udev]: %s\n", msg);
|
RARCH_LOG("[udev]: %s\n", msg);
|
||||||
#endif
|
#endif
|
||||||
free_pad(i, true);
|
free_pad(i, true);
|
||||||
|
@ -22,6 +22,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
|
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
static void input_autoconfigure_joypad_conf(config_file_t *conf,
|
static void input_autoconfigure_joypad_conf(config_file_t *conf,
|
||||||
struct retro_keybind *binds)
|
struct retro_keybind *binds)
|
||||||
@ -91,7 +92,7 @@ found:
|
|||||||
idx, name);
|
idx, name);
|
||||||
|
|
||||||
if (!block_osd_spam)
|
if (!block_osd_spam)
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 0, 60);
|
rarch_main_msg_queue_push(msg, 0, 60, false);
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <errno.h>
|
#include <errno.h>
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include "retroarch.h"
|
#include "retroarch.h"
|
||||||
#include "performance.h"
|
#include "performance.h"
|
||||||
#include "input/keyboard_line.h"
|
#include "input/keyboard_line.h"
|
||||||
@ -136,7 +137,7 @@ static void video_frame(const void *data, unsigned width,
|
|||||||
)
|
)
|
||||||
recording_dump_frame(data, width, height, pitch);
|
recording_dump_frame(data, width, height, pitch);
|
||||||
|
|
||||||
msg = msg_queue_pull(g_runloop.msg_queue);
|
msg = rarch_main_msg_queue_pull();
|
||||||
driver.current_msg = msg;
|
driver.current_msg = msg;
|
||||||
|
|
||||||
if (video_frame_filter(data, width, height, pitch,
|
if (video_frame_filter(data, width, height, pitch,
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include "location_driver.h"
|
#include "location_driver.h"
|
||||||
#include "../driver.h"
|
#include "../driver.h"
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
static const location_driver_t *location_drivers[] = {
|
static const location_driver_t *location_drivers[] = {
|
||||||
#ifdef ANDROID
|
#ifdef ANDROID
|
||||||
@ -147,8 +148,7 @@ bool driver_location_start(void)
|
|||||||
if (g_settings.location.allow)
|
if (g_settings.location.allow)
|
||||||
return driver.location->start(driver.location_data);
|
return driver.location->start(driver.location_data);
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push("Location is explicitly disabled.\n", 1, 180, true);
|
||||||
msg_queue_push(g_runloop.msg_queue, "Location is explicitly disabled.\n", 1, 180);
|
|
||||||
}
|
}
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "../dynamic.h"
|
#include "../dynamic.h"
|
||||||
#include "../frontend/frontend.h"
|
#include "../frontend/frontend.h"
|
||||||
#include "../../retroarch.h"
|
#include "../../retroarch.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "../../performance.h"
|
#include "../../performance.h"
|
||||||
#include <file/file_path.h>
|
#include <file/file_path.h>
|
||||||
|
|
||||||
@ -111,7 +112,7 @@ static void push_to_history_playlist(void)
|
|||||||
|
|
||||||
fill_pathname_base(tmp, g_extern.fullpath, sizeof(tmp));
|
fill_pathname_base(tmp, g_extern.fullpath, sizeof(tmp));
|
||||||
snprintf(str, sizeof(str), "INFO - Loading %s ...", tmp);
|
snprintf(str, sizeof(str), "INFO - Loading %s ...", tmp);
|
||||||
msg_queue_push(g_runloop.msg_queue, str, 1, 1);
|
rarch_main_msg_queue_push(str, 1, 1, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
content_playlist_push(g_defaults.history,
|
content_playlist_push(g_defaults.history,
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include <ctype.h>
|
#include <ctype.h>
|
||||||
#include <boolean.h>
|
#include <boolean.h>
|
||||||
#include "../../general.h"
|
#include "../../general.h"
|
||||||
|
#include "../../runloop.h"
|
||||||
#include "menu_input.h"
|
#include "menu_input.h"
|
||||||
|
|
||||||
#if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL)
|
#if defined(HAVE_CG) || defined(HAVE_HLSL) || defined(HAVE_GLSL)
|
||||||
|
@ -19,6 +19,7 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
#include <compat/strl.h>
|
#include <compat/strl.h>
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
/* from https://github.com/kikito/tween.lua/blob/master/tween.lua */
|
/* from https://github.com/kikito/tween.lua/blob/master/tween.lua */
|
||||||
|
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "../file_ops.h"
|
#include "../file_ops.h"
|
||||||
#include "../config.def.h"
|
#include "../config.def.h"
|
||||||
#include "../retroarch.h"
|
#include "../retroarch.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
#ifdef HAVE_NETWORKING
|
#ifdef HAVE_NETWORKING
|
||||||
#include "../net_http.h"
|
#include "../net_http.h"
|
||||||
@ -115,8 +116,7 @@ int cb_core_updater_download(void *data_, size_t len)
|
|||||||
snprintf(msg, sizeof(msg), "Download complete: %s.",
|
snprintf(msg, sizeof(msg), "Download complete: %s.",
|
||||||
core_updater_path);
|
core_updater_path);
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push(msg, 1, 90, true);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 90);
|
|
||||||
|
|
||||||
#ifdef HAVE_ZLIB
|
#ifdef HAVE_ZLIB
|
||||||
file_ext = path_get_extension(output_path);
|
file_ext = path_get_extension(output_path);
|
||||||
|
@ -23,6 +23,7 @@
|
|||||||
#include "menu_navigation.h"
|
#include "menu_navigation.h"
|
||||||
|
|
||||||
#include "../retroarch.h"
|
#include "../retroarch.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
#include "../input/input_autodetect.h"
|
#include "../input/input_autodetect.h"
|
||||||
|
|
||||||
|
@ -20,6 +20,7 @@
|
|||||||
#include "menu_shader.h"
|
#include "menu_shader.h"
|
||||||
|
|
||||||
#include "../performance.h"
|
#include "../performance.h"
|
||||||
|
#include "../runloop.h"
|
||||||
|
|
||||||
static void menu_action_setting_disp_set_label_cheat_num_passes(
|
static void menu_action_setting_disp_set_label_cheat_num_passes(
|
||||||
file_list_t* list,
|
file_list_t* list,
|
||||||
|
22
netplay.c
22
netplay.c
@ -21,6 +21,7 @@
|
|||||||
#include "net_compat.h"
|
#include "net_compat.h"
|
||||||
#include "netplay.h"
|
#include "netplay.h"
|
||||||
#include "general.h"
|
#include "general.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include "autosave.h"
|
#include "autosave.h"
|
||||||
#include "dynamic.h"
|
#include "dynamic.h"
|
||||||
#include <queues/message_queue.h>
|
#include <queues/message_queue.h>
|
||||||
@ -122,8 +123,7 @@ struct netplay
|
|||||||
static void warn_hangup(void)
|
static void warn_hangup(void)
|
||||||
{
|
{
|
||||||
RARCH_WARN("Netplay has disconnected. Will continue without connection ...\n");
|
RARCH_WARN("Netplay has disconnected. Will continue without connection ...\n");
|
||||||
if (g_runloop.msg_queue)
|
rarch_main_msg_queue_push("Netplay has disconnected. Will continue without connection.", 0, 480, false);
|
||||||
msg_queue_push(g_runloop.msg_queue, "Netplay has disconnected. Will continue without connection.", 0, 480);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -279,7 +279,7 @@ static bool netplay_get_cmd(netplay_t *netplay)
|
|||||||
netplay->flip_frame = flip_frame;
|
netplay->flip_frame = flip_frame;
|
||||||
|
|
||||||
RARCH_LOG("Netplay users are flipped.\n");
|
RARCH_LOG("Netplay users are flipped.\n");
|
||||||
msg_queue_push(g_runloop.msg_queue, "Netplay users are flipped.", 1, 180);
|
rarch_main_msg_queue_push("Netplay users are flipped.", 1, 180, false);
|
||||||
|
|
||||||
return netplay_cmd_ack(netplay);
|
return netplay_cmd_ack(netplay);
|
||||||
|
|
||||||
@ -606,7 +606,7 @@ static void log_connection(const struct sockaddr_storage *their_addr,
|
|||||||
char msg[512];
|
char msg[512];
|
||||||
snprintf(msg, sizeof(msg), "Got connection from: \"%s (%s)\" (#%u)",
|
snprintf(msg, sizeof(msg), "Got connection from: \"%s (%s)\" (#%u)",
|
||||||
nick, str, slot);
|
nick, str, slot);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
rarch_main_msg_queue_push(msg, 1, 180, false);
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -912,7 +912,7 @@ static bool send_info(netplay_t *netplay)
|
|||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Connected to: \"%s\"", netplay->other_nick);
|
snprintf(msg, sizeof(msg), "Connected to: \"%s\"", netplay->other_nick);
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
rarch_main_msg_queue_push(msg, 1, 180, false);
|
||||||
|
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
@ -1062,7 +1062,7 @@ static bool get_info_spectate(netplay_t *netplay)
|
|||||||
}
|
}
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Connected to \"%s\"", netplay->other_nick);
|
snprintf(msg, sizeof(msg), "Connected to \"%s\"", netplay->other_nick);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
rarch_main_msg_queue_push(msg, 1, 180, false);
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
|
|
||||||
|
|
||||||
@ -1265,7 +1265,7 @@ void netplay_flip_users(netplay_t *netplay)
|
|||||||
&& netplay_get_response(netplay))
|
&& netplay_get_response(netplay))
|
||||||
{
|
{
|
||||||
RARCH_LOG("Netplay users are flipped.\n");
|
RARCH_LOG("Netplay users are flipped.\n");
|
||||||
msg_queue_push(g_runloop.msg_queue, "Netplay users are flipped.", 1, 180);
|
rarch_main_msg_queue_push("Netplay users are flipped.", 1, 180, false);
|
||||||
|
|
||||||
/* Queue up a flip well enough in the future. */
|
/* Queue up a flip well enough in the future. */
|
||||||
netplay->flip ^= true;
|
netplay->flip ^= true;
|
||||||
@ -1281,7 +1281,7 @@ void netplay_flip_users(netplay_t *netplay)
|
|||||||
|
|
||||||
error:
|
error:
|
||||||
RARCH_WARN("%s\n", msg);
|
RARCH_WARN("%s\n", msg);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
rarch_main_msg_queue_push(msg, 1, 180, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1367,9 +1367,7 @@ static int16_t netplay_get_spectate_input(netplay_t *netplay, bool port,
|
|||||||
return swap_if_big16(inp);
|
return swap_if_big16(inp);
|
||||||
|
|
||||||
RARCH_ERR("Connection with host was cut.\n");
|
RARCH_ERR("Connection with host was cut.\n");
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push("Connection with host was cut.", 1, 180, true);
|
||||||
msg_queue_push(g_runloop.msg_queue,
|
|
||||||
"Connection with host was cut.", 1, 180);
|
|
||||||
|
|
||||||
pretro_set_input_state(netplay->cbs.state_cb);
|
pretro_set_input_state(netplay->cbs.state_cb);
|
||||||
return netplay->cbs.state_cb(port, device, idx, id);
|
return netplay->cbs.state_cb(port, device, idx, id);
|
||||||
@ -1586,7 +1584,7 @@ static void netplay_post_frame_spectate(netplay_t *netplay)
|
|||||||
RARCH_LOG("Client (#%u) disconnected ...\n", i);
|
RARCH_LOG("Client (#%u) disconnected ...\n", i);
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Client (#%u) disconnected.", i);
|
snprintf(msg, sizeof(msg), "Client (#%u) disconnected.", i);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
rarch_main_msg_queue_push(msg, 1, 180, false);
|
||||||
|
|
||||||
socket_close(netplay->spectate_fds[i]);
|
socket_close(netplay->spectate_fds[i]);
|
||||||
netplay->spectate_fds[i] = -1;
|
netplay->spectate_fds[i] = -1;
|
||||||
|
@ -21,6 +21,7 @@
|
|||||||
#include "../dynamic.h"
|
#include "../dynamic.h"
|
||||||
#include "../general.h"
|
#include "../general.h"
|
||||||
#include "../retroarch.h"
|
#include "../retroarch.h"
|
||||||
|
#include "../runloop.h"
|
||||||
#include "../intl/intl.h"
|
#include "../intl/intl.h"
|
||||||
#include "../gfx/video_viewport.h"
|
#include "../gfx/video_viewport.h"
|
||||||
|
|
||||||
@ -122,9 +123,8 @@ void recording_dump_frame(const void *data, unsigned width,
|
|||||||
{
|
{
|
||||||
static const char msg[] = "Recording terminated due to resize.";
|
static const char msg[] = "Recording terminated due to resize.";
|
||||||
RARCH_WARN("%s\n", msg);
|
RARCH_WARN("%s\n", msg);
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
|
||||||
|
|
||||||
|
rarch_main_msg_queue_push(msg, 1, 180, true);
|
||||||
rarch_main_command(RARCH_CMD_RECORD_DEINIT);
|
rarch_main_command(RARCH_CMD_RECORD_DEINIT);
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
55
runloop.c
55
runloop.c
@ -59,8 +59,7 @@ static void set_volume(float gain)
|
|||||||
g_settings.audio.volume = min(g_settings.audio.volume, 12.0f);
|
g_settings.audio.volume = min(g_settings.audio.volume, 12.0f);
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Volume: %.1f dB", g_settings.audio.volume);
|
snprintf(msg, sizeof(msg), "Volume: %.1f dB", g_settings.audio.volume);
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push(msg, 1, 180, true);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
|
|
||||||
g_extern.audio_data.volume_gain = db_to_gain(g_settings.audio.volume);
|
g_extern.audio_data.volume_gain = db_to_gain(g_settings.audio.volume);
|
||||||
@ -174,13 +173,10 @@ static void check_stateslots(bool pressed_increase, bool pressed_decrease)
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "State slot: %d",
|
snprintf(msg, sizeof(msg), "State slot: %d",
|
||||||
g_settings.state_slot);
|
g_settings.state_slot);
|
||||||
|
|
||||||
if (g_runloop.msg_queue)
|
rarch_main_msg_queue_push(msg, 1, 180, true);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 180);
|
|
||||||
|
|
||||||
RARCH_LOG("%s\n", msg);
|
RARCH_LOG("%s\n", msg);
|
||||||
}
|
}
|
||||||
@ -243,16 +239,16 @@ static void check_rewind(bool pressed)
|
|||||||
g_extern.rewind.frame_is_reverse = true;
|
g_extern.rewind.frame_is_reverse = true;
|
||||||
setup_rewind_audio();
|
setup_rewind_audio();
|
||||||
|
|
||||||
msg_queue_push(g_runloop.msg_queue, RETRO_MSG_REWINDING, 0,
|
rarch_main_msg_queue_push(RETRO_MSG_REWINDING, 0,
|
||||||
g_runloop.is_paused ? 1 : 30);
|
g_runloop.is_paused ? 1 : 30, false);
|
||||||
pretro_unserialize(buf, g_extern.rewind.size);
|
pretro_unserialize(buf, g_extern.rewind.size);
|
||||||
|
|
||||||
if (g_extern.bsv.movie)
|
if (g_extern.bsv.movie)
|
||||||
bsv_movie_frame_rewind(g_extern.bsv.movie);
|
bsv_movie_frame_rewind(g_extern.bsv.movie);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
msg_queue_push(g_runloop.msg_queue,
|
rarch_main_msg_queue_push(RETRO_MSG_REWIND_REACHED_END,
|
||||||
RETRO_MSG_REWIND_REACHED_END, 0, 30);
|
0, 30, false);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -294,9 +290,8 @@ static void check_slowmotion(bool pressed)
|
|||||||
if (g_settings.video.black_frame_insertion)
|
if (g_settings.video.black_frame_insertion)
|
||||||
rarch_render_cached_frame();
|
rarch_render_cached_frame();
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push(g_extern.rewind.frame_is_reverse ?
|
||||||
msg_queue_push(g_runloop.msg_queue, g_extern.rewind.frame_is_reverse ?
|
"Slow motion rewind." : "Slow motion.", 0, 30, true);
|
||||||
"Slow motion rewind." : "Slow motion.", 0, 30);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static bool check_movie_init(void)
|
static bool check_movie_init(void)
|
||||||
@ -327,9 +322,8 @@ static bool check_movie_init(void)
|
|||||||
if (!g_extern.bsv.movie)
|
if (!g_extern.bsv.movie)
|
||||||
ret = false;
|
ret = false;
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push(g_extern.bsv.movie ?
|
||||||
msg_queue_push(g_runloop.msg_queue, g_extern.bsv.movie ?
|
msg : "Failed to start movie record.", 1, 180, true);
|
||||||
msg : "Failed to start movie record.", 1, 180);
|
|
||||||
|
|
||||||
if (g_extern.bsv.movie)
|
if (g_extern.bsv.movie)
|
||||||
RARCH_LOG("Starting movie record to \"%s\".\n", path);
|
RARCH_LOG("Starting movie record to \"%s\".\n", path);
|
||||||
@ -351,9 +345,8 @@ static bool check_movie_record(void)
|
|||||||
if (!g_extern.bsv.movie)
|
if (!g_extern.bsv.movie)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
rarch_main_msg_queue_push(
|
||||||
msg_queue_push(g_runloop.msg_queue,
|
RETRO_MSG_MOVIE_RECORD_STOPPING, 2, 180, true);
|
||||||
RETRO_MSG_MOVIE_RECORD_STOPPING, 2, 180);
|
|
||||||
RARCH_LOG(RETRO_LOG_MOVIE_RECORD_STOPPING);
|
RARCH_LOG(RETRO_LOG_MOVIE_RECORD_STOPPING);
|
||||||
|
|
||||||
rarch_main_command(RARCH_CMD_BSV_MOVIE_DEINIT);
|
rarch_main_command(RARCH_CMD_BSV_MOVIE_DEINIT);
|
||||||
@ -373,8 +366,8 @@ static bool check_movie_playback(void)
|
|||||||
if (!g_extern.bsv.movie_end)
|
if (!g_extern.bsv.movie_end)
|
||||||
return false;
|
return false;
|
||||||
|
|
||||||
msg_queue_push(g_runloop.msg_queue,
|
rarch_main_msg_queue_push(
|
||||||
RETRO_MSG_MOVIE_PLAYBACK_ENDED, 1, 180);
|
RETRO_MSG_MOVIE_PLAYBACK_ENDED, 1, 180, false);
|
||||||
RARCH_LOG(RETRO_LOG_MOVIE_PLAYBACK_ENDED);
|
RARCH_LOG(RETRO_LOG_MOVIE_PLAYBACK_ENDED);
|
||||||
|
|
||||||
rarch_main_command(RARCH_CMD_BSV_MOVIE_DEINIT);
|
rarch_main_command(RARCH_CMD_BSV_MOVIE_DEINIT);
|
||||||
@ -439,11 +432,9 @@ static void check_shader_dir(bool pressed_next, bool pressed_prev)
|
|||||||
else
|
else
|
||||||
return;
|
return;
|
||||||
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
|
||||||
|
|
||||||
snprintf(msg, sizeof(msg), "Shader #%u: \"%s\".",
|
snprintf(msg, sizeof(msg), "Shader #%u: \"%s\".",
|
||||||
(unsigned)g_extern.shader_dir.ptr, shader);
|
(unsigned)g_extern.shader_dir.ptr, shader);
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, 120);
|
rarch_main_msg_queue_push(msg, 1, 120, true);
|
||||||
RARCH_LOG("Applying shader \"%s\".\n", shader);
|
RARCH_LOG("Applying shader \"%s\".\n", shader);
|
||||||
|
|
||||||
if (!video_driver_set_shader(type, shader))
|
if (!video_driver_set_shader(type, shader))
|
||||||
@ -902,6 +893,22 @@ static void rarch_main_iterate_linefeed_overlay(void)
|
|||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *rarch_main_msg_queue_pull(void)
|
||||||
|
{
|
||||||
|
return msg_queue_pull(g_runloop.msg_queue);
|
||||||
|
}
|
||||||
|
|
||||||
|
void rarch_main_msg_queue_push(const char *msg, unsigned prio, unsigned duration,
|
||||||
|
bool flush)
|
||||||
|
{
|
||||||
|
if (!g_runloop.msg_queue)
|
||||||
|
return;
|
||||||
|
|
||||||
|
if (flush)
|
||||||
|
msg_queue_clear(g_runloop.msg_queue);
|
||||||
|
msg_queue_push(g_runloop.msg_queue, msg, 0, 60);
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_main_iterate:
|
* rarch_main_iterate:
|
||||||
*
|
*
|
||||||
|
78
runloop.h
78
runloop.h
@ -21,6 +21,15 @@
|
|||||||
#include <formats/image.h>
|
#include <formats/image.h>
|
||||||
#include <formats/rpng.h>
|
#include <formats/rpng.h>
|
||||||
#include <queues/message_queue.h>
|
#include <queues/message_queue.h>
|
||||||
|
#include "libretro.h"
|
||||||
|
|
||||||
|
#ifndef AUDIO_BUFFER_FREE_SAMPLES_COUNT
|
||||||
|
#define AUDIO_BUFFER_FREE_SAMPLES_COUNT (8 * 1024)
|
||||||
|
#endif
|
||||||
|
|
||||||
|
#ifndef MEASURE_FRAME_TIME_SAMPLES_COUNT
|
||||||
|
#define MEASURE_FRAME_TIME_SAMPLES_COUNT (2 * 1024)
|
||||||
|
#endif
|
||||||
|
|
||||||
#ifdef __cplusplus
|
#ifdef __cplusplus
|
||||||
extern "C" {
|
extern "C" {
|
||||||
@ -91,7 +100,71 @@ struct data_runloop
|
|||||||
nbio_handle_t nbio;
|
nbio_handle_t nbio;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
/* All libretro runloop-related globals go here. */
|
||||||
|
|
||||||
|
struct runloop
|
||||||
|
{
|
||||||
|
/* Lifecycle state checks. */
|
||||||
|
bool is_paused;
|
||||||
|
bool is_idle;
|
||||||
|
bool is_menu;
|
||||||
|
bool is_slowmotion;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned count;
|
||||||
|
unsigned max;
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
bool is_updated;
|
||||||
|
} label;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
bool is_active;
|
||||||
|
} animation;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
bool dirty;
|
||||||
|
} framebuf;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
bool active;
|
||||||
|
} action;
|
||||||
|
} menu;
|
||||||
|
} current;
|
||||||
|
} video;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
retro_time_t minimum_time;
|
||||||
|
retro_time_t last_time;
|
||||||
|
} limit;
|
||||||
|
} frames;
|
||||||
|
|
||||||
|
struct
|
||||||
|
{
|
||||||
|
unsigned buffer_free_samples[AUDIO_BUFFER_FREE_SAMPLES_COUNT];
|
||||||
|
uint64_t buffer_free_samples_count;
|
||||||
|
|
||||||
|
retro_time_t frame_time_samples[MEASURE_FRAME_TIME_SAMPLES_COUNT];
|
||||||
|
uint64_t frame_time_samples_count;
|
||||||
|
} measure_data;
|
||||||
|
|
||||||
|
msg_queue_t *msg_queue;
|
||||||
|
};
|
||||||
|
|
||||||
|
/* Public data structures. */
|
||||||
extern struct data_runloop g_data_runloop;
|
extern struct data_runloop g_data_runloop;
|
||||||
|
extern struct runloop g_runloop;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* rarch_main_iterate:
|
* rarch_main_iterate:
|
||||||
@ -103,6 +176,11 @@ extern struct data_runloop g_data_runloop;
|
|||||||
**/
|
**/
|
||||||
int rarch_main_iterate(void);
|
int rarch_main_iterate(void);
|
||||||
|
|
||||||
|
void rarch_main_msg_queue_push(const char *msg, unsigned prio,
|
||||||
|
unsigned duration, bool flush);
|
||||||
|
|
||||||
|
const char *rarch_main_msg_queue_pull(void);
|
||||||
|
|
||||||
void rarch_main_data_iterate(void);
|
void rarch_main_data_iterate(void);
|
||||||
|
|
||||||
void rarch_main_data_init_queues(void);
|
void rarch_main_data_init_queues(void);
|
||||||
|
@ -26,6 +26,7 @@
|
|||||||
#include <file/file_path.h>
|
#include <file/file_path.h>
|
||||||
#include "gfx/scaler/scaler.h"
|
#include "gfx/scaler/scaler.h"
|
||||||
#include "retroarch.h"
|
#include "retroarch.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include "retroarch_logger.h"
|
#include "retroarch_logger.h"
|
||||||
#include "screenshot.h"
|
#include "screenshot.h"
|
||||||
#include "gfx/video_viewport.h"
|
#include "gfx/video_viewport.h"
|
||||||
@ -257,9 +258,6 @@ bool take_screenshot(void)
|
|||||||
!= RETRO_HW_CONTEXT_NONE) && driver.video->read_viewport &&
|
!= RETRO_HW_CONTEXT_NONE) && driver.video->read_viewport &&
|
||||||
driver.video->viewport_info;
|
driver.video->viewport_info;
|
||||||
|
|
||||||
/* Clear out message queue to avoid OSD fonts to appear on screenshot. */
|
|
||||||
msg_queue_clear(g_runloop.msg_queue);
|
|
||||||
|
|
||||||
if (viewport_read)
|
if (viewport_read)
|
||||||
{
|
{
|
||||||
#ifdef HAVE_MENU
|
#ifdef HAVE_MENU
|
||||||
@ -292,7 +290,7 @@ bool take_screenshot(void)
|
|||||||
msg = RETRO_MSG_TAKE_SCREENSHOT_FAILED;
|
msg = RETRO_MSG_TAKE_SCREENSHOT_FAILED;
|
||||||
}
|
}
|
||||||
|
|
||||||
msg_queue_push(g_runloop.msg_queue, msg, 1, g_runloop.is_paused ? 1 : 180);
|
rarch_main_msg_queue_push(msg, 1, g_runloop.is_paused ? 1 : 180, true);
|
||||||
|
|
||||||
if (g_runloop.is_paused)
|
if (g_runloop.is_paused)
|
||||||
rarch_render_cached_frame();
|
rarch_render_cached_frame();
|
||||||
|
@ -25,6 +25,7 @@
|
|||||||
#include "file_ext.h"
|
#include "file_ext.h"
|
||||||
#include "settings.h"
|
#include "settings.h"
|
||||||
#include "retroarch.h"
|
#include "retroarch.h"
|
||||||
|
#include "runloop.h"
|
||||||
#include "performance.h"
|
#include "performance.h"
|
||||||
|
|
||||||
#if defined(__CELLOS_LV2__)
|
#if defined(__CELLOS_LV2__)
|
||||||
|
@ -491,3 +491,8 @@ int main(int argc, char *argv[])
|
|||||||
free(g_auto_path);
|
free(g_auto_path);
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void rarch_main_msg_queue_push(const char *msg, unsigned prio, unsigned duration,
|
||||||
|
bool flush)
|
||||||
|
{
|
||||||
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user