Alejandro Acuña
2024-07-30 65a64a81d30f00f1fffd5da6866850e1308e1135
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
// AudioSampleManager.h: interface for the AudioSampleManager class.
//
//////////////////////////////////////////////////////////////////////
 
#ifndef AFX_AUDIOSAMPLEMANAGER_H__76C53E0E_9B8E_4ADB_BB87_442385790C2F__INCLUDED_
#define AFX_AUDIOSAMPLEMANAGER_H__76C53E0E_9B8E_4ADB_BB87_442385790C2F__INCLUDED_
 
#include <windows.h>
#include <list>
 
#include "TraceUser.h"
 
class AudioSample;
 
class AudioSampleManager :
        public TraceUser
{
public:
    static AudioSampleManager* GetInstance();
    static void Initialize();
    static void Uninitialize();
    int GetAudioSample(AudioSample **ppAudioSample, TraceUser *container);
    int AudioSampleReleased(AudioSample *audioSample);
    virtual ~AudioSampleManager();
protected:
    virtual int SetTraceLevel();
private:
    AudioSampleManager();
private:
    static AudioSampleManager *instance;
    static bool initialized;
    static CRITICAL_SECTION instanceMutex;
    std::list<AudioSample *> audioSamples;
    CRITICAL_SECTION audioSamplesMutex;
    int numSamplesCreated;
};
 
#endif // !defined(AFX_AUDIOSAMPLEMANAGER_H__76C53E0E_9B8E_4ADB_BB87_442385790C2F__INCLUDED_)