summaryrefslogtreecommitdiffstats
path: root/game/code/sound/soundrenderercallback.h
blob: e0a47440eab45ef5302e3ce09a7ce9942b66adc7 (plain) (blame)
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
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
//=============================================================================
// Copyright (C) 2002 Radical Entertainment Ltd.  All rights reserved.
//
// File:        soundrenderercallback.h
//
// Description: Declaration of SoundRenderingPlayerCallback class.  Used from
//              sound renderer for player-related callbacks.
//
// History:     06/07/2002 + Created -- Darren
//
//=============================================================================

#ifndef SOUNDRENDERERCALLBACK_H
#define SOUNDRENDERERCALLBACK_H

//========================================
// Nested Includes
//========================================
#include <radobject.hpp>
#include <radlinkedclass.hpp>

#include <sound/soundrenderer/soundsystem.h>

//========================================
// Forward References
//========================================

struct SimpsonsSoundPlayerCallback;
class SimpsonsSoundPlayer;

//=============================================================================
//
// Synopsis:    SoundRenderingPlayerCallback
//
//=============================================================================

class SoundRenderingPlayerCallback : public Sound::IDaSoundPlayerState,
                                     public radLinkedClass< SoundRenderingPlayerCallback >,
                                     public radRefCount
{
    public:
        IMPLEMENT_REFCOUNTED( "SoundRenderingPlayerCallback" );

        SoundRenderingPlayerCallback( SimpsonsSoundPlayer& playerObj,
                                      SimpsonsSoundPlayerCallback* callbackObj );
        virtual ~SoundRenderingPlayerCallback();

        void CancelGameCallbackAndRelease();

        static void CompletionCheck();

        // Currently unused
        void OnSoundReady( void* pData );

        // Called when sound renderer player has completed playback
        void OnSoundDone( void* pData );

    private:
        //Prevent wasteful constructor creation.
        SoundRenderingPlayerCallback();
        SoundRenderingPlayerCallback( const SoundRenderingPlayerCallback& original );
        SoundRenderingPlayerCallback& operator=( const SoundRenderingPlayerCallback& rhs );

        SimpsonsSoundPlayerCallback* m_callbackObj;
        SimpsonsSoundPlayer* m_playerObj;
};


#endif // SOUNDRENDERERCALLBACK_H