#pragma once #ifdef _WIN32 #ifndef RVC_NO_VTABLE #define RVC_NO_VTABLE __declspec(novtable) #endif // !RVC_NO_VTABLE #else #ifndef RVC_NO_VTABLE #define RVC_NO_VTABLE #endif // !RVC_NO_VTABLE #endif // RVC_OS_WIN #ifndef TIME_LEN #define TIME_LEN 9 #endif // !TIME_LEN #ifndef MAX_FILECOUNT #define MAX_FILECOUNT 32 #endif // !MAX_FILECOUNT #ifndef MAX_PATH #define MAX_PATH 260 #endif // !MAX_PATH enum media_loglevel { MEDIA_LOG_DEBUG, MEDIA_LOG_INFO, MEDIA_LOG_ERROR, MEDIA_LOG_NO }; enum PlayModeEnum { UNKNOWN = -1, // δ֪ SINGLE, // ��һ SALESRECORD, // �ͻ����� LOCALAUDIO, // ������Ƶ LOCALVIDEO, // ������Ƶ THRIDSALESRECORD // 3.0�ͻ�����˫¼ }; struct CMediaPlayConfig { char strVideoRunTime_S[TIME_LEN]; // ÿ��������Ƶ���ŵ���ʼʱ�� char strVideoRunTime_E[TIME_LEN]; // ÿ��������Ƶ���ŵ���ֹʱ�� bool bFullScreen; // �Ƿ�ȫ�� bool bPrimMonitor; // �Ƿ�������ʾ bool bSimpleMode; // �Ƿ���ģʽ PlayModeEnum eMode; // ����ģʽ int nWndX; // ����X���� int nWndY; // ����Y���� int nWndWidth; // ���ڿ��� int nWndHeight; // ���ڸ߶� int nFileCnt; // �ļ����� int nPlayCnt; // ���Ŵ��� int nPlayInterval; // ����ʱ���� char strNamePrefix[MAX_PATH]; // �ͻ�����¼����ǰ׺ char strRootPath[MAX_PATH]; // ��Ŀ¼ char strFileNames[MAX_FILECOUNT][MAX_PATH]; // 文件名数组 int nVolume; // ���� }; struct RVC_NO_VTABLE CMediaHostApi { virtual int LoadPlayConfig(CMediaPlayConfig& config, int CfgInx = 0) = 0; virtual void Debug(media_loglevel log_level, const char* fmt, ...) = 0; virtual void AudioPlayFinished() = 0; virtual int GetMediaPlayerIcoPath(char* strPath, size_t uLen) = 0; virtual int GetAudioOutDevName(char* strDev, size_t uLen) = 0; };