/* Library header file */ #ifndef HBM_BASE_H_ #define HBM_BASE_H_ #ifdef __cplusplus extern "C" { #endif /*__cplusplus */ #ifndef HBM_SND_THREAD_STACK_SIZE #define HBM_SND_THREAD_STACK_SIZE 1024*16 #endif #define HBM_MEM_SIZE (1024 * 512) #define HBM_SND_GROUP_HOMEBUTTON 0 //#define USE_FOR_MANUAL typedef enum { HBM_SELECT_NULL = -1, HBM_SELECT_HOMEBTN = 0, HBM_SELECT_BTN1, HBM_SELECT_BTN2, HBM_SELECT_BTN3, HBM_SELECT_BTN4, HBM_SELECT_MAX }HBMSelectBtnNum; enum { HBMSE_HOME_BUTTON = 0, HBMSE_RETURN_APP, HBMSE_GOTO_MENU, HBMSE_RESET_APP, HBMSE_FOCUS, HBMSE_SELECT, HBMSE_CANCEL, HBMSE_OPEN_CONTROLLER, HBMSE_CLOSE_CONTROLLER, HBMSE_VOLUME_PLUS, HBMSE_VOLUME_MINUS,//10 HBMSE_VOLUME_PLUS_LIMIT, HBMSE_VOLUME_MINUS_LIMIT, HBMSE_NOTHING_DONE, HBMSE_VIBE_ON, HBMSE_VIBE_OFF, HBMSE_START_CONNECT_WINDOW, HBMSE_CONNECTED, HBMSE_CONNECTED2, HBMSE_CONNECTED3,//20 HBMSE_CONNECTED4, HBMSE_END_CONNECT_WINDOW #ifdef USE_FOR_MANUAL , HBMSE_MANUAL_OPEN, // for manual HBMSE_MANUAL_FOCUS, HBMSE_MANUAL_SELECT, HBMSE_MANUAL_SCROLL, HBMSE_MANUAL_CANCEL, HBMSE_MANUAL_RETURN #endif }; // Value of the evt argument of HBMSoundCallback enum { HBMSEV_BEFORE_INIT_SOUND, /* Enter menu and just before initializing sound */ HBMSEV_INIT_SOUND, /* Enter menu and just before playing sound effect */ HBMSEV_BEGIN_EXIT_ANIM, /* Start animation when exiting from menu */ HBMSEV_BEGIN_BLACKOUT, /* Start menu blackout */ HBMSEV_END_MENU, /* Menu close */ HBMSEV_PLAY_SOUND /* Play sound effect */ #ifdef USE_FOR_MANUAL ,HBMSEV_BEGIN_BLACKOUT_TO_MANUAL /* Start menu blackout (when at manual) */ #endif }; // Return value of HBMSoundCallback enum { HBMSEV_RET_NONE = 0, /* No sound is played back from the application either outside of HBMSEV_PLAY_SOUND or during HBMSEV_PLAY_SOUND. */ HBMSEV_RET_PLAY_SOUND /* Sound was played back from the application during HBMSEV_PLAY_SOUND. */ }; // messageFlag flag enum { HBMMSG_NOSAVE_WIIMENU = 1, HBMMSG_NOSAVE_RESET = 2, HBMMSG_NOSAVE_ALL = -1 }; /* Wii Controller information */ typedef struct { KPADStatus* kpad; Vec2 pos; u32 use_devtype; }HBMKPadData; /* Controller data structure passed to Home Button object */ typedef struct { HBMKPadData wiiCon[WPAD_MAX_CONTROLLERS]; }HBMControllerData; /* Sound callback function type declaration */ typedef int (*HBMSoundCallback)(int evt, int num); typedef struct { void* layoutBuf; void* spkSeBuf; void* msgBuf; void* configBuf; void* mem; HBMSoundCallback sound_callback; int backFlag; int region; int cursor; int messageFlag; u32 configBufSize; u32 memSize; f32 frameDelta; Vec2 adjust; MEMAllocator* pAllocator; }HBMDataInfo; void HBMCreate( const HBMDataInfo* pHBInfo ); void HBMDelete(); void HBMInit( void ); HBMSelectBtnNum HBMCalc( const HBMControllerData* pController ); void HBMDraw( void ); HBMSelectBtnNum HBMGetSelectBtnNum( void ); void HBMSetAdjustFlag( int flag ); void HBMStartBlackOut( void ); int HBMIsReassignedControllers( void ); void HBMSetBlackOutColor( u8 red, u8 green, u8 blue ); GXColor HBMGetBlackOutColor( void ); void HBMSetVIBlack ( int flag ); #define HBM_WORK_SIZE_SOUND 0x14700 #define HBM_MEM_SIZE_SOUND (HBM_WORK_SIZE_SOUND + HBM_SND_THREAD_STACK_SIZE) /* Compatibility */ #define HBM_MEM_SIZE_DVD HBM_MEM_SIZE_SOUND #define HBM_MEM_SIZE_MEMORY HBM_MEM_SIZE_SOUND #define HBM_MEM_SIZE_NAND HBM_MEM_SIZE_SOUND #define HBM_MEM2_SIZE_DVD HBM_MEM_SIZE_DVD #define HBM_MEM2_SIZE_MEMORY HBM_MEM_SIZE_MEMORY #define HBM_MEM2_SIZE_NAND HBM_MEM_SIZE_NAND void HBMCreateSound( const void* soundData, void* memBuf, u32 memSize ); void HBMDeleteSound(); void HBMUpdateSound(); /* Call every frame */ #ifdef USE_FOR_MANUAL void HBMPlayManualSound( int id ); void HBMUpdateManualSound( void ); void HBMFadeoutManualSound( f32 gain ); void HBMResetManualSound( void ); #endif #ifdef __cplusplus } #endif /*__cplusplus */ #endif /* HBM_BASE_H */