forked from LosaDev/ls-2019-source
63 lines
1.5 KiB
C++
63 lines
1.5 KiB
C++
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
///
|
|
/// BandiVideoLibrary 2.1
|
|
///
|
|
/// Copyright(C) 2008-2011 BandiSoft.com All rights reserved.
|
|
///
|
|
/// Visit http://www.bandisoft.com for more information.
|
|
///
|
|
////////////////////////////////////////////////////////////////////////////////////////////////////
|
|
|
|
#pragma once
|
|
|
|
#include "bandivid.h"
|
|
|
|
class CBandiVideoSound_NULL : public IBandiVideoSound
|
|
{
|
|
public:
|
|
CBandiVideoSound_NULL();
|
|
virtual ~CBandiVideoSound_NULL();
|
|
|
|
// IUnknown
|
|
STDMETHODIMP QueryInterface(REFIID riid, void **ppv) { return E_NOTIMPL; };
|
|
STDMETHODIMP_(ULONG) AddRef();
|
|
STDMETHODIMP_(ULONG) Release();
|
|
|
|
// IBandiVideoSound
|
|
HRESULT Open(INT channels, INT samplerate, IBandiVideoSoundCB *callback);
|
|
void Close();
|
|
HRESULT Start();
|
|
HRESULT Stop();
|
|
HRESULT Pause(BOOL pause);
|
|
HRESULT GetTime(INT64 &time);
|
|
HRESULT SetVolume(INT volume);
|
|
|
|
protected:
|
|
static unsigned WINAPI InitialThreadProc(LPVOID param)
|
|
{
|
|
CBandiVideoSound_NULL *p = (CBandiVideoSound_NULL*)param;
|
|
return p->ThreadProc();
|
|
};
|
|
UINT ThreadProc();
|
|
|
|
HRESULT PlayNULL();
|
|
LONGLONG CalcTime();
|
|
|
|
LONG m_ref_count;
|
|
|
|
LONGLONG m_freq_units; // 초당 카운터 단위(1000 이면 ms단위 카운터임)
|
|
LONGLONG m_init_count; // 초기 카운터
|
|
|
|
LONGLONG m_start_time; // 시작 시간
|
|
BOOL m_playing;
|
|
|
|
CRITICAL_SECTION m_crit_sec;
|
|
BOOL m_crit_sec_inited;
|
|
|
|
HANDLE m_hevent;
|
|
HANDLE m_hthread;
|
|
UINT m_thread_id;
|
|
|
|
IBandiVideoSoundCB* m_callback;
|
|
};
|