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

📄 xaplayer.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 __XAPLAYER_H__
#define __XAPLAYER_H__

/*----------------------------------------------------------------------
|       includes
+---------------------------------------------------------------------*/
#include <windows.h>
#include <windowsx.h>
#include <tchar.h>

#include "resource.h"	
#include "options.h"
#include "XaudioPlayer.h"

/*----------------------------------------------------------------------
|       class references
+---------------------------------------------------------------------*/
class TrackView;
class ListView;

/*----------------------------------------------------------------------
|       version
+---------------------------------------------------------------------*/
#define XA_PLAYER_MAJOR_VERSION 1
#define XA_PLAYER_MINOR_VERSION 3
#define XA_PLAYER_REVISION      0

/*----------------------------------------------------------------------
|       WCEPlayer class
+---------------------------------------------------------------------*/
class WCEPlayer : public XaudioPlayer 
{
public:
    // member variables
    Options        m_Options;
    HINSTANCE      m_Instance;
    HWND           m_MainWindow;
    HMENU          m_MainMenu;
    HWND           m_CommandBands;
    HWND           m_MenuCommandBar;
    HWND           m_TopCommandBar;
    HWND           m_TrackCommandBar;
    LONG           m_TrackCommandBarOriginalProc;
    HWND           m_TrackSlider;
    int            m_TrackSliderWidth;
    int            m_TrackSliderRange;
    HWND           m_ControlPanel;
    int            m_Volume;
    HWND           m_StatusWindow;
    BOOL           m_Scrolling;
    struct {
        XA_TimecodeInfo timecode;
        int             duration;
    } m_Track;
    XA_PlayerState m_State;
    TrackView     *m_TrackView;
    ListView      *m_ListView;
    
    // methods
    WCEPlayer(HINSTANCE instance);
    void ProcessCommandLine(TCHAR *cmdline);
    void InitUserInterface(HWND window);
    void UpdateViews();
    void SetOutputDeviceFromOptions();
    void SetVolume(int volume);
    void OnNotifyNack(XA_NackInfo *info);
    void OnNotifyPlayerState(XA_PlayerState state);
    void OnNotifyInputState(XA_InputState state);
    void OnNotifyInputPosition(unsigned long offset, unsigned long range);
    void OnNotifyInputTimecode(XA_TimecodeInfo *info);
    void OnNotifyStreamDuration(unsigned long duration);
    void OnNotifyStreamParameters(XA_StreamParameters *parameters);
    void OnNotifyOutputState(XA_OutputState state);
    void OnNotifyOutputPcmLevel(unsigned char level);
};

/*----------------------------------------------------------------------
|       globals
+---------------------------------------------------------------------*/
extern WCEPlayer *Player;

/*----------------------------------------------------------------------
|       prototypes
+---------------------------------------------------------------------*/
VOID CALLBACK KeepAliveTimerProc(HWND window, UINT message,
                                 UINT even, DWORD time);

/*----------------------------------------------------------------------
|       macros
+---------------------------------------------------------------------*/
#define XA_HANDLE_WINDOW_MESSAGE(object_class,                     \
                                 handler,                          \
                                 window,                           \
						         message,                          \
						         wparam,                           \
						         lparam)                           \
{                                                                  \
	object_class *target;                                          \
    if (message == WM_CREATE) {                                    \
		CREATESTRUCT *info = (CREATESTRUCT *)lparam;               \
        target = (object_class *)info->lpCreateParams;             \
		SetWindowLong(window, GWL_USERDATA, (LONG)target);         \
    } else {                                                       \
        target =                                                   \
            (object_class *)GetWindowLong(window, GWL_USERDATA);   \
    }                                                              \
    if (target) {												   \
        return target->##handler##(window,                         \
		                           message,                        \
		 	    				   wparam,                         \
								   lparam);                        \
	} else {                                                       \
		return DefWindowProc(window, message, wparam, lparam);     \
	}                                                              \
}

#endif /* __XAPLAYER_H__ */

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -