CWinAudioTool Class Reference

#include <WinAudioTool.h>

Collaboration diagram for CWinAudioTool:
Collaboration graph
[legend]

List of all members.

Public Member Functions

 CWinAudioTool (void)
virtual ~CWinAudioTool (void)
BOOL init (void)
void free (void)
IStream * getIStream (void)
BOOL setMediaType (void)
BOOL startCapture (void)
void stopCapture (void)
Buffer getAudioData (void)
void getAudioData (Buffer *pbuf)
BOOL openOutput (void)
void closeOutput (void)
WAVEFORMATEX getAudioFormat (void)

Private Member Functions

CWinAudioTooloperator= (CWinAudioTool &rhs)

Private Attributes

CWinAudioStreamm_audioStream
IMediaObject * m_audioMedia
IPropertyStore * m_audioProperty
IStream * m_pStream

Detailed Description

Definition at line 40 of file WinAudioTool.h.


Constructor & Destructor Documentation

CWinAudioTool ( void   ) 

Definition at line 17 of file WinAudioTool.cpp.

References CWinAudioTool::init(), CWinAudioTool::m_audioMedia, CWinAudioTool::m_audioProperty, CWinAudioTool::m_audioStream, and CWinAudioTool::m_pStream.

00018 {
00019     m_audioStream   = NULL;
00020     m_audioMedia    = NULL;
00021     m_audioProperty = NULL;
00022     m_pStream       = NULL;
00023 
00024     //
00025     init();
00026 }

Here is the call graph for this function:

~CWinAudioTool ( void   )  [virtual]

Definition at line 30 of file WinAudioTool.cpp.

References CWinAudioTool::free().

00031 {
00032     DEBUG_INFO("DESTRUCTOR: CWinAudioTool: START\n");
00033 
00034     free();
00035 
00036     DEBUG_INFO("DESTRUCTOR: CWinAudioTool: END\n");
00037 }

Here is the call graph for this function:


Member Function Documentation

void closeOutput ( void   )  [inline]

Definition at line 62 of file WinAudioTool.h.

References CWinAudioStream::closeOutput(), and CWinAudioTool::m_audioStream.

00062 { if (m_audioStream!=NULL) m_audioStream->closeOutput();}

Here is the call graph for this function:

void free ( void   ) 

Definition at line 61 of file WinAudioTool.cpp.

References jbxwl::deleteNull(), CWinAudioTool::m_audioMedia, CWinAudioTool::m_audioProperty, CWinAudioTool::m_audioStream, CWinAudioTool::m_pStream, and jbxwl::releaseNull().

Referenced by CWinAudioTool::init(), and CWinAudioTool::~CWinAudioTool().

00062 {
00063     releaseNull(m_pStream);
00064     deleteNull (m_audioStream);
00065 
00066     releaseNull(m_audioProperty);
00067     releaseNull(m_audioMedia);
00068 }

Here is the call graph for this function:

Here is the caller graph for this function:

void getAudioData ( Buffer *  pbuf  ) 

Definition at line 101 of file WinAudioTool.cpp.

References CWinAudioTool::m_pStream.

00102 {
00103     if (m_pStream==NULL || pbuf==NULL) return;
00104 
00105     ULONG len = 0;
00106 
00107     m_pStream->Read((void*)pbuf->buf, (ULONG)pbuf->bufsz, &len);
00108     pbuf->vldsz = (int)len;
00109 
00110     return;
00111 }

Buffer getAudioData ( void   )  [inline]

Definition at line 57 of file WinAudioTool.h.

References CWinAudioStream::input(), and CWinAudioTool::m_audioStream.

00057 { if (m_audioStream!=NULL) return m_audioStream->input(); else return init_Buffer();} // not free

Here is the call graph for this function:

WAVEFORMATEX getAudioFormat ( void   ) 

Definition at line 115 of file WinAudioTool.cpp.

References jbxwl::WinAudioToolBitsPerSample, jbxwl::WinAudioToolChannels, jbxwl::WinAudioToolFormat, and jbxwl::WinAudioToolSamplesPerSec.

Referenced by CWinAudioTool::setMediaType().

00116 {
00117     WORD   blockAlign = ((WinAudioToolBitsPerSample+7)/8)*WinAudioToolChannels;
00118     DWORD  avgBytesPerSec = blockAlign*WinAudioToolSamplesPerSec;
00119 
00120     WAVEFORMATEX format = {
00121         WinAudioToolFormat, WinAudioToolChannels, WinAudioToolSamplesPerSec, 
00122         avgBytesPerSec, blockAlign, WinAudioToolBitsPerSample, 0
00123     };
00124     return format;
00125 }

