Initial
This commit is contained in:
75
midiwrt/LED.HPP
Normal file
75
midiwrt/LED.HPP
Normal file
@@ -0,0 +1,75 @@
|
||||
#ifndef _LEDDISPLAY_HPP_
|
||||
#define _LEDDISPLAY_HPP_
|
||||
#include <common/windows.hpp>
|
||||
#include <common/string.hpp>
|
||||
#include <common/point.hpp>
|
||||
|
||||
class LedDisplay
|
||||
{
|
||||
public:
|
||||
enum SpecialChar{BlankChar,DashChar};
|
||||
LedDisplay(HWND hDisplayWindow,Point windowPoint);
|
||||
virtual ~LedDisplay();
|
||||
void setNumber(short someNumber);
|
||||
void setNumber(SpecialChar specialChar);
|
||||
short getNumber(void)const;
|
||||
void paint(void);
|
||||
private:
|
||||
enum {Width=13,Height=23,Frames=12};
|
||||
enum {OffsetDashChar,OffsetBlankChar};
|
||||
WORD charPosition(char someDisplayChar)const;
|
||||
void positions(WORD &firstOffset,WORD &secondOffset,WORD &thirdOffset,WORD &fourthOffset)const;
|
||||
HBITMAP mhFilm;
|
||||
short mCurrentNumber;
|
||||
SpecialChar mCurrentSpecialChar;
|
||||
WORD mHasSpecialChar;
|
||||
Point mWindowPoint;
|
||||
HWND mhDisplayWindow;
|
||||
};
|
||||
|
||||
inline
|
||||
LedDisplay::LedDisplay(HWND hDisplayWindow,Point windowPoint)
|
||||
: mWindowPoint(windowPoint), mhDisplayWindow(hDisplayWindow), mCurrentNumber(-1),
|
||||
mHasSpecialChar(TRUE), mCurrentSpecialChar(DashChar),
|
||||
#if defined(__FLAT__)
|
||||
mhFilm(::LoadBitmap((HINSTANCE)::GetWindowWord(hDisplayWindow,GWL_HINSTANCE),"LED"))
|
||||
#else
|
||||
mhFilm(::LoadBitmap((HINSTANCE)::GetWindowWord(hDisplayWindow,GWW_HINSTANCE),"LED"))
|
||||
#endif
|
||||
{
|
||||
}
|
||||
|
||||
inline
|
||||
LedDisplay::~LedDisplay()
|
||||
{
|
||||
if(mhFilm){::DeleteObject(mhFilm);mhFilm=0;}
|
||||
}
|
||||
|
||||
inline
|
||||
WORD LedDisplay::charPosition(char someChar)const
|
||||
{
|
||||
return ((Frames-1)-((int)someChar-'0'));
|
||||
}
|
||||
|
||||
inline
|
||||
short LedDisplay::getNumber(void)const
|
||||
{
|
||||
return mCurrentNumber;
|
||||
}
|
||||
|
||||
inline
|
||||
void LedDisplay::setNumber(SpecialChar specialChar)
|
||||
{
|
||||
mHasSpecialChar=TRUE;
|
||||
mCurrentSpecialChar=specialChar;
|
||||
paint();
|
||||
}
|
||||
|
||||
inline
|
||||
void LedDisplay::setNumber(short someNumber)
|
||||
{
|
||||
mHasSpecialChar=FALSE;
|
||||
mCurrentNumber=someNumber;
|
||||
paint();
|
||||
}
|
||||
#endif
|
||||
Reference in New Issue
Block a user