📄 xaplayer.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 + -