⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 trackview.h

📁 WINCE XAUDIO可播放各种音乐格式内附SOURCE CODE可以再不同CPU 平台编译测试
💻 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 + -