📄 trackview.h
字号:
/*****************************************************************
|
| Xaudio Player for Windows CE
|
| (c) 1996-1998 MpegTV, LLC
| Author: Gilles Boccon-Gibod (gilles@mpegtv.com)
|
****************************************************************/
#ifndef __TRACKVIEW_H__
#define __TRACKVIEW_H__
/*----------------------------------------------------------------------
| includes
+---------------------------------------------------------------------*/
#ifndef STRICT
#define STRICT
#endif
#include <windows.h>
#include "xaplayer.h"
/*----------------------------------------------------------------------
| TrackViewImage class
+---------------------------------------------------------------------*/
const int XA_NUMBER_IMAGE_MAX_DIGITS = 3;
/*----------------------------------------------------------------------
| TrackViewImage class
+---------------------------------------------------------------------*/
class TrackViewImage
{
public:
// variables
HBITMAP m_Bitmap;
RECT m_Bounds;
// methods
TrackViewImage() : m_Bitmap(NULL) {};
virtual void LoadFromResource(HINSTANCE instance, LPCTSTR name);
virtual void Paint(HDC source_dc, HDC dest_dc);
void Move(int dx, int dy);
unsigned int GetWidth() { return m_Bounds.right-m_Bounds.left; };
};
/*----------------------------------------------------------------------
| TrackViewPolyImage class
+---------------------------------------------------------------------*/
class TrackViewPolyImage : public TrackViewImage
{
public:
// methods
TrackViewPolyImage() : m_Index(0), m_Width(0) {};
virtual void LoadFromResource(HINSTANCE instance, LPCTSTR name,
unsigned int nb_images);
virtual void Paint(HDC source_dc, HDC dest_dc);
void SetNbSubImages(int n);
// variables
unsigned int m_Width;
unsigned int m_Index;
};
/*----------------------------------------------------------------------
| TrackViewNumberImage
+---------------------------------------------------------------------*/
class TrackViewNumberImage : public TrackViewImage
{
public:
// methods
TrackViewNumberImage() :
m_NbDigits(0), m_DigitWidth(0), m_DigitSpacing(0) {};
virtual void LoadFromResource(HINSTANCE instance, LPCTSTR name,
unsigned int nb_digits);
virtual void Paint(HDC source_dc, HDC dest_dc);
virtual void SetDigitSpacing(unsigned int spacing);
void SetValue(unsigned int value);
// variables
int m_NbDigits;
char m_Indexes[XA_NUMBER_IMAGE_MAX_DIGITS];
int m_DigitWidth;
int m_DigitSpacing;
};
/*----------------------------------------------------------------------
| TrackViewTimecodeImage
+---------------------------------------------------------------------*/
class TrackViewTimecodeImage : public TrackViewNumberImage
{
public:
// methods
TrackViewTimecodeImage() : m_ColonWidth(0) {};
virtual void LoadFromResource(HINSTANCE instance, LPCTSTR name);
virtual void Paint(HDC source_dc, HDC dest_dc);
virtual void SetDigitSpacing(unsigned int spacing);
void SetValue(unsigned int seconds);
void SetValue(unsigned int minutes, unsigned int seconds);
// variables
int m_ColonWidth;
};
class StatusItem {
public:
// variables
HBITMAP bitmap;
RECT bounds;
BOOL visible;
// methods
void set_bounds(int left, int top, int width, int height);
void paint(HDC source_dc, HDC dest_dc);
};
/*----------------------------------------------------------------------
| TrackView class
+---------------------------------------------------------------------*/
class TrackView
{
public:
// methods
TrackView(HWND parent, WCEPlayer *player,
int x, int y, int width, int height);
void Show();
void Hide();
void SetTimecode(int h, int m, int s);
void SetDuration(int duration);
void SetChannels(int channels);
void SetState(int state);
void SetFrequency(int frequency);
void SetBitrate(int bitrate);
LRESULT HandleWindowsMessage(HWND window,
UINT message,
WPARAM wparam,
LPARAM lparam);
private:
// variables
HWND m_Window;
BOOL m_Visible;
int m_Width;
int m_Height;
RECT m_Bounds;
struct TrackViewImages {
TrackViewTimecodeImage duration;
TrackViewTimecodeImage timecode;
TrackViewNumberImage frequency;
TrackViewNumberImage bitrate;
TrackViewPolyImage channels;
TrackViewPolyImage state;
TrackViewImage khz;
TrackViewImage kbps;
} m_Images;
struct {
int h;
int m;
int s;
} m_Timecode;
int m_Duration;
// methods
void ComputeItemPositions(void);
};
#endif /* __TRACKVIEW_H__ */
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -