diff --git a/griffin/griffin_objc.m b/griffin/griffin_objc.m index 6dc595db5a..5f94201ff6 100644 --- a/griffin/griffin_objc.m +++ b/griffin/griffin_objc.m @@ -30,16 +30,18 @@ #if defined(HAVE_COCOATOUCH) #if TARGET_OS_IPHONE +#include "../apple/iOS/platform.m" #include "../apple/iOS/menu.m" #include "../apple/iOS/browser.m" -#include "../apple/iOS/platform.m" + #include "../ui/drivers/ui_cocoatouch.m" #endif #elif defined(HAVE_COCOA) - #include "../apple/OSX/platform.m" #include "../apple/OSX/settings.m" + +#include "../ui/drivers/ui_cocoa.m" #endif #endif diff --git a/ui/drivers/ui_cocoa.m b/ui/drivers/ui_cocoa.m new file mode 100644 index 0000000000..c7865d0bc1 --- /dev/null +++ b/ui/drivers/ui_cocoa.m @@ -0,0 +1,94 @@ +/* RetroArch - A frontend for libretro. + * Copyright (C) 2011-2015 - Daniel De Matteis + * + * RetroArch is free software: you can redistribute it and/or modify it under the terms + * of the GNU General Public License as published by the Free Software Found- + * ation, either version 3 of the License, or (at your option) any later version. + * + * RetroArch is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; + * without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with RetroArch. + * If not, see . + */ + +#include "../../apple/common/RetroArch_Apple.h" +#include +#include +#include +#include +#include + +#include +#include "../ui_companion_driver.h" + +typedef struct ui_companion_cocoa +{ + void *empty; +} ui_companion_cocoa_t; + +static void ui_companion_cocoa_notify_content_loaded(void *data) +{ + RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; + + (void)data; + + if (ap) + [ap showGameView]; +} + +static void ui_companion_cocoa_toggle(void *data) +{ + RetroArch_iOS *ap = (RetroArch_iOS *)apple_platform; + + (void)data; + + if (ap) + [ap toggleUI]; +} + +static int ui_companion_cocoa_iterate(void *data, unsigned action) +{ + (void)data; + + return 0; +} + +static void ui_companion_cocoa_deinit(void *data) +{ + ui_companion_cocoa_t *handle = (ui_companion_cocoa_t*)data; + + if (handle) + free(handle); +} + +static void *ui_companion_cocoa_init(void) +{ + ui_companion_cocoa_t *handle = (ui_companion_cocoa_t*)calloc(1, sizeof(*handle)); + + if (!handle) + return NULL; + + return handle; +} + +static void ui_companion_cocoa_event_command(void *data, unsigned cmd) +{ + ui_companion_cocoa_t *handle = (ui_companion_cocoa_t*)data; + + if (!handle) + return; + + event_command(cmd); +} + +const ui_companion_driver_t ui_companion_cocoa = { + ui_companion_cocoa_init, + ui_companion_cocoa_deinit, + ui_companion_cocoa_iterate, + ui_companion_cocoa_toggle, + ui_companion_cocoa_event_command, + ui_companion_cocoa_notify_content_loaded, + "cocoa", +}; diff --git a/ui/ui_companion_driver.c b/ui/ui_companion_driver.c index 010f1c0922..b19373b8bd 100644 --- a/ui/ui_companion_driver.c +++ b/ui/ui_companion_driver.c @@ -22,6 +22,9 @@ #endif static const ui_companion_driver_t *ui_companion_drivers[] = { +#ifdef HAVE_COCOA + &ui_companion_cocoa, +#endif #ifdef HAVE_COCOATOUCH &ui_companion_cocoatouch, #endif diff --git a/ui/ui_companion_driver.h b/ui/ui_companion_driver.h index f80572b51f..56c69a4218 100644 --- a/ui/ui_companion_driver.h +++ b/ui/ui_companion_driver.h @@ -43,6 +43,7 @@ typedef struct ui_companion_driver } ui_companion_driver_t; extern const ui_companion_driver_t ui_companion_null; +extern const ui_companion_driver_t ui_companion_cocoa; extern const ui_companion_driver_t ui_companion_cocoatouch; extern const ui_companion_driver_t ui_companion_qt;