Here is the caller graph for this function:

IStream* getIStream ( void   )  [inline]

Definition at line 49 of file WinAudioTool.h.

References CWinAudioTool::m_pStream.

00049 { return m_pStream;}

BOOL init ( void   ) 

Definition at line 41 of file WinAudioTool.cpp.

References CWinAudioTool::free(), CWinAudioTool::m_audioMedia, CWinAudioTool::m_audioStream, CWinAudioTool::m_pStream, CWinAudioStream::QueryInterface(), and CWinAudioTool::setMediaType().

Referenced by CWinAudioTool::CWinAudioTool().

00042 {
00043     free();
00044 
00045 //  if (SUCCEEDED(hr)) hr = m_audioSource->QueryInterface(IID_IMediaObject,   (void**)&m_audioMedia);
00046 //  if (SUCCEEDED(hr)) hr = m_audioSource->QueryInterface(IID_IPropertyStore, (void**)&m_audioProperty);
00047     //
00048     //BOOL ret = setProperty(mode);
00049     BOOL ret = setMediaType();
00050     if (ret) {
00051         m_audioStream = new CWinAudioStream(m_audioMedia);
00052         m_audioStream->QueryInterface(IID_IStream, (void**)&m_pStream);
00053         return TRUE;
00054     }
00055 
00056     return FALSE;
00057 }

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL openOutput ( void   )  [inline]

Definition at line 61 of file WinAudioTool.h.

References CWinAudioTool::m_audioStream, and CWinAudioStream::openOutput().

00061 { if (m_audioStream!=NULL) return m_audioStream->openOutput(); else return FALSE;}

Here is the call graph for this function:

CWinAudioTool& operator= ( CWinAudioTool rhs  )  [inline, private]

Definition at line 78 of file WinAudioTool.h.

00078 { return rhs;}

BOOL setMediaType ( void   ) 

Definition at line 72 of file WinAudioTool.cpp.

References CWinAudioTool::getAudioFormat(), CWinAudioTool::m_audioMedia, CWinAudioTool::m_audioStream, CWinAudioTool::m_pStream, and CWinAudioStream::QueryInterface().

Referenced by CWinAudioTool::init().

00073 {
00074     if (m_audioMedia==NULL) return FALSE;
00075 
00076     DMO_MEDIA_TYPE mt = {0};
00077     MoInitMediaType(&mt, sizeof(WAVEFORMATEX));
00078     mt.majortype = MEDIATYPE_Audio;
00079     mt.subtype   = MEDIASUBTYPE_PCM;
00080     mt.lSampleSize = 0;
00081     mt.bFixedSizeSamples    = TRUE;
00082     mt.bTemporalCompression = FALSE;
00083     mt.formattype = FORMAT_WaveFormatEx;    
00084     memcpy(mt.pbFormat, &getAudioFormat(), sizeof(WAVEFORMATEX));
00085     
00086     HRESULT hr = m_audioMedia->SetOutputType(0, &mt, 0);
00087     MoFreeMediaType(&mt);
00088 
00089     if (FAILED(hr)) return FALSE;
00090     return TRUE;
00091 
00092     //
00093     if (SUCCEEDED(hr)) { 
00094         m_audioStream = new CWinAudioStream(m_audioMedia);
00095         m_audioStream->QueryInterface(IID_IStream, (void**)&m_pStream);
00096     }
00097 }

Here is the call graph for this function:

Here is the caller graph for this function:

BOOL startCapture ( void   )  [inline]

Definition at line 54 of file WinAudioTool.h.

References CWinAudioTool::m_audioStream, and CWinAudioStream::startCapture().

00054 { if (m_audioStream!=NULL) return m_audioStream->startCapture(); else return FALSE;}

Here is the call graph for this function:

void stopCapture ( void   )  [inline]

Definition at line 55 of file WinAudioTool.h.

References CWinAudioTool::m_audioStream, and CWinAudioStream::stopCapture().

00055 { if (m_audioStream!=NULL) m_audioStream->stopCapture(); }

Here is the call graph for this function:


Member Data Documentation

IMediaObject* m_audioMedia [private]
IPropertyStore* m_audioProperty [private]

Definition at line 73 of file WinAudioTool.h.

Referenced by CWinAudioTool::CWinAudioTool(), and CWinAudioTool::free().

IStream* m_pStream [private]

The documentation for this class was generated from the following files:

Generated on 15 Nov 2023 for JunkBox_Win_Lib by  doxygen 1.6.1