/*
FILE: Player.c/cpp
NOTE: The State Machine Wizard will add mapping macros between /*{{ and /*}}. Do NOT modify manually.
*/
#include "stdafx.h"
#include "sme.h"
#include "Player.h"
#include "EventId.h"
#include "SamplePlayerMfcDlg.h"
SME_HANDLER_CLASS_DEF(Player)
SME_BEGIN_STATE_DEF(Player,Player)
/*{{SME_STATE_DEF(Player,Player)*/
SME_STATE_ENTRY_FUNC(PlayerEntry)
SME_STATE_EXIT_FUNC(PlayerExit)
/*}}SME_STATE_DEF*/
SME_END_STATE_DEF
SME_BEGIN_STATE_DEF(Player,PowerDown)
/*{{SME_STATE_DEF(Player,PowerDown)*/
SME_STATE_ENTRY_FUNC(PowerDownEntry)
SME_STATE_EXIT_FUNC(PowerDownExit)
SME_ON_EVENT(EXT_EVENT_ID_POWER,OnPowerDownEXT_EVENT_ID_POWER,PowerUp)
/*}}SME_STATE_DEF*/
SME_END_STATE_DEF
SME_BEGIN_STATE_DEF(Player,PowerUp)
/*{{SME_STATE_DEF(Player,PowerUp)*/
SME_STATE_ENTRY_FUNC(PowerUpEntry)
SME_STATE_EXIT_FUNC(PowerUpExit)
SME_ON_EVENT(EXT_EVENT_ID_POWER,OnPowerUpEXT_EVENT_ID_POWER,PowerDown)
/*}}SME_STATE_DEF*/
SME_END_STATE_DEF
SME_BEGIN_STATE_DEF(Player,Playing)
/*{{SME_STATE_DEF(Player,Playing)*/
SME_STATE_ENTRY_FUNC(PlayingEntry)
SME_STATE_EXIT_FUNC(PlayingExit)
SME_ON_EVENT(EXT_EVENT_ID_PAUSE_RESUME,OnPlayingEXT_EVENT_ID_PAUSE_RESUME,Pause)
/*}}SME_STATE_DEF*/
SME_END_STATE_DEF
SME_BEGIN_STATE_DEF(Player,Pause)
/*{{SME_STATE_DEF(Player,Pause)*/
SME_STATE_ENTRY_FUNC(PauseEntry)
SME_STATE_EXIT_FUNC(PauseExit)
SME_ON_EVENT(EXT_EVENT_ID_PAUSE_RESUME,OnPauseEXT_EVENT_ID_PAUSE_RESUME,Playing)
/*}}SME_STATE_DEF*/
SME_END_STATE_DEF
/*{{SME_STATE_STATETREE_SEPARATOR}}*/
SME_BEGIN_STATE_TREE_DEF(Player)
/*{{SME_STATE_TREE_DEF(Player)*/
SME_STATE(Player,Player,SME_INVALID_STATE,PowerDown)
SME_STATE(Player,PowerDown,0,-1)
SME_STATE(Player,PowerUp,0,Playing)
SME_STATE(Player,Playing,PowerUp,-1)
SME_STATE(Player,Pause,PowerUp,-1)
/*}}SME_STATE_TREE_DEF*/
SME_END_STATE_TREE_DEF
/*{{SME_DEC_IMP_SEPARATOR}}*/
SME_APPLICATION_DEF(Player, "Player")
//CPlayer PlayerApp("Player", CPlayer::_state_tree);
TCHAR * sStateMapping[] =
{
_T("Player"),
_T("PowerDown"),
_T("PowerUp"),
_T("Playing"),
_T("Pause"),
};
extern HWND g_hwndMain;
int CPlayer::PlayerEntry(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
m_Int=0;
if (g_hwndMain)
::PostMessage(g_hwndMain, WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PlayerExit(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
m_Int=1;
if (g_hwndMain)
::PostMessage(g_hwndMain, WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PowerDownEntry(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
m_Int=0;
if (g_hwndMain)
::PostMessage(g_hwndMain, WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PowerDownExit(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PowerUpEntry(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PowerUpExit(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PlayingEntry(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PlayingExit(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PauseEntry(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::PauseExit(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::OnPowerDownEXT_EVENT_ID_POWER(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::OnPlayingEXT_EVENT_ID_PAUSE_RESUME(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::OnPauseEXT_EVENT_ID_PAUSE_RESUME(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}
int CPlayer::OnPowerUpEXT_EVENT_ID_POWER(struct SME_APP_T *pApp, struct SME_EVENT_T *pEvent)
{
if (g_hwndMain)
::PostMessage(g_hwndMain,WM_STATE_UPDATE, pApp->nAppState,0);
return 0;
}