35 lines
927 B
C
35 lines
927 B
C
//
|
|||
|
|
// CPlaydate.h
|
||
|
|
// Umbrella header exposing the Playdate C API to Swift.
|
||
|
|
//
|
||
|
|
// pd_api.h is resolved through the "playdate" pkg-config module, which
|
||
|
|
// points at $PLAYDATE_SDK_PATH/C_API. Run Scripts/install-pkgconfig.sh
|
||
|
|
// once to set that up.
|
||
|
|
//
|
||
|
|
|
||
|
|
#ifndef CPLAYDATE_H
|
||
|
|
#define CPLAYDATE_H
|
||
|
|
|
||
|
|
// The C API only declares the event/system types for extension builds.
|
||
|
|
#ifndef TARGET_EXTENSION
|
||
|
|
#define TARGET_EXTENSION 1
|
||
|
|
#endif
|
||
|
|
|
||
|
|
#include "pd_api.h"
|
||
|
|
|
||
|
|
// Swift cannot call variadic C function pointers such as
|
||
|
|
// playdate->system->logToConsole. These shims route a plain string through
|
||
|
|
// the "%s" format, which also avoids format-string injection.
|
||
|
|
|
||
|
|
static inline void cplaydate_log(PlaydateAPI *playdate, const char *message)
|
||
|
|
{
|
||
|
|
playdate->system->logToConsole("%s", message);
|
||
|
|
}
|
||
|
|
|
||
|
|
static inline void cplaydate_error(PlaydateAPI *playdate, const char *message)
|
||
|
|
{
|
||
|
|
playdate->system->error("%s", message);
|
||
|
|
}
|
||
|
|
|
||
|
|
#endif /* CPLAYDATE_H */
|