Subversion Repositories spk

Rev

Details | Last modification | View Log | RSS feed

Rev Author Line No. Line
79 cycrow 1
//************************************************************************
2
//
3
// LCDScrollingText.h
4
//
5
// The CLCDScrollingText class draws scrolling text onto the LCD.
6
// 
7
// Logitech LCD SDK
8
//
9
// Copyright 2005 Logitech Inc.
10
//************************************************************************
11
 
12
#ifndef _LCDSCROLLINGTEXT_H_INCLUDED_ 
13
#define _LCDSCROLLINGTEXT_H_INCLUDED_ 
14
 
15
#include "LCDBase.h"
16
#include "LCDText.h"
17
 
18
class CLCDScrollingText : public CLCDText
19
{
20
public:
21
    CLCDScrollingText();
22
    virtual ~CLCDScrollingText();
23
 
24
    // CLCDBase
25
    virtual HRESULT Initialize(void);
26
    virtual void ResetUpdate(void);
27
 
28
    // CLCDText
29
    virtual void SetText(LPCTSTR szText);
30
 
31
    void SetStartDelay(DWORD dwMilliseconds);
32
    void SetEndDelay(DWORD dwMilliseconds);
33
    void EnableRepeat(BOOL bEnable);
34
    void SetSpeed(DWORD dwSpeed);
35
 
36
    enum eSCROLL_DIR { SCROLL_HORZ, SCROLL_VERT};
37
    void SetScrollDirection(eSCROLL_DIR eScrollDir);
38
    eSCROLL_DIR GetScrollDirection();
39
    BOOL IsScrollingDone();
40
 
41
protected:
42
    virtual void OnUpdate(DWORD dwTimestamp);
43
    virtual void OnDraw(CLCDGfx &rGfx);
44
 
45
private:
46
    enum eSCROLL_STATES { STATE_START_DELAY, STATE_SCROLL, STATE_END_DELAY, STATE_DONE};
47
 
48
    DWORD m_dwEllapsedTime; // ellapsed time in state
49
    DWORD m_dwStartDelay;   // milliseconds
50
    DWORD m_dwEndDelay;     // milliseconds
51
    DWORD m_dwSpeed;        // pixels/second
52
    DWORD m_dwLastUpdate;   // milliseconds
53
    BOOL  m_bRepeat;        // repeat
54
 
55
    int m_nScrollingDistance;
56
    float m_fTotalDistance;
57
 
58
    eSCROLL_DIR m_eScrollDir;
59
    eSCROLL_STATES m_eState;
60
};
61
 
62
 
63
#endif // !_LCDSCROLLINGTEXT_H_INCLUDED_ 
64
 
65
//** end of LCDScrollingText.h *******************************************