diff options
Diffstat (limited to 'src/osd/modules/lib/osdlib_unix.cpp')
-rw-r--r-- | src/osd/modules/lib/osdlib_unix.cpp | 77 |
1 files changed, 18 insertions, 59 deletions
diff --git a/src/osd/modules/lib/osdlib_unix.cpp b/src/osd/modules/lib/osdlib_unix.cpp index a275eb04192..3b67e4a2f3a 100644 --- a/src/osd/modules/lib/osdlib_unix.cpp +++ b/src/osd/modules/lib/osdlib_unix.cpp @@ -13,16 +13,12 @@ #include <sys/mman.h> #include <sys/types.h> #include <signal.h> -#include <time.h> -#include <sys/time.h> -#ifdef SDLMAME_EMSCRIPTEN -#include <emscripten.h> -#endif // MAME headers #include "osdcore.h" #include "osdlib.h" +#include "sdlinc.h" //============================================================ // osd_getenv //============================================================ @@ -51,20 +47,6 @@ void osd_process_kill(void) } //============================================================ -// osd_num_processors -//============================================================ - -int osd_get_num_processors(void) -{ - int processors = 1; - -#if defined(_SC_NPROCESSORS_ONLN) - processors = sysconf(_SC_NPROCESSORS_ONLN); -#endif - return processors; -} - -//============================================================ // osd_malloc //============================================================ @@ -142,7 +124,8 @@ void osd_free_executable(void *ptr, size_t size) void osd_break_into_debugger(const char *message) { - #ifdef MAME_DEBUG + //#ifdef MAME_DEBUG + #if 1 printf("MAME exception: %s\n", message); printf("Attempting to fall into debugger\n"); kill(getpid(), SIGTRAP); @@ -151,52 +134,28 @@ void osd_break_into_debugger(const char *message) #endif } - -//============================================================ -// osd_ticks -//============================================================ - -osd_ticks_t osd_ticks(void) -{ -#ifdef SDLMAME_EMSCRIPTEN - return (osd_ticks_t)(emscripten_get_now() * 1000.0); -#else - struct timeval tp; - static osd_ticks_t start_sec = 0; - - gettimeofday(&tp, NULL); - if (start_sec==0) - start_sec = tp.tv_sec; - return (tp.tv_sec - start_sec) * (osd_ticks_t) 1000000 + tp.tv_usec; -#endif -} - - -//============================================================ -// osd_ticks_per_second -//============================================================ - -osd_ticks_t osd_ticks_per_second(void) +#ifdef SDLMAME_ANDROID +char *osd_get_clipboard_text(void) { - return (osd_ticks_t) 1000000; + return nullptr; } - +#else //============================================================ -// osd_sleep +// osd_get_clipboard_text //============================================================ -void osd_sleep(osd_ticks_t duration) +char *osd_get_clipboard_text(void) { - UINT32 msec; + char *result = NULL; - // convert to milliseconds, rounding down - msec = (UINT32)(duration * 1000 / osd_ticks_per_second()); - - // only sleep if at least 2 full milliseconds - if (msec >= 2) + if (SDL_HasClipboardText()) { - // take a couple of msecs off the top for good measure - msec -= 2; - usleep(msec*1000); + char *temp = SDL_GetClipboardText(); + result = (char *) osd_malloc_array(strlen(temp) + 1); + strcpy(result, temp); + SDL_free(temp); } + return result; } + +#endif |