aboutsummaryrefslogtreecommitdiff
path: root/Src/Wasabi/api/apiinit.h
diff options
context:
space:
mode:
Diffstat (limited to 'Src/Wasabi/api/apiinit.h')
-rw-r--r--Src/Wasabi/api/apiinit.h255
1 files changed, 255 insertions, 0 deletions
diff --git a/Src/Wasabi/api/apiinit.h b/Src/Wasabi/api/apiinit.h
new file mode 100644
index 00000000..2bf3adae
--- /dev/null
+++ b/Src/Wasabi/api/apiinit.h
@@ -0,0 +1,255 @@
+#ifndef __API_INIT_H
+#define __API_INIT_H
+
+#include <bfc/platform/platform.h>
+#include <api/skin/widgets.h>
+#include <bfc/string/bfcstring.h>
+#include <api/syscb/api_syscbi.h>
+#include <api/service/service.h>
+
+class api_configI;
+class SkinApi;
+class api_makiI;
+class MemMgrApi;
+class TimerApi;
+class WndApi;
+class ForeignWnd;
+class ClickWnd;
+
+class ImgLdrApi;
+#ifdef WASABI_COMPILE_FONTS
+class FontApi;
+#endif
+#ifdef WASABI_COMPILE_WNDMGR
+class WndMgrApi;
+#endif
+#ifdef WASABI_COMPILE_MAKIDEBUG
+class MakiDebuggerApi;
+#endif
+#ifdef WASABI_COMPILE_FILEREADER
+class FileReaderApi;
+#endif
+#ifdef WASABI_COMPILE_LOCALES
+class api_localesI;
+#endif
+#ifndef WA3COMPATIBILITY
+#ifdef WASABI_COMPILE_MEDIACORE
+class Core;
+#endif
+#endif
+
+
+
+#include <api/syscb/api_syscb.h>
+
+
+
+
+#ifdef WASABI_COMPILE_MEDIACORE
+
+#include <api/core/api_core.h>
+
+class CoreApiService : public waServiceBase<api_core, CoreApiService> {
+public:
+ CoreApiService() : waServiceBase<api_core, CoreApiService>(coreApiServiceGuid) {}
+ static const char *getServiceName() { return "Core API"; }
+ virtual api_core *getService() { return coreApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#endif // WASABI_COMPILE_MEDIACORE
+
+#ifdef WASABI_COMPILE_FILEREADER
+
+#include <api/filereader/api_filereader.h>
+
+class FileReaderApiService : public waServiceBase<api_fileReader, FileReaderApiService> {
+public:
+ FileReaderApiService() : waServiceBase<api_fileReader, FileReaderApiService>(fileReaderApiServiceGuid) {}
+ static const char *getServiceName() { return "FileReader API"; }
+ virtual api_fileReader *getService() { return fileApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#endif // WASABI_COMPILE_FILEREADER
+
+#ifdef WASABI_COMPILE_CONFIG
+
+#include <api/config/api_config.h>
+
+class ConfigApiService : public waServiceBase<api_config, ConfigApiService> {
+public:
+ ConfigApiService() : waServiceBase<api_config, ConfigApiService>(configApiServiceGuid) {}
+ static const char *getServiceName() { return "Config API"; }
+ virtual api_config *getService() { return configApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#endif // WASABI_COMPILE_CONFIG
+
+#ifdef WASABI_COMPILE_IMGLDR
+
+#include <api/imgldr/api_imgldr.h>
+
+class ImgLdrApiService: public waServiceBase<imgldr_api, ImgLdrApiService> {
+public:
+ ImgLdrApiService() : waServiceBase<imgldr_api, ImgLdrApiService>(imgLdrApiServiceGuid) {}
+ static const char *getServiceName() { return "Image Loading API"; }
+ virtual imgldr_api *getService() { return imgLoaderApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#endif // WASABI_COMPILE_IMGLDR
+
+#ifdef WASABI_COMPILE_FONTS
+
+#include <api/font/api_font.h>
+
+class FontApiService : public waServiceBase<api_font, FontApiService> {
+public:
+ FontApiService() : waServiceBase<api_font, FontApiService>(fontApiServiceGuid) {}
+ static const char *getServiceName() { return "Font Rendering API"; }
+ virtual api_font *getService() { return fontApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#endif // WASABI_COMPILE_FONT
+
+
+#include <api/locales/api_locales.h>
+
+class LocalesApiService : public waServiceBase<api_locales, LocalesApiService> {
+public:
+ LocalesApiService() : waServiceBase<api_locales, LocalesApiService>(localesApiServiceGuid) {}
+ static const char *getServiceName() { return "Locales API"; }
+ virtual api_locales *getService() { return localesApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+
+
+#include <api/wnd/api_wnd.h>
+
+class WndApiService : public waServiceBase<wnd_api, WndApiService> {
+public:
+ WndApiService() : waServiceBase<wnd_api, WndApiService>(wndApiServiceGuid) {}
+ static const char *getServiceName() { return "Windowing API"; }
+ virtual wnd_api *getService() { return wndApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+
+#include <api/wndmgr/api_wndmgr.h>
+
+class WndMgrApiService : public waServiceBase<wndmgr_api, WndMgrApiService> {
+public:
+ WndMgrApiService() : waServiceBase<wndmgr_api, WndMgrApiService>(wndMgrApiServiceGuid) {}
+ static const char *getServiceName() { return "Window Manager API"; }
+ virtual wndmgr_api *getService() { return wndManagerApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#include <api/skin/api_skin.h>
+
+class SkinApiService : public waServiceBase<api_skin, SkinApiService> {
+public:
+ SkinApiService() : waServiceBase<api_skin, SkinApiService>(skinApiServiceGuid) {}
+ static const char *getServiceName() { return "Skinning API"; }
+ virtual api_skin *getService() { return skinApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#include <api/script/api_maki.h>
+
+class MakiApiService : public waServiceBase<api_maki, MakiApiService> {
+public:
+ MakiApiService() : waServiceBase<api_maki, MakiApiService>(makiApiServiceGuid) {}
+ static const char *getServiceName() { return "MAKI Scripting API"; }
+ virtual api_maki *getService() { return makiApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#ifdef WASABI_COMPILE_MAKIDEBUG
+
+#include <api/script/debugger/api_makidebug.h>
+
+class MakiDebugApiService : public waServiceBase<api_makiDebugger, MakiDebugApiService> {
+public:
+ MakiDebugApiService() : waServiceBase<api_makiDebugger, MakiDebugApiService>(makiDebugApiServiceGuid) {}
+ static const char *getServiceName() { return "MAKI Debugger API"; }
+ virtual api_makiDebugger *getService() { return debugApi; }
+ static FOURCC getServiceType() { return WaSvc::UNIQUE; }
+};
+
+#endif // WASABI_COMPILE_SKIN
+
+class ApiInit
+{
+public:
+ static int init(OSMODULEHANDLE hinstance, OSWINDOWHANDLE mainwnd, api_service *wa5_svc); // 0 == error, 1 == success
+ static int shutdown(); // 0 == error, 1 == success
+ static int getInitCount(); // if you do init / shutdown more than once in the session, this may be useful to invalid some caches
+
+private:
+ #ifdef WASABI_COMPILE_SKIN
+ #ifdef WASABI_COMPILE_COMPONENTS
+ static waServiceFactoryI * groupcreate;
+ #endif //WASABI_COMPILE_COMPONENTS
+ #endif //WASABI_COMPILE_SKIN
+
+ static waServiceFactoryI * win32Font;
+ static FontApiService *fontapisvc;
+
+public:
+ static Widgets * widgets;
+private:
+ static SkinApiService *skinapisvc;
+
+ static api_configI * cfg;
+ static ConfigApiService *cfgapisvc;
+ static ImgLdrApi * img;
+ static ImgLdrApiService *imgldrapisvc;
+
+ #ifdef WASABI_COMPILE_FONTS
+ static FontApi * font;
+ #endif
+
+ #ifdef WASABI_COMPILE_FILEREADER
+ static FileReaderApi * fr;
+ #ifdef WASABI_COMPILE_ZIPREADER
+ static waServiceFactoryI * zipRead;
+ #endif
+ static FileReaderApiService *frapisvc;
+ #endif
+
+ static api_localesI *loc;
+ static LocalesApiService *localesapisvc;
+
+ static WndApi * wnd;
+ static ForeignWnd * mainWnd;
+ static ClickWnd * default_mainWnd;
+ static WndApiService *wndapisvc;
+
+ static WndMgrApi * wndmgr;
+ static WndMgrApiService *wndmgrapisvc;
+
+
+ static api_makiI * maki;
+ static MakiApiService *makiapisvc;
+
+ static SkinApi * skin;
+
+ #ifdef WASABI_COMPILE_MAKIDEBUG
+ static MakiDebuggerApi * debug;
+ static MakiDebugApiService *makidebugapisvc;
+ #endif
+
+ #ifdef WASABI_COMPILE_MEDIACORE
+ static CoreApiService *coreapisvc;
+ #endif
+
+ static int initcount;
+};
+
+#endif
+