mirror of
https://github.com/libretro/RetroArch
synced 2025-03-23 19:21:03 +00:00
This puts the History and Favorites playlists (up to five items each) in the Top Shelf menu. In order for this to be enabled you must build it yourself and change the app identifiers for the TV app and Top Shelf extension, and add both of them to an app group.
110 lines
2.8 KiB
Objective-C
110 lines
2.8 KiB
Objective-C
#ifndef COCOA_APPLE_PLATFORM_H
|
|
#define COCOA_APPLE_PLATFORM_H
|
|
|
|
#if TARGET_OS_TV
|
|
#include "config_file.h"
|
|
extern config_file_t *open_userdefaults_config_file(void);
|
|
extern void write_userdefaults_config_file(void);
|
|
extern void update_topshelf(void);
|
|
#endif
|
|
|
|
#ifdef __OBJC__
|
|
|
|
#ifdef HAVE_METAL
|
|
#import <Metal/Metal.h>
|
|
#import <MetalKit/MetalKit.h>
|
|
#endif
|
|
|
|
typedef enum apple_view_type
|
|
{
|
|
APPLE_VIEW_TYPE_NONE = 0,
|
|
APPLE_VIEW_TYPE_OPENGL_ES,
|
|
APPLE_VIEW_TYPE_OPENGL,
|
|
APPLE_VIEW_TYPE_VULKAN,
|
|
APPLE_VIEW_TYPE_METAL
|
|
} apple_view_type_t;
|
|
|
|
#if defined(HAVE_COCOA_METAL) && !defined(HAVE_COCOATOUCH)
|
|
@interface WindowListener : NSResponder<NSWindowDelegate>
|
|
@property (nonatomic) NSWindow* window;
|
|
@end
|
|
#endif
|
|
|
|
#if defined(HAVE_COCOA_METAL) || defined(HAVE_COCOATOUCH)
|
|
@protocol ApplePlatform
|
|
|
|
/*! @brief renderView returns the current render view based on the viewType */
|
|
@property(readonly) id renderView;
|
|
/*! @brief isActive returns true if the application has focus */
|
|
@property(readonly) bool hasFocus;
|
|
@property(readwrite) apple_view_type_t viewType;
|
|
|
|
/*! @brief setVideoMode adjusts the video display to the specified mode */
|
|
- (void)setVideoMode:(gfx_ctx_mode_t)mode;
|
|
/*! @brief setCursorVisible specifies whether the cursor is visible */
|
|
- (void)setCursorVisible:(bool)v;
|
|
/*! @brief controls whether the screen saver should be disabled and
|
|
* the displays should not sleep.
|
|
*/
|
|
- (bool)setDisableDisplaySleep:(bool)disable;
|
|
#if defined(HAVE_COCOA_METAL) && !defined(HAVE_COCOATOUCH)
|
|
- (void)updateWindowedMode;
|
|
#endif
|
|
@end
|
|
|
|
#endif
|
|
|
|
#if defined(HAVE_COCOA_METAL) || defined(HAVE_COCOATOUCH)
|
|
extern id<ApplePlatform> apple_platform;
|
|
#else
|
|
extern id apple_platform;
|
|
#endif
|
|
|
|
#if defined(HAVE_COCOATOUCH)
|
|
void rarch_start_draw_observer(void);
|
|
void rarch_stop_draw_observer(void);
|
|
|
|
@interface RetroArch_iOS : UINavigationController<ApplePlatform, UIApplicationDelegate,
|
|
UINavigationControllerDelegate> {
|
|
UIView *_renderView;
|
|
apple_view_type_t _vt;
|
|
}
|
|
|
|
@property (nonatomic) UIWindow* window;
|
|
@property (nonatomic) NSString* documentsDirectory;
|
|
@property (nonatomic) int menu_count;
|
|
@property (nonatomic) NSDate *bgDate;
|
|
|
|
+ (RetroArch_iOS*)get;
|
|
|
|
- (void)showGameView;
|
|
- (void)supportOtherAudioSessions;
|
|
|
|
- (void)refreshSystemConfig;
|
|
@end
|
|
#else
|
|
#if defined(HAVE_COCOA_METAL)
|
|
@interface RetroArch_OSX : NSObject<ApplePlatform, NSApplicationDelegate> {
|
|
#elif (defined(__MACH__) && defined(MAC_OS_X_VERSION_MAX_ALLOWED) && (MAC_OS_X_VERSION_MAX_ALLOWED < 101200))
|
|
@interface RetroArch_OSX : NSObject {
|
|
#else
|
|
@interface RetroArch_OSX : NSObject<NSApplicationDelegate> {
|
|
#endif
|
|
NSWindow *_window;
|
|
apple_view_type_t _vt;
|
|
NSView *_renderView;
|
|
id _sleepActivity;
|
|
#if defined(HAVE_COCOA_METAL)
|
|
WindowListener *_listener;
|
|
#endif
|
|
}
|
|
|
|
@property(nonatomic, retain) NSWindow IBOutlet *window;
|
|
|
|
@end
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|