X-Git-Url: http://git.tdb.fi/?p=libs%2Fcore.git;a=blobdiff_plain;f=source%2Fcore%2Fandroid%2Fmainthread.h;h=22309eee3d3d2ca47584573210ebb7a8935f7234;hp=9d139bc5863f5c0e4a0adac443b969f02eac3ea1;hb=497eaf090b1665511c795d5764c06a2bcd4b90b6;hpb=211c503e709ffa8bec7b71b8004ecdeadf776c4c diff --git a/source/core/android/mainthread.h b/source/core/android/mainthread.h index 9d139bc..22309ee 100644 --- a/source/core/android/mainthread.h +++ b/source/core/android/mainthread.h @@ -2,6 +2,9 @@ #define MSP_CORE_ANDROID_MAINTHREAD_H_ #include +#include +#include +#include "mutex.h" #include "thread.h" namespace Msp { @@ -9,14 +12,44 @@ namespace Android { class MainThread: public Thread { +public: + sigc::signal signal_native_window_created; + sigc::signal signal_native_window_resized; + sigc::signal signal_native_window_destroyed; + sigc::signal signal_input_queue_created; + sigc::signal signal_input_queue_destroyed; + private: ANativeActivity *activity; + AAssetManager *asset_manager; + FS::Path int_data_path; + bool starting_up; + Mutex startup_mutex; public: MainThread(ANativeActivity *); + void attach_to_activity(ANativeActivity *); + bool is_starting_up() const { return starting_up; } + void wait_for_app_created(); + void resume_startup(); + + AAssetManager *get_asset_manager() const { return asset_manager; } + const FS::Path &get_internal_data_path() const { return int_data_path; } + + void set_window_flags(unsigned, unsigned); + private: virtual void main(); + + static void app_created(void *); + static void activity_destroyed(ANativeActivity *); + static void native_window_created(ANativeActivity *, ANativeWindow *); + static void native_window_resized(ANativeActivity *, ANativeWindow *); + static void native_window_destroyed(ANativeActivity *, ANativeWindow *); + static void input_queue_created(ANativeActivity *, AInputQueue *); + static void input_queue_destroyed(ANativeActivity *, AInputQueue *); + static void end_process(ANativeActivity *); }; } // namespace Android