RemoteVstPlugin: fixed too short arrays for preset names
[lmms.git] / include / AudioAlsa.h
bloba2a645c9f89d2ab522f1c9313796faafd8b1801e
1 /*
2 * AudioAlsa.h - device-class that implements ALSA-PCM-output
4 * Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
6 * This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
8 * This program is free software; you can redistribute it and/or
9 * modify it under the terms of the GNU General Public
10 * License as published by the Free Software Foundation; either
11 * version 2 of the License, or (at your option) any later version.
13 * This program is distributed in the hope that it will be useful,
14 * but WITHOUT ANY WARRANTY; without even the implied warranty of
15 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
16 * General Public License for more details.
18 * You should have received a copy of the GNU General Public
19 * License along with this program (see COPYING); if not, write to the
20 * Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
21 * Boston, MA 02110-1301 USA.
25 #ifndef _AUDIO_ALSA_H
26 #define _AUDIO_ALSA_H
28 #include "lmmsconfig.h"
30 #ifdef LMMS_HAVE_ALSA
32 // older ALSA-versions might require this
33 #define ALSA_PCM_NEW_HW_PARAMS_API
35 #include <alsa/asoundlib.h>
37 #include "AudioBackend.h"
40 class lcdSpinBox;
41 class QComboBox;
44 class AudioAlsa : public AudioBackend, public QThread
46 public:
47 AudioAlsa( bool & _success_ful, AudioOutputContext * context );
48 virtual ~AudioAlsa();
50 inline static QString name()
52 return QT_TRANSLATE_NOOP( "setupWidget",
53 "ALSA (Advanced Linux Sound Architecture)" );
56 static QString probeDevice();
59 class setupWidget : public AudioBackend::setupWidget
61 public:
62 setupWidget( QWidget * _parent );
63 virtual ~setupWidget();
65 virtual void saveSettings();
67 private:
68 QComboBox * m_device;
69 lcdSpinBox * m_channels;
71 void poo(const QString & s)
73 printf("Got %s\n", qPrintable( s ) );
76 } ;
79 private:
80 virtual void startProcessing();
81 virtual void stopProcessing();
82 virtual void applyQualitySettings();
83 virtual void run();
85 int setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access );
86 int setSWParams();
87 int handleError( int _err );
90 snd_pcm_t * m_handle;
92 snd_pcm_uframes_t m_bufferSize;
93 snd_pcm_uframes_t m_periodSize;
95 snd_pcm_hw_params_t * m_hwParams;
96 snd_pcm_sw_params_t * m_swParams;
98 bool m_convertEndian;
102 #endif
104 #endif