Adding OpenBSD's sndio support.

Updating jackmsr's work, adding sndio cmake module.
Updating 64 bits OS arch detection (amd64).
This commit is contained in:
David Carlier
2016-03-26 12:48:28 +00:00
parent d1739ce5fe
commit 43a0718d0b
12 changed files with 487 additions and 2 deletions

54
include/AudioSndio.h Normal file
View File

@@ -0,0 +1,54 @@
#ifndef _AUDIO_SNDIO_H
#define _AUDIO_SNDIO_H
#include "lmmsconfig.h"
#ifdef LMMS_HAVE_SNDIO
#include <sndio.h>
#include "AudioDevice.h"
#include "AudioDeviceSetupWidget.h"
class LcdSpinBox;
class QLineEdit;
class AudioSndio : public AudioDevice, public QThread
{
public:
AudioSndio( bool & _success_ful, Mixer * _mixer );
virtual ~AudioSndio();
inline static QString name( void )
{
return QT_TRANSLATE_NOOP( "setupWidget", "sndio" );
}
class setupWidget : public AudioDeviceSetupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
private:
QLineEdit * m_device;
LcdSpinBox * m_channels;
} ;
private:
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void run( void );
struct sio_hdl *m_hdl;
struct sio_par m_par;
} ;
#endif /* LMMS_HAVE_SNDIO */
#endif /* _AUDIO_SNDIO_H */

48
include/MidiSndio.h Normal file
View File

@@ -0,0 +1,48 @@
#ifndef _MIDI_SNDIO_H
#define _MIDI_SNDIO_H
#include "lmmsconfig.h"
#ifdef LMMS_HAVE_SNDIO
#include <QtCore/QThread>
#include <QtCore/QFile>
#include <sndio.h>
#include "MidiClient.h"
class QLineEdit;
class MidiSndio : public MidiClientRaw, public QThread
{
public:
MidiSndio( void );
virtual ~MidiSndio();
static QString probeDevice(void);
inline static QString name(void)
{
return QT_TRANSLATE_NOOP("MidiSetupWidget", "sndio MIDI");
}
inline static QString configSection()
{
return "MidiSndio";
}
protected:
virtual void sendByte(const unsigned char c);
virtual void run(void);
private:
struct mio_hdl *m_hdl;
volatile bool m_quit;
} ;
#endif /* LMMS_HAVE_SNDIO */
#endif /* _MIDI_SNDIO_H */