root/branches/transport_redesign/libs/hydrogen/src/IO/AlsaAudioDriver.h @ 872

Revision 872, 1.9 KB (checked in by gabriel@…, 4 years ago)

Add H2CORE_ to include guards in libhydrogen headers.

This isn't solving any problem... but adding the namespace to the include guards
promotes the use of simple names. Adding the namespace to the include guard
avoids potential future conflicts with other libraries that have used the same
simple names.

Line 
1/*
2 * Hydrogen
3 * Copyright(c) 2002-2008 by Alex >Comix< Cominu [comix@users.sourceforge.net]
4 *
5 * http://www.hydrogen-music.org
6 *
7 * This program is free software; you can redistribute it and/or modify
8 * it under the terms of the GNU General Public License as published by
9 * the Free Software Foundation; either version 2 of the License, or
10 * (at your option) any later version.
11 *
12 * This program is distributed in the hope that it will be useful,
13 * but WITHOUT ANY WARRANTY, without even the implied warranty of
14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
15 * GNU General Public License for more details.
16 *
17 * You should have received a copy of the GNU General Public License
18 * along with this program; if not, write to the Free Software
19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
20 *
21 */
22#ifndef H2CORE_ALSA_AUDIO_DRIVER_H
23#define H2CORE_ALSA_AUDIO_DRIVER_H
24
25#include <hydrogen/IO/AudioOutput.h>
26#include <hydrogen/IO/NullDriver.h>
27
28#ifdef ALSA_SUPPORT
29
30#include <inttypes.h>
31#include <alsa/asoundlib.h>
32
33namespace H2Core
34{
35
36typedef int  ( *audioProcessCallback )( uint32_t, void * );
37
38class AlsaAudioDriver : public AudioOutput
39{
40public:
41        snd_pcm_t *m_pPlayback_handle;
42        bool m_bIsRunning;
43        unsigned long m_nBufferSize;
44        float* m_pOut_L;
45        float* m_pOut_R;
46        int m_nXRuns;
47        QString m_sAlsaAudioDevice;
48        audioProcessCallback m_processCallback;
49
50        AlsaAudioDriver( audioProcessCallback processCallback );
51        ~AlsaAudioDriver();
52
53        virtual int init( unsigned nBufferSize );
54        virtual int connect();
55        virtual void disconnect();
56        virtual unsigned getBufferSize();
57        virtual unsigned getSampleRate();
58        virtual float* getOut_L();
59        virtual float* getOut_R();
60
61private:
62        unsigned int m_nSampleRate;
63};
64
65#else
66
67namespace H2Core {
68
69class AlsaAudioDriver : public NullDriver
70{
71public:
72        AlsaAudioDriver( audioProcessCallback processCallback ) : NullDriver( processCallback ) {}
73
74};
75
76#endif // ALSA_SUPPORT
77
78};
79
80#endif // H2CORE_ALSA_AUDIO_DRIVER_H
Note: See TracBrowser for help on using the browser.