#ifndef CGBCOSD_H
#define CGBCOSD_H

enum { eMenuMode,eTvMode,eGbMode,eGbPalMode };

#define SIZEOSDX        272 // 288      // TBC : Max 92000
#define SIZEOSDY        272 // 288

#define NBMAXKEYREMOTE  100

class cgbcOsd : public cOsdObject , public cThread // , public cStatus
{
public:
    cgbcOsd();
    ~cgbcOsd(void);

    cOsd *m_pOsd;
    const cFont *m_Font;

    virtual void Show(void);

    eOSState ProcessKey(eKeys Key);

	eOSState ProcessKeyTvMode(eKeys keys);
	eOSState ProcessKeyGbMode(eKeys keys);
	eOSState ProcessKeyGbPalMode(eKeys keys);

    void AddRemoteKeyList(int Key);
	void	Savegbc(void);

protected:
    virtual void Action(void);

	int m_Number;
	int m_OldNumber;
	int m_InputTime;

	int m_gbStarted;

	int m_lastRemoteKey[NBMAXKEYREMOTE];
	int m_lastRemoteKeyRead;
	int m_lastRemoteKeyWrite;

private:
	int m_ipause;
	int m_iKeyboardMode;
	void	DrawBottomInfo(void);


};

#endif /* CGBCOSD_H */
