Renamed MIDI and audio related classes/files to match new style

Renamed all MIDI and audio related classes/files to match new style.
Additionally various cleanups.
This commit is contained in:
Tobias Doerffel
2009-08-13 00:39:26 +02:00
parent edc2cae4c2
commit b8ebfbd06a
73 changed files with 1374 additions and 1516 deletions

View File

@@ -1,8 +1,8 @@
/*
* audio_alsa.h - device-class that implements ALSA-PCM-output
* AudioAlsa.h - device-class that implements ALSA-PCM-output
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_ALSA_H
#define _AUDIO_ALSA_H
@@ -35,35 +34,35 @@
#include <alsa/asoundlib.h>
#include "audio_device.h"
#include "AudioDevice.h"
class lcdSpinBox;
class QLineEdit;
class audioALSA : public audioDevice, public QThread
class AudioAlsa : public AudioDevice, public QThread
{
public:
audioALSA( bool & _success_ful, mixer * _mixer );
virtual ~audioALSA();
AudioAlsa( bool & _success_ful, mixer * _mixer );
virtual ~AudioAlsa();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"ALSA (Advanced Linux Sound Architecture)" ) );
return QT_TRANSLATE_NOOP( "setupWidget",
"ALSA (Advanced Linux Sound Architecture)" );
}
static QString probeDevice( void );
static QString probeDevice();
class setupWidget : public audioDevice::setupWidget
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_device;
@@ -73,13 +72,13 @@ public:
private:
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void run( void );
virtual void startProcessing();
virtual void stopProcessing();
virtual void applyQualitySettings();
virtual void run();
int setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access );
int setSWParams( void );
int setSWParams();
int handleError( int _err );

View File

@@ -1,8 +1,8 @@
/*
* audio_device.h - base-class for audio-devices, used by LMMS-mixer
* AudioDevice.h - base-class for audio-devices, used by LMMS-mixer
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_DEVICE_H
#define _AUDIO_DEVICE_H
@@ -34,61 +33,60 @@
#include "tab_widget.h"
class audioPort;
class AudioPort;
class audioDevice
class AudioDevice
{
public:
audioDevice( const ch_cnt_t _channels, mixer * _mixer );
virtual ~audioDevice();
AudioDevice( const ch_cnt_t _channels, mixer * _mixer );
virtual ~AudioDevice();
inline void lock( void )
inline void lock()
{
m_devMutex.lock();
}
inline void unlock( void )
inline void unlock()
{
m_devMutex.unlock();
}
// if audio-driver supports ports, classes inherting audioPort
// if audio-driver supports ports, classes inherting AudioPort
// (e.g. channel-tracks) can register themselves for making
// audio-driver able to collect their individual output and provide
// them at a specific port - currently only supported by JACK
virtual void registerPort( audioPort * _port );
virtual void unregisterPort( audioPort * _port );
virtual void renamePort( audioPort * _port );
virtual void registerPort( AudioPort * _port );
virtual void unregisterPort( AudioPort * _port );
virtual void renamePort( AudioPort * _port );
inline bool supportsCapture( void ) const
inline bool supportsCapture() const
{
return( m_supportsCapture );
return m_supportsCapture;
}
inline sample_rate_t sampleRate( void ) const
inline sample_rate_t sampleRate() const
{
return( m_sampleRate );
return m_sampleRate;
}
ch_cnt_t channels( void ) const
ch_cnt_t channels() const
{
return( m_channels );
return m_channels;
}
void processNextBuffer( void );
void processNextBuffer();
virtual void startProcessing( void )
virtual void startProcessing()
{
m_inProcess = TRUE;
m_inProcess = true;
}
virtual void stopProcessing( void );
virtual void stopProcessing();
virtual void applyQualitySettings( void );
virtual void applyQualitySettings();
@@ -106,9 +104,9 @@ public:
{
}
virtual void saveSettings( void ) = 0;
virtual void saveSettings() = 0;
virtual void show( void )
virtual void show()
{
parentWidget()->show();
QWidget::show();
@@ -154,16 +152,18 @@ protected:
m_sampleRate = _new_sr;
}
mixer * getMixer( void )
mixer * getMixer()
{
return( m_mixer );
return m_mixer;
}
bool hqAudio( void ) const;
bool hqAudio() const;
protected:
bool m_supportsCapture;
private:
sample_rate_t m_sampleRate;
ch_cnt_t m_channels;

View File

@@ -1,8 +1,8 @@
/*
* audio_dummy.h - dummy-audio-device
* AudioDummy.h - dummy audio-device
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,40 +22,38 @@
*
*/
#ifndef _AUDIO_DUMMY_H
#define _AUDIO_DUMMY_H
#include "audio_device.h"
#include "micro_timer.h"
#include "AudioDevice.h"
#include "MicroTimer.h"
class audioDummy : public audioDevice, public QThread
class AudioDummy : public AudioDevice, public QThread
{
public:
audioDummy( bool & _success_ful, mixer * _mixer ) :
audioDevice( DEFAULT_CHANNELS, _mixer )
AudioDummy( bool & _success_ful, mixer * _mixer ) :
AudioDevice( DEFAULT_CHANNELS, _mixer )
{
_success_ful = TRUE;
_success_ful = true;
}
virtual ~audioDummy()
virtual ~AudioDummy()
{
stopProcessing();
}
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"Dummy (no sound output)" ) );
return QT_TRANSLATE_NOOP( "setupWidget", "Dummy (no sound output)" );
}
class setupWidget : public audioDevice::setupWidget
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( audioDummy::name(), _parent )
AudioDevice::setupWidget( AudioDummy::name(), _parent )
{
}
@@ -63,11 +61,11 @@ public:
{
}
virtual void saveSettings( void )
virtual void saveSettings()
{
}
virtual void show( void )
virtual void show()
{
parentWidget()->hide();
QWidget::show();
@@ -77,12 +75,12 @@ public:
private:
virtual void startProcessing( void )
virtual void startProcessing()
{
start();
}
virtual void stopProcessing( void )
virtual void stopProcessing()
{
if( isRunning() )
{
@@ -91,10 +89,10 @@ private:
}
}
virtual void run( void )
virtual void run()
{
microTimer timer;
while( TRUE )
MicroTimer timer;
while( true )
{
timer.reset();
const surroundSampleFrame * b =

View File

@@ -1,9 +1,9 @@
/*
* audio_file_device.h - base-class for audio-device-classes which write
* their output into a file
* AudioFileDevice.h - base-class for audio-device-classes which write
* their output into a file
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -26,17 +26,15 @@
#ifndef _AUDIO_FILE_DEVICE_H
#define _AUDIO_FILE_DEVICE_H
#include <QtCore/QFile>
#include "audio_device.h"
#include "AudioDevice.h"
class audioFileDevice : public audioDevice
class AudioFileDevice : public AudioDevice
{
public:
audioFileDevice( const sample_rate_t _sample_rate,
AudioFileDevice( const sample_rate_t _sample_rate,
const ch_cnt_t _channels, const QString & _file,
const bool _use_vbr,
const bitrate_t _nom_bitrate,
@@ -44,45 +42,45 @@ public:
const bitrate_t _max_bitrate,
const int _depth,
mixer * _mixer );
virtual ~audioFileDevice();
virtual ~AudioFileDevice();
QString outputFile( void ) const
QString outputFile() const
{
return( m_outputFile.fileName() );
return m_outputFile.fileName();
}
protected:
Sint32 writeData( const void * _data, Sint32 _len );
inline bool useVBR( void ) const
inline bool useVBR() const
{
return( m_useVbr );
return m_useVbr;
}
inline bitrate_t nominalBitrate( void ) const
inline bitrate_t nominalBitrate() const
{
return( m_nomBitrate );
return m_nomBitrate;
}
inline bitrate_t minBitrate( void ) const
inline bitrate_t minBitrate() const
{
return( m_minBitrate );
return m_minBitrate;
}
inline bitrate_t maxBitrate( void ) const
inline bitrate_t maxBitrate() const
{
return( m_maxBitrate );
return m_maxBitrate;
}
inline int depth( void ) const
inline int depth() const
{
return( m_depth );
return m_depth;
}
inline bool outputFileOpened( void ) const
inline bool outputFileOpened() const
{
return( m_outputFile.isOpen() );
return m_outputFile.isOpen();
}
@@ -100,7 +98,7 @@ private:
} ;
typedef audioFileDevice * ( * audioFileDeviceInstantiaton )
typedef AudioFileDevice * ( * AudioFileDeviceInstantiaton )
( const sample_rate_t _sample_rate,
const ch_cnt_t _channels,
bool & _success_ful,

View File

@@ -1,9 +1,9 @@
/*
* audio_file_ogg.h - Audio-device which encodes wave-stream and writes it
* into an OGG-file. This is used for song-export.
* AudioFileOgg.h - Audio-device which encodes wave-stream and writes it
* into an OGG-file. This is used for song-export.
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,7 +23,6 @@
*
*/
#ifndef _AUDIO_FILE_OGG_H
#define _AUDIO_FILE_OGG_H
@@ -33,14 +32,13 @@
#include <vorbis/codec.h>
#include "audio_file_device.h"
#include "AudioFileDevice.h"
class audioFileOgg : public audioFileDevice
class AudioFileOgg : public AudioFileDevice
{
public:
audioFileOgg( const sample_rate_t _sample_rate,
AudioFileOgg( const sample_rate_t _sample_rate,
const ch_cnt_t _channels,
bool & _success_ful,
const QString & _file,
@@ -50,9 +48,9 @@ public:
const bitrate_t _max_bitrate,
const int _depth,
mixer * _mixer );
virtual ~audioFileOgg();
virtual ~AudioFileOgg();
static audioFileDevice * getInst( const sample_rate_t _sample_rate,
static AudioFileDevice * getInst( const sample_rate_t _sample_rate,
const ch_cnt_t _channels,
bool & _success_ful,
const QString & _file,
@@ -63,10 +61,10 @@ public:
const int _depth,
mixer * _mixer )
{
return( new audioFileOgg( _sample_rate, _channels, _success_ful,
return new AudioFileOgg( _sample_rate, _channels, _success_ful,
_file, _use_vbr, _nom_bitrate,
_min_bitrate, _max_bitrate,
_depth, _mixer ) );
_depth, _mixer );
}
@@ -75,9 +73,9 @@ private:
const fpp_t _frames,
const float _master_gain );
bool startEncoding( void );
void finishEncoding( void );
inline Sint32 writePage( void );
bool startEncoding();
void finishEncoding();
inline Sint32 writePage();
bool m_ok;

View File

@@ -1,9 +1,9 @@
/*
* audio_file_wave.h - Audio-device which encodes wave-stream and writes it
* into an WAVE-file. This is used for song-export.
* AudioFileWave.h - AudioDevice which encodes wave-stream and writes it
* into a WAVE-file. This is used for song-export.
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,21 +23,19 @@
*
*/
#ifndef _AUDIO_FILE_WAVE_H
#define _AUDIO_FILE_WAVE_H
#include "lmmsconfig.h"
#include "audio_file_device.h"
#include "AudioFileDevice.h"
#include <sndfile.h>
class audioFileWave : public audioFileDevice
class AudioFileWave : public AudioFileDevice
{
public:
audioFileWave( const sample_rate_t _sample_rate,
AudioFileWave( const sample_rate_t _sample_rate,
const ch_cnt_t _channels,
bool & _success_ful,
const QString & _file,
@@ -47,9 +45,9 @@ public:
const bitrate_t _max_bitrate,
const int _depth,
mixer * _mixer );
virtual ~audioFileWave();
virtual ~AudioFileWave();
static audioFileDevice * getInst( const sample_rate_t _sample_rate,
static AudioFileDevice * getInst( const sample_rate_t _sample_rate,
const ch_cnt_t _channels,
bool & _success_ful,
const QString & _file,
@@ -60,11 +58,11 @@ public:
const int _depth,
mixer * _mixer )
{
return( new audioFileWave( _sample_rate, _channels,
return new AudioFileWave( _sample_rate, _channels,
_success_ful, _file, _use_vbr,
_nom_bitrate, _min_bitrate,
_max_bitrate, _depth,
_mixer ) );
_mixer );
}
@@ -73,8 +71,8 @@ private:
const fpp_t _frames,
float _master_gain );
bool startEncoding( void );
void finishEncoding( void );
bool startEncoding();
void finishEncoding();
SF_INFO m_si;

View File

@@ -1,8 +1,8 @@
/*
* audio_jack.h - support for JACK-transport
* AudioJack.h - support for JACK-transport
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_JACK_H
#define _AUDIO_JACK_H
@@ -36,35 +35,34 @@
#include <QtCore/QList>
#include <QtCore/QMap>
#include "audio_device.h"
#include "AudioDevice.h"
class QLineEdit;
class lcdSpinBox;
class audioJACK : public QObject, public audioDevice
class AudioJack : public QObject, public AudioDevice
{
Q_OBJECT
public:
audioJACK( bool & _success_ful, mixer * _mixer );
virtual ~audioJACK();
AudioJack( bool & _success_ful, mixer * _mixer );
virtual ~AudioJack();
inline static QString name( void )
inline static QString name()
{
return QT_TRANSLATE_NOOP( "setupWidget",
"JACK (JACK Audio Connection Kit)" );
}
class setupWidget : public audioDevice::setupWidget
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_clientName;
@@ -74,20 +72,20 @@ public:
private slots:
void restartAfterZombified( void );
void restartAfterZombified();
#ifdef LMMS_HAVE_JACK
private:
bool initJackClient( void );
bool initJackClient();
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void startProcessing();
virtual void stopProcessing();
virtual void applyQualitySettings();
virtual void registerPort( audioPort * _port );
virtual void unregisterPort( audioPort * _port );
virtual void renamePort( audioPort * _port );
virtual void registerPort( AudioPort * _port );
virtual void unregisterPort( AudioPort * _port );
virtual void renamePort( AudioPort * _port );
int processCallback( jack_nframes_t _nframes, void * _udata );
@@ -111,17 +109,17 @@ private:
f_cnt_t m_framesToDoInCurBuf;
struct stereoPort
struct StereoPort
{
jack_port_t * ports[2];
} ;
typedef QMap<audioPort *, stereoPort> jackPortMap;
jackPortMap m_portMap;
typedef QMap<AudioPort *, StereoPort> JackPortMap;
JackPortMap m_portMap;
#endif
signals:
void zombified( void );
void zombified();
} ;

View File

@@ -1,8 +1,8 @@
/*
* audio_oss.h - device-class that implements OSS-PCM-output
* AudioOss.h - device-class that implements OSS-PCM-output
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_OSS_H
#define _AUDIO_OSS_H
@@ -30,35 +29,34 @@
#ifdef LMMS_HAVE_OSS
#include "audio_device.h"
#include "AudioDevice.h"
class lcdSpinBox;
class QLineEdit;
class audioOSS : public audioDevice, public QThread
class AudioOss : public AudioDevice, public QThread
{
public:
audioOSS( bool & _success_ful, mixer * _mixer );
virtual ~audioOSS();
AudioOss( bool & _success_ful, mixer * _mixer );
virtual ~AudioOss();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"OSS (Open Sound System)" ) );
return QT_TRANSLATE_NOOP( "setupWidget", "OSS (Open Sound System)" );
}
static QString probeDevice( void );
static QString probeDevice();
class setupWidget : public audioDevice::setupWidget
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_device;
@@ -68,10 +66,10 @@ public:
private:
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void run( void );
virtual void startProcessing();
virtual void stopProcessing();
virtual void applyQualitySettings();
virtual void run();
int m_audioFD;

View File

@@ -1,8 +1,8 @@
/*
* audio_port.h - base-class for objects providing sound at a port
* AudioPort.h - base-class for objects providing sound at a port
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_PORT_H
#define _AUDIO_PORT_H
@@ -34,49 +33,49 @@
class effectChain;
class audioPort
class AudioPort
{
public:
audioPort( const QString & _name, bool _has_effect_chain = true );
~audioPort();
AudioPort( const QString & _name, bool _has_effect_chain = true );
~AudioPort();
inline sampleFrame * firstBuffer( void )
inline sampleFrame * firstBuffer()
{
return( m_firstBuffer );
return m_firstBuffer;
}
inline sampleFrame * secondBuffer( void )
inline sampleFrame * secondBuffer()
{
return( m_secondBuffer );
return m_secondBuffer;
}
inline void lockFirstBuffer( void )
inline void lockFirstBuffer()
{
m_firstBufferLock.lock();
}
inline void lockSecondBuffer( void )
inline void lockSecondBuffer()
{
m_secondBufferLock.lock();
}
inline void unlockFirstBuffer( void )
inline void unlockFirstBuffer()
{
m_firstBufferLock.unlock();
}
inline void unlockSecondBuffer( void )
inline void unlockSecondBuffer()
{
m_secondBufferLock.unlock();
}
void nextPeriod( void );
void nextPeriod();
// indicate whether JACK & Co should provide output-buffer at ext. port
inline bool extOutputEnabled( void ) const
inline bool extOutputEnabled() const
{
return( m_extOutputEnabled );
return m_extOutputEnabled;
}
void setExtOutputEnabled( bool _enabled );
@@ -84,14 +83,14 @@ public:
// next effect-channel after this audio-port
// (-1 = none 0 = master)
inline fx_ch_t nextFxChannel( void ) const
inline fx_ch_t nextFxChannel() const
{
return( m_nextFxChannel );
return m_nextFxChannel;
}
inline effectChain * getEffects( void )
inline effectChain * getEffects()
{
return( m_effects );
return m_effects;
}
void setNextFxChannel( const fx_ch_t _chnl )
@@ -100,15 +99,15 @@ public:
}
const QString & name( void ) const
const QString & name() const
{
return( m_name );
return m_name;
}
void setName( const QString & _new_name );
bool processEffects( void );
bool processEffects();
enum bufferUsages

View File

@@ -1,8 +1,8 @@
/*
* audio_portaudio.h - device-class that performs PCM-output via PortAudio
* AudioPortAudio.h - device-class that performs PCM-output via PortAudio
*
* Copyright (c) 2008 Csaba Hruska <csaba.hruska/at/gmail.com>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_PORTAUDIO_H
#define _AUDIO_PORTAUDIO_H
@@ -31,12 +30,12 @@
#include "lmmsconfig.h"
#include "combobox_model.h"
class audioPortAudioSetupUtil : public QObject
class AudioPortAudioSetupUtil : public QObject
{
Q_OBJECT
public slots:
void updateDevices( void );
void updateChannels( void );
void updateDevices();
void updateChannels();
public:
comboBoxModel m_backendModel;
@@ -48,7 +47,7 @@ public:
#include <portaudio.h>
#include "audio_device.h"
#include "AudioDevice.h"
#if defined paNeverDropInput || defined paNonInterleaved
# define PORTAUDIO_V19
@@ -61,16 +60,15 @@ class comboBox;
class lcdSpinBox;
class audioPortAudio : public audioDevice
class AudioPortAudio : public AudioDevice
{
public:
audioPortAudio( bool & _success_ful, mixer * _mixer );
virtual ~audioPortAudio();
AudioPortAudio( bool & _success_ful, mixer * _mixer );
virtual ~AudioPortAudio();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"PortAudio" ) );
return QT_TRANSLATE_NOOP( "setupWidget", "PortAudio" );
}
@@ -79,26 +77,26 @@ public:
unsigned long _framesPerBuffer );
class setupWidget : public audioDevice::setupWidget
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
comboBox * m_backend;
comboBox * m_device;
lcdSpinBox * m_channels;
audioPortAudioSetupUtil m_setupUtil;
AudioPortAudioSetupUtil m_setupUtil;
} ;
private:
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void startProcessing();
virtual void stopProcessing();
virtual void applyQualitySettings();
#ifdef PORTAUDIO_V19
static int _process_callback( const void *_inputBuffer, void * _outputBuffer,

View File

@@ -1,8 +1,8 @@
/*
* audio_pulseaudio.h - device-class which implements PulseAudio-output
* AudioPulseAudio.h - device-class which implements PulseAudio-output
*
* Copyright (c) 2008-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_PULSEAUDIO_H
#define _AUDIO_PULSEAUDIO_H
@@ -32,35 +31,34 @@
#include <pulse/pulseaudio.h>
#include "audio_device.h"
#include "AudioDevice.h"
class lcdSpinBox;
class QLineEdit;
class audioPulseAudio : public audioDevice, public QThread
class AudioPulseAudio : public AudioDevice, public QThread
{
public:
audioPulseAudio( bool & _success_ful, mixer * _mixer );
virtual ~audioPulseAudio();
AudioPulseAudio( bool & _success_ful, mixer * _mixer );
virtual ~AudioPulseAudio();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"PulseAudio (bad latency!)" ) );
return QT_TRANSLATE_NOOP( "setupWidget", "PulseAudio (bad latency!)" );
}
static QString probeDevice( void );
static QString probeDevice();
class setupWidget : public audioDevice::setupWidget
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_device;
@@ -76,10 +74,10 @@ public:
private:
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void run( void );
virtual void startProcessing();
virtual void stopProcessing();
virtual void applyQualitySettings();
virtual void run();
bool m_convertEndian;

View File

@@ -1,10 +1,9 @@
/*
* audio_sample_recorder.h - device-class that implements recording
* surround-audio-buffers into RAM, maybe later
* also harddisk
* AudioSampleRecorder.h - device-class that implements recording
* audio-buffers into RAM
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,28 +23,25 @@
*
*/
#ifndef _AUDIO_SAMPLE_RECORDER_H
#define _AUDIO_SAMPLE_RECORDER_H
#include <QtCore/QList>
#include <QtCore/QPair>
#include "audio_device.h"
#include "AudioDevice.h"
class sampleBuffer;
class audioSampleRecorder : public audioDevice
class AudioSampleRecorder : public AudioDevice
{
public:
audioSampleRecorder( const ch_cnt_t _channels, bool & _success_ful,
AudioSampleRecorder( const ch_cnt_t _channels, bool & _success_ful,
mixer * _mixer );
virtual ~audioSampleRecorder();
virtual ~AudioSampleRecorder();
f_cnt_t framesRecorded( void ) const;
f_cnt_t framesRecorded() const;
void createSampleBuffer( sampleBuffer * * _sample_buf );
@@ -54,8 +50,8 @@ private:
const fpp_t _frames,
const float _master_gain );
typedef QList<QPair<sampleFrame *, fpp_t> > bufferList;
bufferList m_buffers;
typedef QList<QPair<sampleFrame *, fpp_t> > BufferList;
BufferList m_buffers;
} ;

View File

@@ -1,8 +1,8 @@
/*
* audio_sdl.h - device-class that performs PCM-output via SDL
* AudioSdl.h - device-class that performs PCM-output via SDL
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _AUDIO_SDL_H
#define _AUDIO_SDL_H
@@ -33,32 +32,31 @@
#include <SDL/SDL.h>
#include <SDL/SDL_audio.h>
#include "audio_device.h"
#include "AudioDevice.h"
class QLineEdit;
class audioSDL : public audioDevice
class AudioSdl : public AudioDevice
{
public:
audioSDL( bool & _success_ful, mixer * _mixer );
virtual ~audioSDL();
AudioSdl( bool & _success_ful, mixer * _mixer );
virtual ~AudioSdl();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"SDL (Simple DirectMedia Layer)" ) );
return QT_TRANSLATE_NOOP( "setupWidget",
"SDL (Simple DirectMedia Layer)" );
}
class setupWidget : public audioDevice::setupWidget
class setupWidget : public AudioDevice::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_device;
@@ -67,9 +65,9 @@ public:
private:
virtual void startProcessing( void );
virtual void stopProcessing( void );
virtual void applyQualitySettings( void );
virtual void startProcessing();
virtual void stopProcessing();
virtual void applyQualitySettings();
static void sdlAudioCallback( void * _udata, Uint8 * _buf, int _len );
void sdlAudioCallback( Uint8 * _buf, int _len );

View File

@@ -44,7 +44,7 @@ class groupBox;
class tabWidget;
class lcdSpinBox;
class ledCheckBox;
class midiPortMenu;
class MidiPortMenu;
@@ -80,7 +80,7 @@ private:
lcdSpinBox * m_midiChannelSpinBox;
lcdSpinBox * m_midiControllerSpinBox;
ledCheckBox * m_midiAutoDetectCheckBox;
midiPortMenu * m_readablePorts;
MidiPortMenu * m_readablePorts;
boolModel m_midiAutoDetect;
// User

View File

@@ -1,8 +1,8 @@
/*
* micro_timer.h - simple high-precision timer
* MicroTimer.h - simple high-precision timer
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _MICRO_TIMER
#define _MICRO_TIMER
@@ -36,29 +35,29 @@
#include "lmms_basics.h"
class microTimer
class MicroTimer
{
public:
inline microTimer( void )
inline MicroTimer()
{
reset();
}
inline ~microTimer()
inline ~MicroTimer()
{
}
inline void reset( void )
inline void reset()
{
gettimeofday( &begin, NULL );
}
inline int elapsed( void ) const
inline int elapsed() const
{
struct timeval now;
gettimeofday( &now, NULL );
return( ( now.tv_sec - begin.tv_sec ) * 1000 * 1000 +
( now.tv_usec - begin.tv_usec ) );
return ( now.tv_sec - begin.tv_sec ) * 1000 * 1000 +
( now.tv_usec - begin.tv_usec );
}

View File

@@ -1,8 +1,8 @@
/*
* midi_alsa_raw.h - midi-client for RawMIDI via ALSA
* MidiAlsaRaw.h - midi-client for RawMIDI via ALSA
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _MIDI_ALSA_RAW_H
#define _MIDI_ALSA_RAW_H
@@ -34,36 +33,36 @@
#include <QtCore/QThread>
#include "midi_client.h"
#include "MidiClient.h"
struct pollfd;
class QLineEdit;
class midiALSARaw : public midiClientRaw, public QThread
class MidiAlsaRaw : public MidiClientRaw , public QThread
{
public:
midiALSARaw( void );
virtual ~midiALSARaw();
MidiAlsaRaw();
virtual ~MidiAlsaRaw();
static QString probeDevice( void );
static QString probeDevice();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"ALSA Raw-MIDI (Advanced Linux Sound Architecture)" ) );
return QT_TRANSLATE_NOOP( "setupWidget",
"ALSA Raw-MIDI (Advanced Linux Sound Architecture)" );
}
class setupWidget : public midiClientRaw::setupWidget
class setupWidget : public MidiClientRaw::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_device;
@@ -73,7 +72,7 @@ public:
protected:
virtual void sendByte( const Uint8 _c );
virtual void run( void );
virtual void run();
private:

View File

@@ -1,8 +1,8 @@
/*
* midi_alsa_seq.h - ALSA-sequencer-client
* MidiAlsaSeq.h - ALSA-sequencer-client
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _MIDI_ALSA_SEQ_H
#define _MIDI_ALSA_SEQ_H
@@ -36,60 +35,60 @@
#include <QtCore/QTimer>
#include "midi_client.h"
#include "MidiClient.h"
struct pollfd;
class QLineEdit;
class midiALSASeq : public QThread, public midiClient
class MidiAlsaSeq : public QThread, public MidiClient
{
Q_OBJECT
public:
midiALSASeq( void );
virtual ~midiALSASeq();
MidiAlsaSeq();
virtual ~MidiAlsaSeq();
static QString probeDevice( void );
static QString probeDevice();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
return QT_TRANSLATE_NOOP( "setupWidget",
"ALSA-Sequencer (Advanced Linux Sound "
"Architecture)" ) );
"Architecture)" );
}
virtual void processOutEvent( const midiEvent & _me,
const midiTime & _time,
const midiPort * _port );
const MidiPort * _port );
virtual void applyPortMode( midiPort * _port );
virtual void applyPortName( midiPort * _port );
virtual void applyPortMode( MidiPort * _port );
virtual void applyPortName( MidiPort * _port );
virtual void removePort( midiPort * _port );
virtual void removePort( MidiPort * _port );
// list seq-ports from ALSA
virtual QStringList readablePorts( void ) const
virtual QStringList readablePorts() const
{
return m_readablePorts;
}
virtual QStringList writablePorts( void ) const
virtual QStringList writablePorts() const
{
return m_writablePorts;
}
// (un)subscribe given midiPort to/from destination-port
virtual void subscribeReadablePort( midiPort * _port,
// (un)subscribe given MidiPort to/from destination-port
virtual void subscribeReadablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe = TRUE );
virtual void subscribeWritablePort( midiPort * _port,
bool _subscribe = true );
virtual void subscribeWritablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe = TRUE );
bool _subscribe = true );
virtual void connectRPChanged( QObject * _receiver,
const char * _member )
{
@@ -105,13 +104,13 @@ public:
}
class setupWidget : public midiClient::setupWidget
class setupWidget : public MidiClient::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_device;
@@ -121,21 +120,21 @@ public:
private slots:
void changeQueueTempo( bpm_t _bpm );
void updatePortList( void );
void updatePortList();
private:
virtual void run( void );
virtual void run();
#ifdef LMMS_HAVE_ALSA
snd_seq_t * m_seqHandle;
struct ports
struct Ports
{
ports() { p[0] = -1; p[1] = -1; }
int & operator[]( const int _i ) { return( p[_i] ); }
Ports() { p[0] = -1; p[1] = -1; }
int & operator[]( const int _i ) { return p[_i]; }
private: int p[2];
} ;
QMap<midiPort *, ports> m_portIDs;
QMap<MidiPort *, Ports> m_portIDs;
#endif
int m_queueID;
@@ -150,8 +149,8 @@ private:
signals:
void readablePortsChanged( void );
void writablePortsChanged( void );
void readablePortsChanged();
void writablePortsChanged();
} ;

View File

@@ -1,8 +1,8 @@
/*
* midi_client.h - base-class for MIDI-clients like ALSA-sequencer-client
* MidiClient.h - base-class for MIDI clients like ALSA-sequencer-client
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _MIDI_CLIENT_H
#define _MIDI_CLIENT_H
@@ -31,60 +30,60 @@
#include "midi.h"
#include "midi_event_processor.h"
#include "MidiEventProcessor.h"
#include "tab_widget.h"
class midiPort;
class MidiPort;
// base-class for all MIDI-clients
class midiClient
class MidiClient
{
public:
midiClient( void );
virtual ~midiClient();
MidiClient();
virtual ~MidiClient();
// to be implemented by sub-classes
virtual void processOutEvent( const midiEvent & _me,
const midiTime & _time,
const midiPort * _port ) = 0;
const MidiPort * _port ) = 0;
// inheriting classes can re-implement this for being able to update
// their internal port-structures etc.
virtual void applyPortMode( midiPort * _port );
virtual void applyPortName( midiPort * _port );
virtual void applyPortMode( MidiPort * _port );
virtual void applyPortName( MidiPort * _port );
virtual void addPort( midiPort * _port );
virtual void addPort( MidiPort * _port );
// re-implemented methods HAVE to call removePort() of base-class!!
virtual void removePort( midiPort * _port );
virtual void removePort( MidiPort * _port );
// returns whether client works with raw-MIDI, only needs to be
// re-implemented by midiClientRaw for returning TRUE
virtual bool isRaw( void ) const
// re-implemented by MidiClientRaw for returning true
virtual bool isRaw() const
{
return( FALSE );
return false;
}
// if not raw-client, return all readable/writable ports
virtual QStringList readablePorts( void ) const
virtual QStringList readablePorts() const
{
return QStringList();
}
virtual QStringList writablePorts( void ) const
virtual QStringList writablePorts() const
{
return QStringList();
}
// (un)subscribe given midiPort to/from destination-port
virtual void subscribeReadablePort( midiPort * _port,
// (un)subscribe given MidiPort to/from destination-port
virtual void subscribeReadablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe = TRUE );
virtual void subscribeWritablePort( midiPort * _port,
bool _subscribe = true );
virtual void subscribeWritablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe = TRUE );
bool _subscribe = true );
// qobject-derived classes can use this for make a slot being
// connected to signal of non-raw-MIDI-client if port-lists change
@@ -98,7 +97,7 @@ public:
// tries to open either MIDI-driver from config-file or (if it fails)
// any other working
static midiClient * openMidiClient( void );
static MidiClient * openMidiClient();
class setupWidget : public tabWidget
@@ -115,9 +114,9 @@ public:
{
}
virtual void saveSettings( void ) = 0;
virtual void saveSettings() = 0;
virtual void show( void )
virtual void show()
{
parentWidget()->show();
QWidget::show();
@@ -127,7 +126,7 @@ public:
protected:
QVector<midiPort *> m_midiPorts;
QVector<MidiPort *> m_midiPorts;
} ;
@@ -137,16 +136,16 @@ protected:
const Uint8 RAW_MIDI_PARSE_BUF_SIZE = 16;
class midiClientRaw : public midiClient
class MidiClientRaw : public MidiClient
{
public:
midiClientRaw( void );
virtual ~midiClientRaw();
MidiClientRaw();
virtual ~MidiClientRaw();
// we are raw-clients for sure!
virtual bool isRaw( void ) const
virtual bool isRaw() const
{
return( TRUE );
return true;
}
@@ -163,7 +162,7 @@ private:
void processParsedEvent();
virtual void processOutEvent( const midiEvent & _me,
const midiTime & _time,
const midiPort * _port );
const MidiPort * _port );
// small helper function returning length of a certain event - this
// is neccessary for parsing raw-MIDI-data

View File

@@ -29,11 +29,11 @@
#include "automatable_model.h"
#include "Controller.h"
#include "midi_event_processor.h"
#include "midi_port.h"
#include "MidiEventProcessor.h"
#include "MidiPort.h"
class midiPort;
class MidiPort;
class MidiController : public Controller, public MidiEventProcessor
@@ -57,7 +57,7 @@ public:
virtual QString nodeName( void ) const;
// Used by controllerConnectionDialog to copy
void subscribeReadablePorts( const midiPort::map & _map );
void subscribeReadablePorts( const MidiPort::Map & _map );
public slots:
@@ -70,7 +70,7 @@ protected:
virtual float value( int _offset );
midiPort m_midiPort;
MidiPort m_midiPort;
float m_lastValue;

View File

@@ -1,8 +1,8 @@
/*
* midi_dummy.h - dummy MIDI-driver
* MidiDummy.h - dummy MIDI-driver
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,36 +22,34 @@
*
*/
#ifndef _MIDI_DUMMY_H
#define _MIDI_DUMMY_H
#include "midi_client.h"
#include "MidiClient.h"
class midiDummy : public midiClientRaw
class MidiDummy : public MidiClientRaw
{
public:
midiDummy( void )
MidiDummy()
{
}
virtual ~midiDummy()
virtual ~MidiDummy()
{
}
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"Dummy (no MIDI support)" ) );
}
class setupWidget : public midiClient::setupWidget
class setupWidget : public MidiClient::setupWidget
{
public:
setupWidget( QWidget * _parent ) :
midiClientRaw::setupWidget( midiDummy::name(), _parent )
MidiClientRaw::setupWidget( MidiDummy::name(), _parent )
{
}
@@ -59,11 +57,11 @@ public:
{
}
virtual void saveSettings( void )
virtual void saveSettings()
{
}
virtual void show( void )
virtual void show()
{
parentWidget()->hide();
QWidget::show();

View File

@@ -1,5 +1,5 @@
/*
* midi_event_processor.h - base-class for midi-processing classes
* MidiEventProcessor.h - base-class for midi-processing classes
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*

View File

@@ -1,8 +1,8 @@
/*
* midi_oss.h - OSS-raw-midi-client
* MidiOss.h - OSS raw MIDI client
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _MIDI_OSS_H
#define _MIDI_OSS_H
@@ -33,35 +32,35 @@
#include <QtCore/QThread>
#include <QtCore/QFile>
#include "midi_client.h"
#include "MidiClient.h"
class QLineEdit;
class midiOSS : public midiClientRaw, public QThread
class MidiOss : public MidiClientRaw, public QThread
{
public:
midiOSS( void );
virtual ~midiOSS();
MidiOss();
virtual ~MidiOss();
static QString probeDevice( void );
static QString probeDevice();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
"OSS Raw-MIDI (Open Sound System)" ) );
}
class setupWidget : public midiClientRaw::setupWidget
class setupWidget : public MidiClientRaw::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void );
virtual void saveSettings();
private:
QLineEdit * m_device;
@@ -71,7 +70,7 @@ public:
protected:
virtual void sendByte( const Uint8 _c );
virtual void run( void );
virtual void run();
private:

View File

@@ -1,9 +1,9 @@
/*
* midi_port.h - abstraction of MIDI-ports which are part of LMMS's MIDI-
* sequencing system
* MidiPort.h - abstraction of MIDI ports which are part of LMMS's MIDI-
* sequencing system
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,7 +23,6 @@
*
*/
#ifndef _MIDI_PORT_H
#define _MIDI_PORT_H
@@ -35,14 +34,14 @@
#include "automatable_model.h"
class midiClient;
class MidiClient;
class MidiEventProcessor;
class midiPortMenu;
class MidiPortMenu;
class midiTime;
// class for abstraction of MIDI-port
class midiPort : public model, public serializingObject
class MidiPort : public model, public serializingObject
{
Q_OBJECT
mapPropertyFromModel(int,inputChannel,setInputChannel,
@@ -62,7 +61,7 @@ class midiPort : public model, public serializingObject
mapPropertyFromModel(bool,isReadable,setReadable,m_readableModel);
mapPropertyFromModel(bool,isWritable,setWritable,m_writableModel);
public:
typedef QMap<QString, bool> map;
typedef QMap<QString, bool> Map;
enum Modes
{
@@ -72,12 +71,12 @@ public:
Duplex // both directions
} ;
midiPort( const QString & _name,
midiClient * _mc,
MidiPort( const QString & _name,
MidiClient * _mc,
MidiEventProcessor * _mep,
model * _parent = NULL,
Modes _mode = Disabled );
virtual ~midiPort();
virtual ~MidiPort();
void setName( const QString & _name );
@@ -120,18 +119,18 @@ public:
void subscribeWritablePort( const QString & _port,
bool _subscribe = TRUE );
const map & readablePorts() const
const Map & readablePorts() const
{
return m_readablePorts;
}
const map & writablePorts() const
const Map & writablePorts() const
{
return m_writablePorts;
}
midiPortMenu * m_readablePortsMenu;
midiPortMenu * m_writablePortsMenu;
MidiPortMenu * m_readablePortsMenu;
MidiPortMenu * m_writablePortsMenu;
public slots:
@@ -145,7 +144,7 @@ private slots:
private:
midiClient * m_midiClient;
MidiClient * m_midiClient;
MidiEventProcessor * m_midiEventProcessor;
Modes m_mode;
@@ -160,8 +159,8 @@ private:
boolModel m_readableModel;
boolModel m_writableModel;
map m_readablePorts;
map m_writablePorts;
Map m_readablePorts;
Map m_writablePorts;
friend class ControllerConnectionDialog;
@@ -177,7 +176,7 @@ signals:
} ;
typedef QList<midiPort *> midiPortList;
typedef QList<MidiPort *> MidiPortList;
#endif

View File

@@ -1,9 +1,9 @@
/*
* midi_port_menu.h - a menu for subscribing a midiPort to several external
* MIDI ports
* MidiPortMenu.h - a menu for subscribing a MidiPort to several external
* MIDI ports
*
* Copyright (c) 2008-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,36 +23,35 @@
*
*/
#ifndef _MIDI_PORT_MENU_H
#define _MIDI_PORT_MENU_H
#include <QtGui/QMenu>
#include "mv_base.h"
#include "midi_port.h"
#include "MidiPort.h"
class QAction;
class midiPortMenu : public QMenu, public modelView
class MidiPortMenu : public QMenu, public modelView
{
Q_OBJECT
public:
midiPortMenu( midiPort::Modes _mode );
virtual ~midiPortMenu();
MidiPortMenu( MidiPort::Modes _mode );
virtual ~MidiPortMenu();
protected slots:
void activatedPort( QAction * _item );
void updatePorts( void );
void updatePorts();
private:
virtual void modelChanged( void );
virtual void modelChanged();
midiPort::Modes m_mode;
MidiPort::Modes m_mode;
} ;

View File

@@ -1,8 +1,8 @@
/*
* midi_winmm.h - WinMM MIDI client
* MidiWinMM.h - WinMM MIDI client
*
* Copyright (c) 2008-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _MIDI_WINMM_H
#define _MIDI_WINMM_H
@@ -33,58 +32,58 @@
#include <mmsystem.h>
#endif
#include "midi_client.h"
#include "midi_port.h"
#include "MidiClient.h"
#include "MidiPort.h"
class QLineEdit;
class midiWinMM : public QObject, public midiClient
class MidiWinMM : public QObject, public MidiClient
{
Q_OBJECT
public:
midiWinMM( void );
virtual ~midiWinMM();
MidiWinMM();
virtual ~MidiWinMM();
static QString probeDevice( void );
static QString probeDevice();
inline static QString name( void )
inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget", "WinMM MIDI" ) );
return QT_TRANSLATE_NOOP( "setupWidget", "WinMM MIDI" );
}
virtual void processOutEvent( const midiEvent & _me,
const midiTime & _time,
const midiPort * _port );
const MidiPort * _port );
virtual void applyPortMode( midiPort * _port );
virtual void removePort( midiPort * _port );
virtual void applyPortMode( MidiPort * _port );
virtual void removePort( MidiPort * _port );
#ifdef LMMS_BUILD_WIN32
// list devices as ports
virtual QStringList readablePorts( void ) const
virtual QStringList readablePorts() const
{
return( m_inputDevices.values() );
return m_inputDevices.values();
}
virtual QStringList writeblePorts( void ) const
virtual QStringList writeblePorts() const
{
return( m_outputDevices.values() );
return m_outputDevices.values();
}
#endif
// (un)subscribe given midiPort to/from destination-port
virtual void subscribeReadablePort( midiPort * _port,
// (un)subscribe given MidiPort to/from destination-port
virtual void subscribeReadablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe = TRUE );
virtual void subscribeWritablePort( midiPort * _port,
bool _subscribe = true );
virtual void subscribeWritablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe = TRUE );
bool _subscribe = true );
virtual void connectRPChanged( QObject * _receiver,
const char * _member )
{
@@ -99,19 +98,19 @@ public:
_receiver, _member );
}
virtual bool isRaw( void ) const
virtual bool isRaw() const
{
return( FALSE );
return false;
}
class setupWidget : public midiClient::setupWidget
class setupWidget : public MidiClient::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();
virtual void saveSettings( void )
virtual void saveSettings()
{
}
@@ -119,12 +118,12 @@ public:
private:// slots:
void updateDeviceList( void );
void updateDeviceList();
private:
void openDevices( void );
void closeDevices( void );
void openDevices();
void closeDevices();
#ifdef LMMS_BUILD_WIN32
static void WINAPI CALLBACK inputCallback( HMIDIIN _hm, UINT _msg,
@@ -138,14 +137,14 @@ private:
#endif
// subscriptions
typedef QMap<QString, midiPortList> subMap;
subMap m_inputSubs;
subMap m_outputSubs;
typedef QMap<QString, MidiPortList> SubMap;
SubMap m_inputSubs;
SubMap m_outputSubs;
signals:
void readablePortsChanged( void );
void writablePortsChanged( void );
void readablePortsChanged();
void writablePortsChanged();
} ;

View File

@@ -1,8 +1,8 @@
/*
* project_renderer.h - projectRenderer-class for easily rendering projects
* ProjectRenderer.h - ProjectRenderer class for easily rendering projects
*
* Copyright (c) 2008-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -25,11 +25,11 @@
#ifndef _PROJECT_RENDERER_H
#define _PROJECT_RENDERER_H
#include "audio_file_device.h"
#include "AudioFileDevice.h"
#include "lmmsconfig.h"
class projectRenderer : public QThread
class ProjectRenderer : public QThread
{
Q_OBJECT
public:
@@ -47,14 +47,14 @@ public:
NumDepths
} ;
struct outputSettings
struct OutputSettings
{
sample_rate_t samplerate;
bool vbr;
int bitrate;
Depths depth;
outputSettings( sample_rate_t _sr, bool _vbr, int _bitrate,
OutputSettings( sample_rate_t _sr, bool _vbr, int _bitrate,
Depths _d ) :
samplerate( _sr ),
vbr( _vbr ),
@@ -65,13 +65,13 @@ public:
} ;
projectRenderer( const mixer::qualitySettings & _qs,
const outputSettings & _os,
ProjectRenderer( const mixer::qualitySettings & _qs,
const OutputSettings & _os,
ExportFileFormats _file_format,
const QString & _out_file );
virtual ~projectRenderer();
virtual ~ProjectRenderer();
bool isReady( void ) const
bool isReady() const
{
return m_fileDev != NULL;
}
@@ -81,10 +81,10 @@ public:
public slots:
void startProcessing( void );
void abortProcessing( void );
void startProcessing();
void abortProcessing();
void updateConsoleProgress( void );
void updateConsoleProgress();
signals:
@@ -92,9 +92,9 @@ signals:
private:
virtual void run( void );
virtual void run();
audioFileDevice * m_fileDev;
AudioFileDevice * m_fileDev;
mixer::qualitySettings m_qualitySettings;
mixer::qualitySettings m_oldQualitySettings;
@@ -104,15 +104,15 @@ private:
} ;
struct fileEncodeDevice
struct FileEncodeDevice
{
projectRenderer::ExportFileFormats m_fileFormat;
ProjectRenderer::ExportFileFormats m_fileFormat;
const char * m_description;
const char * m_extension;
audioFileDeviceInstantiaton m_getDevInst;
AudioFileDeviceInstantiaton m_getDevInst;
} ;
extern fileEncodeDevice __fileEncodeDevices[];
extern FileEncodeDevice __fileEncodeDevices[];
#endif

View File

@@ -31,7 +31,7 @@
#include "ui_export_project.h"
class projectRenderer;
class ProjectRenderer;
class exportProjectDialog : public QDialog, public Ui::ExportProjectDialog
@@ -54,7 +54,7 @@ private slots:
private:
QString m_fileName;
projectRenderer * m_renderer;
ProjectRenderer * m_renderer;
} ;

View File

@@ -3,7 +3,7 @@
* which holds an instrument-plugin
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,17 +23,16 @@
*
*/
#ifndef _INSTRUMENT_TRACK_H
#define _INSTRUMENT_TRACK_H
#include <QtGui/QPushButton>
#include "audio_port.h"
#include "AudioPort.h"
#include "instrument_functions.h"
#include "instrument_sound_shaping.h"
#include "midi_event_processor.h"
#include "midi_port.h"
#include "MidiEventProcessor.h"
#include "MidiPort.h"
#include "note_play_handle.h"
#include "piano.h"
#include "track.h"
@@ -86,13 +85,13 @@ public:
// filter and so on
void playNote( notePlayHandle * _n, sampleFrame * _working_buffer );
QString instrumentName( void ) const;
inline const instrument * getInstrument( void ) const
QString instrumentName() const;
inline const instrument * getInstrument() const
{
return m_instrument;
}
inline instrument * getInstrument( void )
inline instrument * getInstrument()
{
return m_instrument;
}
@@ -107,7 +106,7 @@ public:
int masterKey( int _midi_key ) const;
// translate pitch to midi-pitch [0,16383]
inline int midiPitch( void ) const
inline int midiPitch() const
{
return (int)( ( m_pitchModel.value()+100 ) * 16383 ) / 200;
}
@@ -134,27 +133,27 @@ public:
// load instrument whose name matches given one
instrument * loadInstrument( const QString & _instrument_name );
inline audioPort * getAudioPort( void )
inline AudioPort * audioPort()
{
return &m_audioPort;
}
inline midiPort * getMidiPort( void )
inline MidiPort * midiPort()
{
return &m_midiPort;
}
intModel * baseNoteModel( void )
intModel * baseNoteModel()
{
return &m_baseNoteModel;
}
piano * getPiano( void )
piano * getPiano()
{
return &m_piano;
}
bool arpeggiatorEnabled( void ) const
bool arpeggiatorEnabled() const
{
return m_arpeggiator.m_arpEnabledModel.value();
}
@@ -162,50 +161,50 @@ public:
// simple helper for removing midiport-XML-node when loading presets
static void removeMidiPortNode( multimediaProject & _mmp );
floatModel * pitchModel( void )
floatModel * pitchModel()
{
return &m_pitchModel;
}
floatModel * volumeModel( void )
floatModel * volumeModel()
{
return &m_volumeModel;
}
floatModel * panningModel( void )
floatModel * panningModel()
{
return &m_panningModel;
}
intModel * effectChannelModel( void )
intModel * effectChannelModel()
{
return &m_effectChannelModel;
}
signals:
void instrumentChanged( void );
void newNote( void );
void instrumentChanged();
void newNote();
void noteOn( const note & _n );
void noteOff( const note & _n );
void nameChanged( void );
void nameChanged();
protected:
virtual QString nodeName( void ) const
virtual QString nodeName() const
{
return "instrumenttrack";
}
protected slots:
void updateBaseNote( void );
void updatePitch( void );
void updateBaseNote();
void updatePitch();
private:
audioPort m_audioPort;
midiPort m_midiPort;
AudioPort m_audioPort;
MidiPort m_midiPort;
notePlayHandle * m_notes[NumKeys];
int m_runningMidiNotes[NumKeys];
@@ -245,27 +244,27 @@ public:
instrumentTrackView( instrumentTrack * _it, trackContainerView * _tc );
virtual ~instrumentTrackView();
instrumentTrackWindow * getInstrumentTrackWindow( void );
instrumentTrackWindow * getInstrumentTrackWindow();
instrumentTrack * model( void )
instrumentTrack * model()
{
return castModel<instrumentTrack>();
}
const instrumentTrack * model( void ) const
const instrumentTrack * model() const
{
return castModel<instrumentTrack>();
}
QMenu * midiMenu( void )
QMenu * midiMenu()
{
return m_midiMenu;
}
void freeInstrumentTrackWindow( void );
void freeInstrumentTrackWindow();
static void cleanupWindowPool( void );
static void cleanupWindowPool();
protected:
@@ -275,12 +274,12 @@ protected:
private slots:
void toggleInstrumentWindow( bool _on );
void activityIndicatorPressed( void );
void activityIndicatorReleased( void );
void activityIndicatorPressed();
void activityIndicatorReleased();
void midiInSelected( void );
void midiOutSelected( void );
void midiConfigChanged( void );
void midiInSelected();
void midiOutSelected();
void midiConfigChanged();
private:
@@ -318,17 +317,17 @@ public:
virtual ~instrumentTrackWindow();
// parent for all internal tab-widgets
tabWidget * tabWidgetParent( void )
tabWidget * tabWidgetParent()
{
return m_tabWidget;
}
instrumentTrack * model( void )
instrumentTrack * model()
{
return castModel<instrumentTrack>();
}
const instrumentTrack * model( void ) const
const instrumentTrack * model() const
{
return castModel<instrumentTrack>();
}
@@ -347,8 +346,8 @@ public:
public slots:
void textChanged( const QString & _new_name );
void toggleVisibility( bool _on );
void updateName( void );
void updateInstrumentView( void );
void updateName();
void updateInstrumentView();
protected:
@@ -361,11 +360,11 @@ protected:
protected slots:
void saveSettingsBtnClicked( void );
void saveSettingsBtnClicked();
private:
virtual void modelChanged( void );
virtual void modelChanged();
instrumentTrack * m_track;
instrumentTrackView * m_itv;

View File

@@ -2,7 +2,7 @@
* mixer.h - audio-device-independent mixer for LMMS
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _MIXER_H
#define _MIXER_H
@@ -50,9 +49,9 @@
#include "fifo_buffer.h"
class audioDevice;
class midiClient;
class audioPort;
class AudioDevice;
class MidiClient;
class AudioPort;
const fpp_t DEFAULT_BUFFER_SIZE = 256;
@@ -145,7 +144,7 @@ public:
{
}
int sampleRateMultiplier( void ) const
int sampleRateMultiplier() const
{
switch( oversampling )
{
@@ -157,7 +156,7 @@ public:
return 1;
}
int libsrcInterpolation( void ) const
int libsrcInterpolation() const
{
switch( interpolation )
{
@@ -174,45 +173,45 @@ public:
}
} ;
void initDevices( void );
void clear( void );
void initDevices();
void clear();
// audio-device-stuff
inline const QString & audioDevName( void ) const
inline const QString & audioDevName() const
{
return m_audioDevName;
}
void setAudioDevice( audioDevice * _dev );
void setAudioDevice( audioDevice * _dev,
void setAudioDevice( AudioDevice * _dev );
void setAudioDevice( AudioDevice * _dev,
const struct qualitySettings & _qs,
bool _needs_fifo );
void restoreAudioDevice( void );
inline audioDevice * audioDev( void )
void restoreAudioDevice();
inline AudioDevice * audioDev()
{
return m_audioDev;
}
// audio-port-stuff
inline void addAudioPort( audioPort * _port )
inline void addAudioPort( AudioPort * _port )
{
lock();
m_audioPorts.push_back( _port );
unlock();
}
void removeAudioPort( audioPort * _port );
void removeAudioPort( AudioPort * _port );
// MIDI-client-stuff
inline const QString & midiClientName( void ) const
inline const QString & midiClientName() const
{
return m_midiClientName;
}
inline midiClient * getMidiClient( void )
inline MidiClient * midiClient()
{
return m_midiClient;
}
@@ -234,49 +233,49 @@ public:
void removePlayHandle( playHandle * _ph );
inline PlayHandleList & playHandles( void )
inline PlayHandleList & playHandles()
{
return m_playHandles;
}
void removePlayHandles( track * _track );
inline bool hasPlayHandles( void ) const
inline bool hasPlayHandles() const
{
return !m_playHandles.empty();
}
// methods providing information for other classes
inline fpp_t framesPerPeriod( void ) const
inline fpp_t framesPerPeriod() const
{
return m_framesPerPeriod;
}
inline const surroundSampleFrame * currentReadBuffer( void ) const
inline const surroundSampleFrame * currentReadBuffer() const
{
return m_readBuf;
}
inline int cpuLoad( void ) const
inline int cpuLoad() const
{
return m_cpuLoad;
}
const qualitySettings & currentQualitySettings( void ) const
const qualitySettings & currentQualitySettings() const
{
return m_qualitySettings;
}
sample_rate_t baseSampleRate( void ) const;
sample_rate_t outputSampleRate( void ) const;
sample_rate_t inputSampleRate( void ) const;
sample_rate_t processingSampleRate( void ) const;
sample_rate_t baseSampleRate() const;
sample_rate_t outputSampleRate() const;
sample_rate_t inputSampleRate() const;
sample_rate_t processingSampleRate() const;
inline float masterGain( void ) const
inline float masterGain() const
{
return m_masterGain;
}
@@ -302,22 +301,22 @@ public:
// methods needed by other threads to alter knob values, waveforms, etc
void lock( void )
void lock()
{
m_globalMutex.lock();
}
void unlock( void )
void unlock()
{
m_globalMutex.unlock();
}
void lockInputFrames( void )
void lockInputFrames()
{
m_inputFramesMutex.lock();
}
void unlockInputFrames( void )
void unlockInputFrames()
{
m_inputFramesMutex.unlock();
}
@@ -327,7 +326,7 @@ public:
const fpp_t _frames,
const f_cnt_t _offset,
stereoVolumeVector _volume_vector,
audioPort * _port );
AudioPort * _port );
static void clearAudioBuffer( sampleFrame * _ab,
const f_cnt_t _frames,
@@ -342,26 +341,26 @@ public:
static float peakValueRight( sampleFrame * _ab, const f_cnt_t _frames );
bool criticalXRuns( void ) const;
bool criticalXRuns() const;
inline bool hasFifoWriter( void ) const
inline bool hasFifoWriter() const
{
return m_fifoWriter != NULL;
}
void pushInputFrames( sampleFrame * _ab, const f_cnt_t _frames );
inline const sampleFrame * inputBuffer( void )
inline const sampleFrame * inputBuffer()
{
return m_inputBuffer[ m_inputBufferRead ];
}
inline f_cnt_t inputBufferFrames( void ) const
inline f_cnt_t inputBufferFrames() const
{
return m_inputBufferFrames[ m_inputBufferRead ];
}
inline const surroundSampleFrame * nextBuffer( void )
inline const surroundSampleFrame * nextBuffer()
{
return hasFifoWriter() ? m_fifo->read() : renderNextBuffer();
}
@@ -370,9 +369,9 @@ public:
signals:
void qualitySettingsChanged( void );
void sampleRateChanged( void );
void nextAudioBuffer( void );
void qualitySettingsChanged();
void sampleRateChanged();
void nextAudioBuffer();
private:
@@ -383,7 +382,7 @@ private:
public:
fifoWriter( mixer * _mixer, fifo * _fifo );
void finish( void );
void finish();
private:
@@ -391,27 +390,27 @@ private:
fifo * m_fifo;
volatile bool m_writing;
virtual void run( void );
virtual void run();
} ;
mixer( void );
mixer();
virtual ~mixer();
void startProcessing( bool _needs_fifo = true );
void stopProcessing( void );
void stopProcessing();
audioDevice * tryAudioDevices( void );
midiClient * tryMidiClients( void );
AudioDevice * tryAudioDevices();
MidiClient * tryMidiClients();
const surroundSampleFrame * renderNextBuffer( void );
const surroundSampleFrame * renderNextBuffer();
QVector<audioPort *> m_audioPorts;
QVector<AudioPort *> m_audioPorts;
fpp_t m_framesPerPeriod;
@@ -450,12 +449,12 @@ private:
float m_masterGain;
audioDevice * m_audioDev;
audioDevice * m_oldAudioDev;
AudioDevice * m_audioDev;
AudioDevice * m_oldAudioDev;
QString m_audioDevName;
midiClient * m_midiClient;
MidiClient * m_midiClient;
QString m_midiClientName;

View File

@@ -34,7 +34,7 @@ class bbTrack;
class pattern;
class sampleTCO;
class track;
class audioPort;
class AudioPort;
class samplePlayHandle : public playHandle
@@ -85,7 +85,7 @@ private:
f_cnt_t m_frame;
sampleBuffer::handleState m_state;
audioPort * m_audioPort;
AudioPort * m_audioPort;
const bool m_ownAudioPort;
floatModel m_defaultVolumeModel;

View File

@@ -2,8 +2,8 @@
* sample_track.h - class sampleTrack, a track which provides arrangement of
* samples
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,13 +23,12 @@
*
*/
#ifndef _SAMPLE_TRACK_H
#define _SAMPLE_TRACK_H
#include <QtGui/QDialog>
#include "audio_port.h"
#include "AudioPort.h"
#include "track.h"
class effectRackView;
@@ -46,21 +45,21 @@ public:
virtual ~sampleTCO();
virtual void changeLength( const midiTime & _length );
const QString & sampleFile( void ) const;
const QString & sampleFile() const;
virtual void saveSettings( QDomDocument & _doc, QDomElement & _parent );
virtual void loadSettings( const QDomElement & _this );
inline virtual QString nodeName( void ) const
inline virtual QString nodeName() const
{
return( "sampletco" );
return "sampletco";
}
sampleBuffer * getSampleBuffer( void )
sampleBuffer * getSampleBuffer()
{
return( m_sampleBuffer );
return m_sampleBuffer;
}
midiTime sampleLength( void ) const;
midiTime sampleLength() const;
virtual trackContentObjectView * createView( trackView * _tv );
@@ -69,7 +68,7 @@ public slots:
void setSampleBuffer( sampleBuffer * _sb );
void setSampleFile( const QString & _sf );
void updateLength( bpm_t = 0 );
void toggleRecord( void );
void toggleRecord();
private:
@@ -81,7 +80,7 @@ private:
signals:
void sampleChanged( void );
void sampleChanged();
} ;
@@ -96,7 +95,7 @@ public:
public slots:
void updateSample( void );
void updateSample();
protected:
@@ -134,19 +133,19 @@ public:
QDomElement & _parent );
virtual void loadTrackSpecificSettings( const QDomElement & _this );
inline audioPort * getAudioPort( void )
inline AudioPort * audioPort()
{
return( &m_audioPort );
return &m_audioPort;
}
virtual QString nodeName( void ) const
virtual QString nodeName() const
{
return( "sampletrack" );
return "sampletrack";
}
private:
audioPort m_audioPort;
AudioPort m_audioPort;
floatModel m_volumeModel;
@@ -165,7 +164,7 @@ public:
public slots:
void showEffects( void );
void showEffects();
private:

View File

@@ -1,8 +1,8 @@
/*
* setup_dialog.h - dialog for setting up LMMS
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,7 +22,6 @@
*
*/
#ifndef _SETUP_DIALOG_H
#define _SETUP_DIALOG_H
@@ -30,8 +29,8 @@
#include <QtCore/QMap>
#include "lmmsconfig.h"
#include "audio_device.h"
#include "midi_client.h"
#include "AudioDevice.h"
#include "MidiClient.h"
class QComboBox;
@@ -150,16 +149,16 @@ private:
bool m_disableChActInd;
bool m_manualChPiano;
typedef QMap<QString, audioDevice::setupWidget *> aswMap;
typedef QMap<QString, midiClient::setupWidget *> mswMap;
typedef QMap<QString, AudioDevice::setupWidget *> AswMap;
typedef QMap<QString, MidiClient::setupWidget *> MswMap;
typedef QMap<QString, QString> trMap;
QComboBox * m_audioInterfaces;
aswMap m_audioIfaceSetupWidgets;
AswMap m_audioIfaceSetupWidgets;
trMap m_audioIfaceNames;
QComboBox * m_midiInterfaces;
mswMap m_midiIfaceSetupWidgets;
MswMap m_midiIfaceSetupWidgets;
trMap m_midiIfaceNames;

View File

@@ -22,25 +22,21 @@
*
*/
#include "ladspa_description.h"
#include <QtGui/QGroupBox>
#include <QtGui/QLabel>
#include <QtGui/QListWidget>
#include <QtGui/QScrollArea>
#include <QtGui/QVBoxLayout>
#include "audio_device.h"
#include "AudioDevice.h"
#include "engine.h"
#include "ladspa_2_lmms.h"
#include "mixer.h"
ladspaDescription::ladspaDescription( QWidget * _parent,
ladspaPluginType _type ) :
QWidget( _parent )

View File

@@ -3,7 +3,7 @@
*
* Copyright (c) 2006-2008 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -28,7 +28,7 @@
#include "ladspa_effect.h"
#include "mmp.h"
#include "audio_device.h"
#include "AudioDevice.h"
#include "config_mgr.h"
#include "ladspa_2_lmms.h"
#include "ladspa_control.h"

View File

@@ -4,7 +4,7 @@
* hosting LADSPA-plugins
*
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2006-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -25,15 +25,12 @@
*
*/
#include "ladspa_subplugin_features.h"
#include <QtGui/QHBoxLayout>
#include <QtGui/QLabel>
#include "audio_device.h"
#include "AudioDevice.h"
#include "engine.h"
#include "ladspa_2_lmms.h"
#include "ladspa_base.h"

View File

@@ -28,11 +28,7 @@
*
*/
#include <QtXml/QDomDocument>
#include "lb302.h"
#include "audio_port.h"
#include "automatable_button.h"
#include "engine.h"
#include "instrument_play_handle.h"

View File

@@ -1,8 +1,8 @@
/*
* project_renderer.cpp - projectRenderer-class for easily rendering projects
* ProjectRenderer.cpp - ProjectRenderer-class for easily rendering projects
*
* Copyright (c) 2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -25,29 +25,29 @@
#include <QtCore/QFile>
#include "project_renderer.h"
#include "ProjectRenderer.h"
#include "song.h"
#include "engine.h"
#include "audio_file_wave.h"
#include "audio_file_ogg.h"
#include "AudioFileWave.h"
#include "AudioFileOgg.h"
#ifdef LMMS_HAVE_SCHED_H
#include <sched.h>
#endif
fileEncodeDevice __fileEncodeDevices[] =
FileEncodeDevice __fileEncodeDevices[] =
{
{ projectRenderer::WaveFile,
QT_TRANSLATE_NOOP( "projectRenderer", "WAV-File (*.wav)" ),
".wav", &audioFileWave::getInst },
{ projectRenderer::OggFile,
QT_TRANSLATE_NOOP( "projectRenderer", "Compressed OGG-File (*.ogg)" ),
{ ProjectRenderer::WaveFile,
QT_TRANSLATE_NOOP( "ProjectRenderer", "WAV-File (*.wav)" ),
".wav", &AudioFileWave::getInst },
{ ProjectRenderer::OggFile,
QT_TRANSLATE_NOOP( "ProjectRenderer", "Compressed OGG-File (*.ogg)" ),
".ogg",
#ifdef LMMS_HAVE_OGGVORBIS
&audioFileOgg::getInst
&AudioFileOgg::getInst
#else
NULL
#endif
@@ -55,15 +55,15 @@ fileEncodeDevice __fileEncodeDevices[] =
// ... insert your own file-encoder-infos here... may be one day the
// user can add own encoders inside the program...
{ projectRenderer::NumFileFormats, NULL, NULL, NULL }
{ ProjectRenderer::NumFileFormats, NULL, NULL, NULL }
} ;
projectRenderer::projectRenderer( const mixer::qualitySettings & _qs,
const outputSettings & _os,
ProjectRenderer::ProjectRenderer( const mixer::qualitySettings & _qs,
const OutputSettings & _os,
ExportFileFormats _file_format,
const QString & _out_file ) :
QThread( engine::getMixer() ),
@@ -71,21 +71,21 @@ projectRenderer::projectRenderer( const mixer::qualitySettings & _qs,
m_qualitySettings( _qs ),
m_oldQualitySettings( engine::getMixer()->currentQualitySettings() ),
m_progress( 0 ),
m_abort( FALSE )
m_abort( false )
{
if( __fileEncodeDevices[_file_format].m_getDevInst == NULL )
{
return;
}
bool success_ful = FALSE;
bool success_ful = false;
m_fileDev = __fileEncodeDevices[_file_format].m_getDevInst(
_os.samplerate, DEFAULT_CHANNELS, success_ful,
_out_file, _os.vbr,
_os.bitrate, _os.bitrate - 64, _os.bitrate + 64,
_os.depth == Depth_32Bit ? 32 : 16,
engine::getMixer() );
if( success_ful == FALSE )
if( success_ful == false )
{
delete m_fileDev;
m_fileDev = NULL;
@@ -96,7 +96,7 @@ projectRenderer::projectRenderer( const mixer::qualitySettings & _qs,
projectRenderer::~projectRenderer()
ProjectRenderer::~ProjectRenderer()
{
}
@@ -105,7 +105,7 @@ projectRenderer::~projectRenderer()
// little help-function for getting file-format from a file-extension (only for
// registered file-encoders)
projectRenderer::ExportFileFormats projectRenderer::getFileFormatFromExtension(
ProjectRenderer::ExportFileFormats ProjectRenderer::getFileFormatFromExtension(
const QString & _ext )
{
int idx = 0;
@@ -124,7 +124,7 @@ projectRenderer::ExportFileFormats projectRenderer::getFileFormatFromExtension(
void projectRenderer::startProcessing( void )
void ProjectRenderer::startProcessing()
{
if( isReady() )
{
@@ -132,7 +132,7 @@ void projectRenderer::startProcessing( void )
// make slots connected to sampleRateChanged()-signals being
// called immediately
engine::getMixer()->setAudioDevice( m_fileDev,
m_qualitySettings, FALSE );
m_qualitySettings, false );
start(
#ifndef LMMS_BUILD_WIN32
@@ -144,7 +144,7 @@ void projectRenderer::startProcessing( void )
void projectRenderer::run( void )
void ProjectRenderer::run()
{
#if 0
#ifdef LMMS_BUILD_LINUX
@@ -164,8 +164,8 @@ void projectRenderer::run( void )
m_progress = 0;
const int sl = ( engine::getSong()->length() + 1 ) * 192;
while( engine::getSong()->isExportDone() == FALSE &&
engine::getSong()->isExporting() == TRUE
while( engine::getSong()->isExportDone() == false &&
engine::getSong()->isExporting() == true
&& !m_abort )
{
m_fileDev->processNextBuffer();
@@ -194,14 +194,14 @@ void projectRenderer::run( void )
void projectRenderer::abortProcessing( void )
void ProjectRenderer::abortProcessing()
{
m_abort = TRUE;
m_abort = true;
}
void projectRenderer::updateConsoleProgress( void )
void ProjectRenderer::updateConsoleProgress()
{
const int cols = 50;
static int rot = 0;
@@ -226,5 +226,5 @@ void projectRenderer::updateConsoleProgress( void )
#include "moc_project_renderer.cxx"
#include "moc_ProjectRenderer.cxx"

View File

@@ -1,10 +1,8 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* audio_alsa.cpp - device-class which implements ALSA-PCM-output
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,12 +22,10 @@
*
*/
#include <QtGui/QLineEdit>
#include <QtGui/QLabel>
#include "audio_alsa.h"
#include "AudioAlsa.h"
#ifdef LMMS_HAVE_ALSA
@@ -42,8 +38,8 @@
audioALSA::audioALSA( bool & _success_ful, mixer * _mixer ) :
audioDevice( tLimit<ch_cnt_t>(
AudioAlsa::AudioAlsa( bool & _success_ful, mixer * _mixer ) :
AudioDevice( tLimit<ch_cnt_t>(
configManager::inst()->value( "audioalsa", "channels" ).toInt(),
DEFAULT_CHANNELS, SURROUND_CHANNELS ),
_mixer ),
@@ -88,7 +84,7 @@ audioALSA::audioALSA( bool & _success_ful, mixer * _mixer ) :
audioALSA::~audioALSA()
AudioAlsa::~AudioAlsa()
{
stopProcessing();
if( m_handle != NULL )
@@ -110,24 +106,24 @@ audioALSA::~audioALSA()
QString audioALSA::probeDevice( void )
QString AudioAlsa::probeDevice()
{
QString dev = configManager::inst()->value( "audioalsa", "device" );
if( dev == "" )
{
if( getenv( "AUDIODEV" ) != NULL )
{
return( getenv( "AUDIODEV" ) );
return getenv( "AUDIODEV" );
}
return( "default" );
return "default";
}
return( dev );
return dev;
}
int audioALSA::handleError( int _err )
int AudioAlsa::handleError( int _err )
{
if( _err == -EPIPE )
{
@@ -155,13 +151,13 @@ int audioALSA::handleError( int _err )
}
return ( 0 );
}
return( _err );
return _err;
}
void audioALSA::startProcessing( void )
void AudioAlsa::startProcessing()
{
if( !isRunning() )
{
@@ -172,7 +168,7 @@ void audioALSA::startProcessing( void )
void audioALSA::stopProcessing( void )
void AudioAlsa::stopProcessing()
{
if( isRunning() )
{
@@ -184,7 +180,7 @@ void audioALSA::stopProcessing( void )
void audioALSA::applyQualitySettings( void )
void AudioAlsa::applyQualitySettings()
{
if( hqAudio() )
{
@@ -221,13 +217,13 @@ void audioALSA::applyQualitySettings( void )
}
}
audioDevice::applyQualitySettings();
AudioDevice::applyQualitySettings();
}
void audioALSA::run( void )
void AudioAlsa::run()
{
surroundSampleFrame * temp =
new surroundSampleFrame[getMixer()->framesPerPeriod()];
@@ -308,7 +304,7 @@ void audioALSA::run( void )
int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
int AudioAlsa::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
{
int err, dir;
@@ -317,7 +313,7 @@ int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
{
printf( "Broken configuration for playback: no configurations "
"available: %s\n", snd_strerror( err ) );
return( err );
return err;
}
// set the interleaved read/write format
@@ -326,7 +322,7 @@ int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
{
printf( "Access type not available for playback: %s\n",
snd_strerror( err ) );
return( err );
return err;
}
// set the sample format
@@ -338,7 +334,7 @@ int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
{
printf( "Neither little- nor big-endian available for "
"playback: %s\n", snd_strerror( err ) );
return( err );
return err;
}
m_convertEndian = isLittleEndian();
}
@@ -354,7 +350,7 @@ int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
printf( "Channel count (%i) not available for playbacks: %s\n"
"(Does your soundcard not support surround?)\n",
_channels, snd_strerror( err ) );
return( err );
return err;
}
// set the sample rate
@@ -366,7 +362,7 @@ int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
{
printf( "Could not set sample rate: %s\n",
snd_strerror( err ) );
return( err );
return err;
}
}
@@ -379,7 +375,7 @@ int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
{
printf( "Unable to set period size %lu for playback: %s\n",
m_periodSize, snd_strerror( err ) );
return( err );
return err;
}
dir = 0;
err = snd_pcm_hw_params_get_period_size( m_hwParams, &m_periodSize,
@@ -423,7 +419,7 @@ int audioALSA::setHWParams( const ch_cnt_t _channels, snd_pcm_access_t _access )
int audioALSA::setSWParams( void )
int AudioAlsa::setSWParams()
{
int err;
@@ -432,7 +428,7 @@ int audioALSA::setSWParams( void )
{
printf( "Unable to determine current swparams for playback: %s"
"\n", snd_strerror( err ) );
return( err );
return err;
}
// start the transfer when a period is full
@@ -441,7 +437,7 @@ int audioALSA::setSWParams( void )
{
printf( "Unable to set start threshold mode for playback: %s\n",
snd_strerror( err ) );
return( err );
return err;
}
// allow the transfer when at least m_periodSize samples can be
@@ -451,7 +447,7 @@ int audioALSA::setSWParams( void )
{
printf( "Unable to set avail min for playback: %s\n",
snd_strerror( err ) );
return( err );
return err;
}
// align all transfers to 1 sample
@@ -462,7 +458,7 @@ int audioALSA::setSWParams( void )
{
printf( "Unable to set transfer align for playback: %s\n",
snd_strerror( err ) );
return( err );
return err;
}
#endif
@@ -471,20 +467,20 @@ int audioALSA::setSWParams( void )
{
printf( "Unable to set sw params for playback: %s\n",
snd_strerror( err ) );
return( err );
return err;
}
return( 0 ); // all ok
return 0; // all ok
}
audioALSA::setupWidget::setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( audioALSA::name(), _parent )
AudioAlsa::setupWidget::setupWidget( QWidget * _parent ) :
AudioDevice::setupWidget( AudioAlsa::name(), _parent )
{
m_device = new QLineEdit( audioALSA::probeDevice(), this );
m_device = new QLineEdit( AudioAlsa::probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );
QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
@@ -507,7 +503,7 @@ audioALSA::setupWidget::setupWidget( QWidget * _parent ) :
audioALSA::setupWidget::~setupWidget()
AudioAlsa::setupWidget::~setupWidget()
{
}
@@ -515,7 +511,7 @@ audioALSA::setupWidget::~setupWidget()
void audioALSA::setupWidget::saveSettings( void )
void AudioAlsa::setupWidget::saveSettings()
{
configManager::inst()->setValue( "audioalsa", "device",
m_device->text() );
@@ -526,5 +522,3 @@ void audioALSA::setupWidget::saveSettings( void )
#endif
#endif

View File

@@ -1,10 +1,8 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* audio_device.cpp - base-class for audio-devices used by LMMS-mixer
* AudioDevice.cpp - base-class for audio-devices used by LMMS-mixer
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,17 +22,15 @@
*
*/
#include <cstring>
#include "audio_device.h"
#include "AudioDevice.h"
#include "config_mgr.h"
#include "debug.h"
audioDevice::audioDevice( const ch_cnt_t _channels, mixer * _mixer ) :
AudioDevice::AudioDevice( const ch_cnt_t _channels, mixer * _mixer ) :
m_supportsCapture( false ),
m_sampleRate( _mixer->processingSampleRate() ),
m_channels( _channels ),
@@ -53,7 +49,7 @@ audioDevice::audioDevice( const ch_cnt_t _channels, mixer * _mixer ) :
audioDevice::~audioDevice()
AudioDevice::~AudioDevice()
{
src_delete( m_srcState );
delete[] m_buffer;
@@ -65,7 +61,7 @@ audioDevice::~audioDevice()
void audioDevice::processNextBuffer( void )
void AudioDevice::processNextBuffer()
{
const fpp_t frames = getNextBuffer( m_buffer );
if( frames )
@@ -74,20 +70,20 @@ void audioDevice::processNextBuffer( void )
}
else
{
m_inProcess = FALSE;
m_inProcess = false;
}
}
fpp_t audioDevice::getNextBuffer( surroundSampleFrame * _ab )
fpp_t AudioDevice::getNextBuffer( surroundSampleFrame * _ab )
{
fpp_t frames = getMixer()->framesPerPeriod();
const surroundSampleFrame * b = getMixer()->nextBuffer();
if( !b )
{
return( 0 );
return 0;
}
// make sure, no other thread is accessing device
@@ -114,13 +110,13 @@ fpp_t audioDevice::getNextBuffer( surroundSampleFrame * _ab )
delete[] b;
}
return( frames );
return frames;
}
void audioDevice::stopProcessing( void )
void AudioDevice::stopProcessing()
{
if( getMixer()->hasFifoWriter() )
{
@@ -134,7 +130,7 @@ void audioDevice::stopProcessing( void )
void audioDevice::applyQualitySettings( void )
void AudioDevice::applyQualitySettings()
{
src_delete( m_srcState );
@@ -150,28 +146,28 @@ void audioDevice::applyQualitySettings( void )
void audioDevice::registerPort( audioPort * )
void AudioDevice::registerPort( AudioPort * )
{
}
void audioDevice::unregisterPort( audioPort * _port )
void AudioDevice::unregisterPort( AudioPort * _port )
{
}
void audioDevice::renamePort( audioPort * )
void AudioDevice::renamePort( AudioPort * )
{
}
void audioDevice::resample( const surroundSampleFrame * _src,
void AudioDevice::resample( const surroundSampleFrame * _src,
const fpp_t _frames,
surroundSampleFrame * _dst,
const sample_rate_t _src_sr,
@@ -190,14 +186,14 @@ void audioDevice::resample( const surroundSampleFrame * _src,
int error;
if( ( error = src_process( m_srcState, &m_srcData ) ) )
{
printf( "audioDevice::resample(): error while resampling: %s\n",
printf( "AudioDevice::resample(): error while resampling: %s\n",
src_strerror( error ) );
}
}
Uint32 audioDevice::convertToS16( const surroundSampleFrame * _ab,
Uint32 AudioDevice::convertToS16( const surroundSampleFrame * _ab,
const fpp_t _frames,
const float _master_gain,
int_sample_t * _output_buffer,
@@ -236,13 +232,13 @@ Uint32 audioDevice::convertToS16( const surroundSampleFrame * _ab,
}
}
return( _frames * channels() * BYTES_PER_INT_SAMPLE );
return _frames * channels() * BYTES_PER_INT_SAMPLE;
}
void audioDevice::clearS16Buffer( int_sample_t * _outbuf, const fpp_t _frames )
void AudioDevice::clearS16Buffer( int_sample_t * _outbuf, const fpp_t _frames )
{
#ifdef LMMS_DEBUG
assert( _outbuf != NULL );
@@ -253,11 +249,9 @@ void audioDevice::clearS16Buffer( int_sample_t * _outbuf, const fpp_t _frames )
bool audioDevice::hqAudio( void ) const
bool AudioDevice::hqAudio() const
{
return( configManager::inst()->value( "mixer", "hqaudio" ).toInt() );
return configManager::inst()->value( "mixer", "hqaudio" ).toInt();
}
#endif

View File

@@ -1,9 +1,9 @@
/*
* audio_file_device.cpp - base-class for audio-device-classes which write
* their output into a file
* AudioFileDevice.cpp - base-class for audio-device-classes which write
* their output into a file
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,14 +23,13 @@
*
*/
#include <QtGui/QMessageBox>
#include "audio_file_device.h"
#include "AudioFileDevice.h"
#include "export_project_dialog.h"
audioFileDevice::audioFileDevice( const sample_rate_t _sample_rate,
AudioFileDevice::AudioFileDevice( const sample_rate_t _sample_rate,
const ch_cnt_t _channels,
const QString & _file,
const bool _use_vbr,
@@ -39,7 +38,7 @@ audioFileDevice::audioFileDevice( const sample_rate_t _sample_rate,
const bitrate_t _max_bitrate,
const int _depth,
mixer * _mixer ) :
audioDevice( _channels, _mixer ),
AudioDevice( _channels, _mixer ),
m_outputFile( _file ),
m_useVbr( _use_vbr ),
m_nomBitrate( _nom_bitrate ),
@@ -49,7 +48,7 @@ audioFileDevice::audioFileDevice( const sample_rate_t _sample_rate,
{
setSampleRate( _sample_rate );
if( m_outputFile.open( QFile::WriteOnly | QFile::Truncate ) == FALSE )
if( m_outputFile.open( QFile::WriteOnly | QFile::Truncate ) == false )
{
QMessageBox::critical( NULL,
exportProjectDialog::tr( "Could not open file" ),
@@ -68,7 +67,7 @@ audioFileDevice::audioFileDevice( const sample_rate_t _sample_rate,
audioFileDevice::~audioFileDevice()
AudioFileDevice::~AudioFileDevice()
{
m_outputFile.close();
}
@@ -76,7 +75,7 @@ audioFileDevice::~audioFileDevice()
Sint32 audioFileDevice::writeData( const void * _data, Sint32 _len )
Sint32 AudioFileDevice::writeData( const void * _data, Sint32 _len )
{
if( m_outputFile.isOpen() )
{

View File

@@ -1,12 +1,12 @@
/*
* audio_file_ogg.cpp - audio-device which encodes wave-stream and writes it
* into an OGG-file. This is used for song-export.
* AudioFileOgg.cpp - audio-device which encodes wave-stream and writes it
* into an OGG-file. This is used for song-export.
*
* This file is based on encode.c from vorbis-tools-source, for more information
* see below.
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -26,9 +26,7 @@
*
*/
#include "audio_file_ogg.h"
#include "AudioFileOgg.h"
#ifdef LMMS_HAVE_OGGVORBIS
@@ -37,7 +35,7 @@
#include <cstring>
audioFileOgg::audioFileOgg( const sample_rate_t _sample_rate,
AudioFileOgg::AudioFileOgg( const sample_rate_t _sample_rate,
const ch_cnt_t _channels,
bool & _success_ful,
const QString & _file,
@@ -47,7 +45,7 @@ audioFileOgg::audioFileOgg( const sample_rate_t _sample_rate,
const bitrate_t _max_bitrate,
const int _depth,
mixer * _mixer ) :
audioFileDevice( _sample_rate, _channels, _file, _use_vbr,
AudioFileDevice( _sample_rate, _channels, _file, _use_vbr,
_nom_bitrate, _min_bitrate, _max_bitrate,
_depth, _mixer )
{
@@ -57,7 +55,7 @@ audioFileOgg::audioFileOgg( const sample_rate_t _sample_rate,
audioFileOgg::~audioFileOgg()
AudioFileOgg::~AudioFileOgg()
{
finishEncoding();
}
@@ -65,17 +63,17 @@ audioFileOgg::~audioFileOgg()
inline Sint32 audioFileOgg::writePage( void )
inline Sint32 AudioFileOgg::writePage()
{
Sint32 written = writeData( m_og.header, m_og.header_len );
written += writeData( m_og.body, m_og.body_len );
return( written );
return written;
}
bool audioFileOgg::startEncoding( void )
bool AudioFileOgg::startEncoding()
{
vorbis_comment vc;
const char * comments = "Cool=This song has been made using Linux "
@@ -122,14 +120,14 @@ bool audioFileOgg::startEncoding( void )
printf( "Mode initialization failed: invalid parameters for "
"bitrate\n" );
vorbis_info_clear( &m_vi );
return( FALSE );
return false;
}
if( useVBR() == FALSE )
if( useVBR() == false )
{
vorbis_encode_ctl( &m_vi, OV_ECTL_RATEMANAGE_AVG, NULL );
}
else if( useVBR() == TRUE )
else if( useVBR() == true )
{
// Turn off management entirely (if it was turned on).
vorbis_encode_ctl( &m_vi, OV_ECTL_RATEMANAGE_SET, NULL );
@@ -173,17 +171,17 @@ bool audioFileOgg::startEncoding( void )
{
// clean up
finishEncoding();
return( FALSE );
return false;
}
}
return( TRUE );
return true;
}
void audioFileOgg::writeBuffer( const surroundSampleFrame * _ab,
void AudioFileOgg::writeBuffer( const surroundSampleFrame * _ab,
const fpp_t _frames,
const float _master_gain )
{
@@ -248,7 +246,7 @@ void audioFileOgg::writeBuffer( const surroundSampleFrame * _ab,
void audioFileOgg::finishEncoding( void )
void AudioFileOgg::finishEncoding()
{
if( m_ok )
{

View File

@@ -1,11 +1,9 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* audio_file_wave.cpp - audio-device which encodes wave-stream and writes it
* into a WAVE-file. This is used for song-export.
* AudioFileWave.cpp - audio-device which encodes wave-stream and writes it
* into a WAVE-file. This is used for song-export.
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -25,15 +23,11 @@
*
*/
#include "audio_file_wave.h"
#include "AudioFileWave.h"
#include "endian_handling.h"
#include <cstring>
audioFileWave::audioFileWave( const sample_rate_t _sample_rate,
AudioFileWave::AudioFileWave( const sample_rate_t _sample_rate,
const ch_cnt_t _channels, bool & _success_ful,
const QString & _file,
const bool _use_vbr,
@@ -42,7 +36,7 @@ audioFileWave::audioFileWave( const sample_rate_t _sample_rate,
const bitrate_t _max_bitrate,
const int _depth,
mixer * _mixer ) :
audioFileDevice( _sample_rate, _channels, _file, _use_vbr,
AudioFileDevice( _sample_rate, _channels, _file, _use_vbr,
_nom_bitrate, _min_bitrate, _max_bitrate,
_depth, _mixer )
{
@@ -52,7 +46,7 @@ audioFileWave::audioFileWave( const sample_rate_t _sample_rate,
audioFileWave::~audioFileWave()
AudioFileWave::~AudioFileWave()
{
finishEncoding();
}
@@ -60,7 +54,7 @@ audioFileWave::~audioFileWave()
bool audioFileWave::startEncoding( void )
bool AudioFileWave::startEncoding()
{
m_si.samplerate = sampleRate();
m_si.channels = channels();
@@ -75,13 +69,13 @@ bool audioFileWave::startEncoding( void )
default: m_si.format = SF_FORMAT_WAV | SF_FORMAT_PCM_16; break;
}
m_sf = sf_open( outputFile().toUtf8().constData(), SFM_WRITE, &m_si );
return( TRUE );
return true;
}
void audioFileWave::writeBuffer( const surroundSampleFrame * _ab,
void AudioFileWave::writeBuffer( const surroundSampleFrame * _ab,
const fpp_t _frames,
const float _master_gain )
{
@@ -113,10 +107,8 @@ void audioFileWave::writeBuffer( const surroundSampleFrame * _ab,
void audioFileWave::finishEncoding( void )
void AudioFileWave::finishEncoding()
{
sf_close( m_sf );
}
#endif

View File

@@ -1,5 +1,5 @@
/*
* audio_jack.cpp - support for JACK-transport
* AudioJack.cpp - support for JACK-transport
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
@@ -22,9 +22,7 @@
*
*/
#include "audio_jack.h"
#include "AudioJack.h"
#ifdef LMMS_HAVE_JACK
@@ -32,24 +30,22 @@
#include <QtGui/QLabel>
#include <QtGui/QMessageBox>
#include <stdlib.h>
#include "debug.h"
#include "engine.h"
#include "templates.h"
#include "gui_templates.h"
#include "config_mgr.h"
#include "lcd_spinbox.h"
#include "audio_port.h"
#include "AudioPort.h"
#include "main_window.h"
audioJACK::audioJACK( bool & _success_ful, mixer * _mixer ) :
audioDevice( tLimit<int>( configManager::inst()->value(
AudioJack::AudioJack( bool & _success_ful, mixer * _mixer ) :
AudioDevice( tLimit<int>( configManager::inst()->value(
"audiojack", "channels" ).toInt(),
DEFAULT_CHANNELS, SURROUND_CHANNELS ),
_mixer ),
@@ -74,7 +70,7 @@ audioJACK::audioJACK( bool & _success_ful, mixer * _mixer ) :
audioJACK::~audioJACK()
AudioJack::~AudioJack()
{
m_stopSemaphore.release();
@@ -98,7 +94,7 @@ audioJACK::~audioJACK()
void audioJACK::restartAfterZombified( void )
void AudioJack::restartAfterZombified()
{
if( initJackClient() )
{
@@ -127,7 +123,7 @@ void audioJACK::restartAfterZombified( void )
bool audioJACK::initJackClient( void )
bool AudioJack::initJackClient()
{
QString clientName = configManager::inst()->value( "audiojack",
"clientname" );
@@ -193,7 +189,7 @@ bool audioJACK::initJackClient( void )
void audioJACK::startProcessing( void )
void AudioJack::startProcessing()
{
m_stopped = false;
@@ -245,7 +241,7 @@ void audioJACK::startProcessing( void )
void audioJACK::stopProcessing( void )
void AudioJack::stopProcessing()
{
m_stopSemaphore.acquire();
}
@@ -253,7 +249,7 @@ void audioJACK::stopProcessing( void )
void audioJACK::applyQualitySettings( void )
void AudioJack::applyQualitySettings()
{
if( hqAudio() )
{
@@ -265,13 +261,13 @@ void audioJACK::applyQualitySettings( void )
}
}
audioDevice::applyQualitySettings();
AudioDevice::applyQualitySettings();
}
void audioJACK::registerPort( audioPort * _port )
void AudioJack::registerPort( AudioPort * _port )
{
#ifdef AUDIO_PORT_SUPPORT
// make sure, port is not already registered
@@ -292,7 +288,7 @@ void audioJACK::registerPort( audioPort * _port )
void audioJACK::unregisterPort( audioPort * _port )
void AudioJack::unregisterPort( AudioPort * _port )
{
#ifdef AUDIO_PORT_SUPPORT
if( m_portMap.contains( _port ) )
@@ -313,7 +309,7 @@ void audioJACK::unregisterPort( audioPort * _port )
void audioJACK::renamePort( audioPort * _port )
void AudioJack::renamePort( AudioPort * _port )
{
#ifdef AUDIO_PORT_SUPPORT
if( m_portMap.contains( _port ) )
@@ -332,7 +328,7 @@ void audioJACK::renamePort( audioPort * _port )
int audioJACK::processCallback( jack_nframes_t _nframes, void * _udata )
int AudioJack::processCallback( jack_nframes_t _nframes, void * _udata )
{
QVector<jack_default_audio_sample_t *> outbufs( channels(), NULL );
ch_cnt_t chnl = 0;
@@ -415,18 +411,18 @@ int audioJACK::processCallback( jack_nframes_t _nframes, void * _udata )
int audioJACK::staticProcessCallback( jack_nframes_t _nframes, void * _udata )
int AudioJack::staticProcessCallback( jack_nframes_t _nframes, void * _udata )
{
return static_cast<audioJACK *>( _udata )->
return static_cast<AudioJack *>( _udata )->
processCallback( _nframes, _udata );
}
void audioJACK::shutdownCallback( void * _udata )
void AudioJack::shutdownCallback( void * _udata )
{
audioJACK * _this = static_cast<audioJACK *>( _udata );
AudioJack * _this = static_cast<AudioJack *>( _udata );
_this->m_client = NULL;
_this->zombified();
}
@@ -435,8 +431,8 @@ void audioJACK::shutdownCallback( void * _udata )
audioJACK::setupWidget::setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( audioJACK::name(), _parent )
AudioJack::setupWidget::setupWidget( QWidget * _parent ) :
AudioDevice::setupWidget( AudioJack::name(), _parent )
{
QString cn = configManager::inst()->value( "audiojack", "clientname" );
if( cn.isEmpty() )
@@ -466,14 +462,14 @@ audioJACK::setupWidget::setupWidget( QWidget * _parent ) :
audioJACK::setupWidget::~setupWidget()
AudioJack::setupWidget::~setupWidget()
{
}
void audioJACK::setupWidget::saveSettings( void )
void AudioJack::setupWidget::saveSettings()
{
configManager::inst()->setValue( "audiojack", "clientname",
m_clientName->text() );
@@ -483,7 +479,7 @@ void audioJACK::setupWidget::saveSettings( void )
#include "moc_audio_jack.cxx"
#include "moc_AudioJack.cxx"
#endif

View File

@@ -1,10 +1,8 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* audio_oss.cpp - device-class that implements OSS-PCM-output
* AudioOss.cpp - device-class that implements OSS-PCM-output
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,9 +22,7 @@
*
*/
#include "audio_oss.h"
#include "AudioOss.h"
#ifdef LMMS_HAVE_OSS
@@ -75,20 +71,20 @@
audioOSS::audioOSS( bool & _success_ful, mixer * _mixer ) :
audioDevice( tLimit<ch_cnt_t>(
AudioOss::AudioOss( bool & _success_ful, mixer * _mixer ) :
AudioDevice( tLimit<ch_cnt_t>(
configManager::inst()->value( "audiooss", "channels" ).toInt(),
DEFAULT_CHANNELS, SURROUND_CHANNELS ),
_mixer ),
m_convertEndian( FALSE )
m_convertEndian( false )
{
_success_ful = FALSE;
_success_ful = false;
m_audioFD = open( probeDevice().toAscii().constData(), O_WRONLY, 0 );
if( m_audioFD == -1 )
{
printf( "audioOSS: failed opening audio-device\n" );
printf( "AudioOss: failed opening audio-device\n" );
return;
}
@@ -148,7 +144,7 @@ audioOSS::audioOSS( bool & _success_ful, mixer * _mixer ) :
if( ( isLittleEndian() && ( value == AFMT_S16_BE ) ) ||
( !isLittleEndian() && ( value == AFMT_S16_LE ) ) )
{
m_convertEndian = TRUE;
m_convertEndian = true;
}
// Set the number of channels of output
@@ -185,13 +181,13 @@ audioOSS::audioOSS( bool & _success_ful, mixer * _mixer ) :
setSampleRate( value );
}
_success_ful = TRUE;
_success_ful = true;
}
audioOSS::~audioOSS()
AudioOss::~AudioOss()
{
stopProcessing();
close( m_audioFD );
@@ -200,10 +196,10 @@ audioOSS::~audioOSS()
QString audioOSS::probeDevice( void )
QString AudioOss::probeDevice()
{
QString dev = configManager::inst()->value( "audiooss", "device" );
if( dev == "" )
QString dev = configManager::inst()->value( "AudioOss", "Device" );
if( dev.isEmpty() )
{
char * adev = getenv( "AUDIODEV" ); // Is there a standard
// variable name?
@@ -218,7 +214,7 @@ QString audioOSS::probeDevice( void )
}
// if the first open fails, look for other devices
if ( QFileInfo( dev ).isWritable() == FALSE )
if( QFileInfo( dev ).isWritable() == false )
{
int instance = -1;
while( 1 )
@@ -235,13 +231,13 @@ QString audioOSS::probeDevice( void )
}
}
}
return( dev );
return dev;
}
void audioOSS::startProcessing( void )
void AudioOss::startProcessing()
{
if( !isRunning() )
{
@@ -252,7 +248,7 @@ void audioOSS::startProcessing( void )
void audioOSS::stopProcessing( void )
void AudioOss::stopProcessing()
{
if( isRunning() )
{
@@ -264,7 +260,7 @@ void audioOSS::stopProcessing( void )
void audioOSS::applyQualitySettings( void )
void AudioOss::applyQualitySettings()
{
if( hqAudio() )
{
@@ -290,13 +286,13 @@ void audioOSS::applyQualitySettings( void )
}
}
audioDevice::applyQualitySettings();
AudioDevice::applyQualitySettings();
}
void audioOSS::run( void )
void AudioOss::run()
{
surroundSampleFrame * temp =
new surroundSampleFrame[getMixer()->framesPerPeriod()];
@@ -304,7 +300,7 @@ void audioOSS::run( void )
new int_sample_t[getMixer()->framesPerPeriod() *
channels()];
while( TRUE )
while( true )
{
const fpp_t frames = getNextBuffer( temp );
if( !frames )
@@ -328,8 +324,8 @@ void audioOSS::run( void )
audioOSS::setupWidget::setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( audioOSS::name(), _parent )
AudioOss::setupWidget::setupWidget( QWidget * _parent ) :
AudioDevice::setupWidget( AudioOss::name(), _parent )
{
m_device = new QLineEdit( probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );
@@ -354,7 +350,7 @@ audioOSS::setupWidget::setupWidget( QWidget * _parent ) :
audioOSS::setupWidget::~setupWidget()
AudioOss::setupWidget::~setupWidget()
{
}
@@ -362,7 +358,7 @@ audioOSS::setupWidget::~setupWidget()
void audioOSS::setupWidget::saveSettings( void )
void AudioOss::setupWidget::saveSettings()
{
configManager::inst()->setValue( "audiooss", "device",
m_device->text() );
@@ -373,5 +369,3 @@ void audioOSS::setupWidget::saveSettings( void )
#endif
#endif

View File

@@ -1,8 +1,8 @@
/*
* audio_port.cpp - base-class for objects providing sound at a port
* AudioPort.cpp - base-class for objects providing sound at a port
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,13 +22,13 @@
*
*/
#include "audio_port.h"
#include "audio_device.h"
#include "AudioPort.h"
#include "AudioDevice.h"
#include "effect_chain.h"
#include "engine.h"
audioPort::audioPort( const QString & _name, bool _has_effect_chain ) :
AudioPort::AudioPort( const QString & _name, bool _has_effect_chain ) :
m_bufferUsage( NoUsage ),
m_firstBuffer( new sampleFrame[engine::getMixer()->framesPerPeriod()] ),
m_secondBuffer( new sampleFrame[
@@ -49,7 +49,7 @@ audioPort::audioPort( const QString & _name, bool _has_effect_chain ) :
audioPort::~audioPort()
AudioPort::~AudioPort()
{
setExtOutputEnabled( false );
engine::getMixer()->removeAudioPort( this );
@@ -61,7 +61,7 @@ audioPort::~audioPort()
void audioPort::nextPeriod( void )
void AudioPort::nextPeriod()
{
m_firstBufferLock.lock();
engine::getMixer()->clearAudioBuffer( m_firstBuffer,
@@ -79,7 +79,7 @@ void audioPort::nextPeriod( void )
void audioPort::setExtOutputEnabled( bool _enabled )
void AudioPort::setExtOutputEnabled( bool _enabled )
{
if( _enabled != m_extOutputEnabled )
{
@@ -98,7 +98,7 @@ void audioPort::setExtOutputEnabled( bool _enabled )
void audioPort::setName( const QString & _name )
void AudioPort::setName( const QString & _name )
{
m_name = _name;
engine::getMixer()->audioDev()->renamePort( this );
@@ -107,7 +107,7 @@ void audioPort::setName( const QString & _name )
bool audioPort::processEffects( void )
bool AudioPort::processEffects()
{
if( m_effects )
{

View File

@@ -1,8 +1,8 @@
/*
* audio_portaudio.cpp - device-class that performs PCM-output via PortAudio
* AudioPortAudio.cpp - device-class that performs PCM-output via PortAudio
*
* Copyright (c) 2008 Csaba Hruska <csaba.hruska/at/gmail.com>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,16 +23,14 @@
*/
#include "audio_portaudio.h"
#include "AudioPortAudio.h"
#ifndef LMMS_HAVE_PORTAUDIO
void audioPortAudioSetupUtil::updateDevices( void )
void AudioPortAudioSetupUtil::updateDevices()
{
}
void audioPortAudioSetupUtil::updateChannels( void )
void AudioPortAudioSetupUtil::updateChannels()
{
}
#endif
@@ -51,8 +49,8 @@ void audioPortAudioSetupUtil::updateChannels( void )
#include "lcd_spinbox.h"
audioPortAudio::audioPortAudio( bool & _success_ful, mixer * _mixer ) :
audioDevice( tLimit<ch_cnt_t>(
AudioPortAudio::AudioPortAudio( bool & _success_ful, mixer * _mixer ) :
AudioDevice( tLimit<ch_cnt_t>(
configManager::inst()->value( "audioportaudio", "channels" ).toInt(),
DEFAULT_CHANNELS, SURROUND_CHANNELS ),
_mixer ),
@@ -61,7 +59,7 @@ audioPortAudio::audioPortAudio( bool & _success_ful, mixer * _mixer ) :
m_outBufPos( 0 ),
m_stopSemaphore( 1 )
{
_success_ful = FALSE;
_success_ful = false;
m_outBufSize = getMixer()->framesPerPeriod();
@@ -69,7 +67,7 @@ audioPortAudio::audioPortAudio( bool & _success_ful, mixer * _mixer ) :
if( err != paNoError ) {
printf( "Couldn't initialize PortAudio: %s\n", Pa_GetErrorText( err ) );
m_wasPAInitError = TRUE;
m_wasPAInitError = true;
return;
}
@@ -187,14 +185,14 @@ audioPortAudio::audioPortAudio( bool & _success_ful, mixer * _mixer ) :
m_stopSemaphore.acquire();
m_supportsCapture = TRUE;
_success_ful = TRUE;
m_supportsCapture = true;
_success_ful = true;
}
audioPortAudio::~audioPortAudio()
AudioPortAudio::~AudioPortAudio()
{
stopProcessing();
m_stopSemaphore.release();
@@ -209,14 +207,14 @@ audioPortAudio::~audioPortAudio()
void audioPortAudio::startProcessing( void )
void AudioPortAudio::startProcessing()
{
m_stopped = FALSE;
m_stopped = false;
PaError err = Pa_StartStream( m_paStream );
if( err != paNoError )
{
m_stopped = TRUE;
m_stopped = true;
printf( "PortAudio error: %s\n", Pa_GetErrorText( err ) );
}
}
@@ -224,7 +222,7 @@ void audioPortAudio::startProcessing( void )
void audioPortAudio::stopProcessing( void )
void AudioPortAudio::stopProcessing()
{
if( Pa_IsStreamActive( m_paStream ) )
{
@@ -242,7 +240,7 @@ void audioPortAudio::stopProcessing( void )
void audioPortAudio::applyQualitySettings( void )
void AudioPortAudio::applyQualitySettings()
{
if( hqAudio() )
{
@@ -289,7 +287,7 @@ void audioPortAudio::applyQualitySettings( void )
audioDevice::applyQualitySettings();
}
int audioPortAudio::process_callback(
int AudioPortAudio::process_callback(
const float *_inputBuffer,
float * _outputBuffer,
unsigned long _framesPerBuffer )
@@ -311,7 +309,7 @@ int audioPortAudio::process_callback(
const fpp_t frames = getNextBuffer( m_outBuf );
if( !frames )
{
m_stopped = TRUE;
m_stopped = true;
m_stopSemaphore.release();
memset( _outputBuffer, 0, _framesPerBuffer *
channels() * sizeof(float) );
@@ -346,7 +344,7 @@ int audioPortAudio::process_callback(
#ifdef PORTAUDIO_V19
int audioPortAudio::_process_callback(
int AudioPortAudio::_process_callback(
const void *_inputBuffer,
void * _outputBuffer,
unsigned long _framesPerBuffer,
@@ -357,19 +355,19 @@ int audioPortAudio::_process_callback(
Q_UNUSED(_timeInfo);
Q_UNUSED(_statusFlags);
#else
int audioPortAudio::_process_callback( void *_inputBuffer, void *_outputBuffer,
int AudioPortAudio::_process_callback( void *_inputBuffer, void *_outputBuffer,
unsigned long _framesPerBuffer, PaTimestamp _outTime, void *_arg )
{
#endif
audioPortAudio * _this = static_cast<audioPortAudio *> (_arg);
AudioPortAudio * _this = static_cast<AudioPortAudio *> (_arg);
return _this->process_callback( (const float*)_inputBuffer,
(float*)_outputBuffer, _framesPerBuffer );
}
void audioPortAudioSetupUtil::updateDevices( void )
void AudioPortAudioSetupUtil::updateDevices()
{
PaError err = Pa_Initialize();
if( err != paNoError ) {
@@ -413,7 +411,7 @@ void audioPortAudioSetupUtil::updateDevices( void )
void audioPortAudioSetupUtil::updateChannels( void )
void AudioPortAudioSetupUtil::updateChannels()
{
PaError err = Pa_Initialize();
if( err != paNoError ) {
@@ -427,8 +425,8 @@ void audioPortAudioSetupUtil::updateChannels( void )
audioPortAudio::setupWidget::setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( audioPortAudio::name(), _parent )
AudioPortAudio::setupWidget::setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( AudioPortAudio::name(), _parent )
{
m_backend = new comboBox( this, "BACKEND" );
m_backend->setGeometry( 52, 15, 120, 20 );
@@ -506,7 +504,7 @@ audioPortAudio::setupWidget::setupWidget( QWidget * _parent ) :
audioPortAudio::setupWidget::~setupWidget()
AudioPortAudio::setupWidget::~setupWidget()
{
disconnect( &m_setupUtil.m_backendModel, SIGNAL( dataChanged() ),
&m_setupUtil, SLOT( updateDevices() ) );
@@ -518,7 +516,7 @@ audioPortAudio::setupWidget::~setupWidget()
void audioPortAudio::setupWidget::saveSettings( void )
void AudioPortAudio::setupWidget::saveSettings()
{
configManager::inst()->setValue( "audioportaudio", "backend",
@@ -533,5 +531,5 @@ void audioPortAudio::setupWidget::saveSettings( void )
#endif
#include "moc_audio_portaudio.cxx"
#include "moc_AudioPortAudio.cxx"

View File

@@ -1,10 +1,8 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* audio_pulseaudio.cpp - device-class which implements PulseAudio-output
* AudioPulseAudio.cpp - device-class which implements PulseAudio-output
*
* Copyright (c) 2008-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,14 +22,10 @@
*
*/
#include <QtGui/QLineEdit>
#include <QtGui/QLabel>
#include <cstdio>
#include "audio_pulseaudio.h"
#include "AudioPulseAudio.h"
#ifdef LMMS_HAVE_PULSEAUDIO
@@ -44,33 +38,33 @@
static void stream_write_callback(pa_stream *s, size_t length, void *userdata)
{
static_cast<audioPulseAudio *>( userdata )->streamWriteCallback( s, length );
static_cast<AudioPulseAudio *>( userdata )->streamWriteCallback( s, length );
}
audioPulseAudio::audioPulseAudio( bool & _success_ful, mixer * _mixer ) :
audioDevice( tLimit<ch_cnt_t>(
AudioPulseAudio::AudioPulseAudio( bool & _success_ful, mixer * _mixer ) :
AudioDevice( tLimit<ch_cnt_t>(
configManager::inst()->value( "audiopa", "channels" ).toInt(),
DEFAULT_CHANNELS, SURROUND_CHANNELS ),
_mixer ),
m_s( NULL ),
m_convertEndian( FALSE )
m_convertEndian( false )
{
_success_ful = FALSE;
_success_ful = false;
m_sampleSpec.format = PA_SAMPLE_S16LE;
m_sampleSpec.rate = sampleRate();
m_sampleSpec.channels = channels();
_success_ful = TRUE;
_success_ful = true;
}
audioPulseAudio::~audioPulseAudio()
AudioPulseAudio::~AudioPulseAudio()
{
stopProcessing();
@@ -83,24 +77,24 @@ audioPulseAudio::~audioPulseAudio()
QString audioPulseAudio::probeDevice( void )
QString AudioPulseAudio::probeDevice()
{
QString dev = configManager::inst()->value( "audiopa", "device" );
if( dev == "" )
if( dev.isEmpty() )
{
if( getenv( "AUDIODEV" ) != NULL )
{
return( getenv( "AUDIODEV" ) );
return getenv( "AUDIODEV" );
}
return( "default" );
return "default";
}
return( dev );
return dev;
}
void audioPulseAudio::startProcessing( void )
void AudioPulseAudio::startProcessing()
{
if( !isRunning() )
{
@@ -111,7 +105,7 @@ void audioPulseAudio::startProcessing( void )
void audioPulseAudio::stopProcessing( void )
void AudioPulseAudio::stopProcessing()
{
if( isRunning() )
{
@@ -123,7 +117,7 @@ void audioPulseAudio::stopProcessing( void )
void audioPulseAudio::applyQualitySettings( void )
void AudioPulseAudio::applyQualitySettings()
{
if( hqAudio() )
{
@@ -131,7 +125,7 @@ void audioPulseAudio::applyQualitySettings( void )
}
audioDevice::applyQualitySettings();
AudioDevice::applyQualitySettings();
}
@@ -147,12 +141,12 @@ static void stream_state_callback( pa_stream *s, void * userdata )
break;
case PA_STREAM_READY:
fprintf(stderr, "Stream successfully created\n");
qDebug( "Stream successfully created\n" );
break;
case PA_STREAM_FAILED:
default:
fprintf(stderr, "Stream errror: %s\n",
qCritical( "Stream errror: %s\n",
pa_strerror(pa_context_errno(
pa_stream_get_context( s ) ) ) );
}
@@ -163,7 +157,7 @@ static void stream_state_callback( pa_stream *s, void * userdata )
/* This is called whenever the context status changes */
static void context_state_callback(pa_context *c, void *userdata)
{
audioPulseAudio * _this = static_cast<audioPulseAudio *>( userdata );
AudioPulseAudio * _this = static_cast<AudioPulseAudio *>( userdata );
switch( pa_context_get_state( c ) )
{
case PA_CONTEXT_CONNECTING:
@@ -174,11 +168,15 @@ static void context_state_callback(pa_context *c, void *userdata)
case PA_CONTEXT_READY:
{
pa_cvolume cv;
fprintf(stderr, "Connection established.\n");
_this->m_s = pa_stream_new(c, "lmms", &_this->m_sampleSpec, NULL);
pa_stream_set_state_callback(_this->m_s, stream_state_callback, _this );
pa_stream_set_write_callback(_this->m_s, stream_write_callback, _this);
pa_stream_connect_playback(_this->m_s, NULL, NULL, (pa_stream_flags) 0, pa_cvolume_set(&cv, _this->m_sampleSpec.channels, PA_VOLUME_NORM), NULL);
qDebug( "Connection established.\n" );
_this->m_s = pa_stream_new( c, "lmms", &_this->m_sampleSpec, NULL);
pa_stream_set_state_callback( _this->m_s, stream_state_callback, _this );
pa_stream_set_write_callback( _this->m_s, stream_write_callback, _this );
pa_stream_connect_playback( _this->m_s, NULL, NULL,
(pa_stream_flags) 0,
pa_cvolume_set( &cv, _this->m_sampleSpec.channels,
PA_VOLUME_NORM ),
NULL );
break;
}
@@ -187,20 +185,20 @@ static void context_state_callback(pa_context *c, void *userdata)
case PA_CONTEXT_FAILED:
default:
fprintf(stderr, "Connection failure: %s\n", pa_strerror(pa_context_errno(c)));
qCritical( "Connection failure: %s\n", pa_strerror( pa_context_errno( c ) ) );
}
}
void audioPulseAudio::run( void )
void AudioPulseAudio::run()
{
pa_mainloop * m = NULL;
if (!(m = pa_mainloop_new())) {
fprintf(stderr, "pa_mainloop_new() failed.\n");
qCritical( "pa_mainloop_new() failed.\n" );
return;
}
pa_mainloop_api * mainloop_api = pa_mainloop_get_api(m);
@@ -208,7 +206,7 @@ void audioPulseAudio::run( void )
pa_context *context = pa_context_new(mainloop_api, "lmms");
if ( context == NULL )
{
fprintf(stderr, "pa_context_new() failed.\n");
qCritical( "pa_context_new() failed." );
return;
}
@@ -220,14 +218,14 @@ void audioPulseAudio::run( void )
/* Run the main loop */
if (pa_mainloop_run(m, &ret) < 0)
{
fprintf(stderr, "pa_mainloop_run() failed.\n");
qCritical( "pa_mainloop_run() failed.\n" );
}
}
void audioPulseAudio::streamWriteCallback(pa_stream *s, size_t length)
void AudioPulseAudio::streamWriteCallback(pa_stream *s, size_t length)
{
const fpp_t fpp = getMixer()->framesPerPeriod();
surroundSampleFrame * temp = new surroundSampleFrame[fpp];
@@ -260,10 +258,10 @@ void audioPulseAudio::streamWriteCallback(pa_stream *s, size_t length)
audioPulseAudio::setupWidget::setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( audioPulseAudio::name(), _parent )
AudioPulseAudio::setupWidget::setupWidget( QWidget * _parent ) :
AudioDevice::setupWidget( AudioPulseAudio::name(), _parent )
{
m_device = new QLineEdit( audioPulseAudio::probeDevice(), this );
m_device = new QLineEdit( AudioPulseAudio::probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );
QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
@@ -286,7 +284,7 @@ audioPulseAudio::setupWidget::setupWidget( QWidget * _parent ) :
audioPulseAudio::setupWidget::~setupWidget()
AudioPulseAudio::setupWidget::~setupWidget()
{
}
@@ -294,7 +292,7 @@ audioPulseAudio::setupWidget::~setupWidget()
void audioPulseAudio::setupWidget::saveSettings( void )
void AudioPulseAudio::setupWidget::saveSettings()
{
configManager::inst()->setValue( "audiopa", "device",
m_device->text() );
@@ -305,5 +303,3 @@ void audioPulseAudio::setupWidget::saveSettings( void )
#endif
#endif

View File

@@ -1,10 +1,9 @@
/*
* audio_sample_recorder.cpp - device-class that implements recording
* surround-audio-buffers into RAM, maybe later
* also harddisk
* AudioSampleRecorder.cpp - device-class that implements recording
* audio-buffers into RAM
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -25,26 +24,25 @@
*/
#include "audio_sample_recorder.h"
#include "AudioSampleRecorder.h"
#include "sample_buffer.h"
#include "debug.h"
audioSampleRecorder::audioSampleRecorder( const ch_cnt_t _channels,
AudioSampleRecorder::AudioSampleRecorder( const ch_cnt_t _channels,
bool & _success_ful,
mixer * _mixer ) :
audioDevice( _channels, _mixer ),
AudioDevice( _channels, _mixer ),
m_buffers()
{
_success_ful = TRUE;
_success_ful = true;
}
audioSampleRecorder::~audioSampleRecorder()
AudioSampleRecorder::~AudioSampleRecorder()
{
while( !m_buffers.empty() )
{
@@ -56,21 +54,21 @@ audioSampleRecorder::~audioSampleRecorder()
f_cnt_t audioSampleRecorder::framesRecorded( void ) const
f_cnt_t AudioSampleRecorder::framesRecorded() const
{
f_cnt_t frames = 0;
for( bufferList::const_iterator it = m_buffers.begin();
for( BufferList::ConstIterator it = m_buffers.begin();
it != m_buffers.end(); ++it )
{
frames += ( *it ).second;
}
return( frames );
return frames;
}
void audioSampleRecorder::createSampleBuffer( sampleBuffer * * _sample_buf )
void AudioSampleRecorder::createSampleBuffer( sampleBuffer * * _sample_buf )
{
const f_cnt_t frames = framesRecorded();
// create buffer to store all recorded buffers in
@@ -82,7 +80,7 @@ void audioSampleRecorder::createSampleBuffer( sampleBuffer * * _sample_buf )
assert( data != NULL );
#endif
// now copy all buffers into big buffer
for( bufferList::const_iterator it = m_buffers.begin();
for( BufferList::ConstIterator it = m_buffers.begin();
it != m_buffers.end(); ++it )
{
memcpy( data_ptr, ( *it ).first, ( *it ).second *
@@ -98,7 +96,7 @@ void audioSampleRecorder::createSampleBuffer( sampleBuffer * * _sample_buf )
void audioSampleRecorder::writeBuffer( const surroundSampleFrame * _ab,
void AudioSampleRecorder::writeBuffer( const surroundSampleFrame * _ab,
const fpp_t _frames, const float )
{
sampleFrame * buf = new sampleFrame[_frames];

View File

@@ -1,10 +1,8 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* audio_sdl.cpp - device-class that performs PCM-output via SDL
* AudioSdl.cpp - device-class that performs PCM-output via SDL
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2004-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,9 +22,7 @@
*
*/
#include "audio_sdl.h"
#include "AudioSdl.h"
#ifdef LMMS_HAVE_SDL
@@ -42,14 +38,14 @@
audioSDL::audioSDL( bool & _success_ful, mixer * _mixer ) :
audioDevice( DEFAULT_CHANNELS, _mixer ),
AudioSdl::AudioSdl( bool & _success_ful, mixer * _mixer ) :
AudioDevice( DEFAULT_CHANNELS, _mixer ),
m_outBuf( new surroundSampleFrame[getMixer()->framesPerPeriod()] ),
m_convertedBufPos( 0 ),
m_convertEndian( false ),
m_stopSemaphore( 1 )
{
_success_ful = FALSE;
_success_ful = false;
m_convertedBufSize = getMixer()->framesPerPeriod() * channels()
* sizeof( int_sample_t );
@@ -58,7 +54,7 @@ audioSDL::audioSDL( bool & _success_ful, mixer * _mixer ) :
if( SDL_Init( SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE ) < 0 )
{
printf( "Couldn't initialize SDL: %s\n", SDL_GetError() );
qCritical( "Couldn't initialize SDL: %s\n", SDL_GetError() );
return;
}
@@ -77,20 +73,20 @@ audioSDL::audioSDL( bool & _success_ful, mixer * _mixer ) :
// open the audio device, forcing the desired format
if( SDL_OpenAudio( &m_audioHandle, &actual ) < 0 )
{
printf( "Couldn't open SDL-audio: %s\n", SDL_GetError() );
qCritical( "Couldn't open SDL-audio: %s\n", SDL_GetError() );
return;
}
m_convertEndian = ( m_audioHandle.format != actual.format );
m_stopSemaphore.acquire();
_success_ful = TRUE;
_success_ful = true;
}
audioSDL::~audioSDL()
AudioSdl::~AudioSdl()
{
stopProcessing();
m_stopSemaphore.release();
@@ -104,7 +100,7 @@ audioSDL::~audioSDL()
void audioSDL::startProcessing( void )
void AudioSdl::startProcessing()
{
m_stopped = false;
@@ -114,7 +110,7 @@ void audioSDL::startProcessing( void )
void audioSDL::stopProcessing( void )
void AudioSdl::stopProcessing()
{
if( SDL_GetAudioStatus() == SDL_AUDIO_PLAYING )
{
@@ -129,7 +125,7 @@ void audioSDL::stopProcessing( void )
void audioSDL::applyQualitySettings( void )
void AudioSdl::applyQualitySettings()
{
if( 0 )//hqAudio() )
{
@@ -144,24 +140,19 @@ void audioSDL::applyQualitySettings( void )
// open the audio device, forcing the desired format
if( SDL_OpenAudio( &m_audioHandle, &actual ) < 0 )
{
printf( "Couldn't open SDL-audio: %s\n",
SDL_GetError() );
qCritical( "Couldn't open SDL-audio: %s\n", SDL_GetError() );
}
}
audioDevice::applyQualitySettings();
AudioDevice::applyQualitySettings();
}
void audioSDL::sdlAudioCallback( void * _udata, Uint8 * _buf, int _len )
void AudioSdl::sdlAudioCallback( void * _udata, Uint8 * _buf, int _len )
{
audioSDL * _this = static_cast<audioSDL *>( _udata );
#ifdef LMMS_DEBUG
assert( _this != NULL );
#endif
AudioSdl * _this = static_cast<AudioSdl *>( _udata );
_this->sdlAudioCallback( _buf, _len );
}
@@ -169,7 +160,7 @@ void audioSDL::sdlAudioCallback( void * _udata, Uint8 * _buf, int _len )
void audioSDL::sdlAudioCallback( Uint8 * _buf, int _len )
void AudioSdl::sdlAudioCallback( Uint8 * _buf, int _len )
{
if( m_stopped )
{
@@ -211,8 +202,8 @@ void audioSDL::sdlAudioCallback( Uint8 * _buf, int _len )
audioSDL::setupWidget::setupWidget( QWidget * _parent ) :
audioDevice::setupWidget( audioSDL::name(), _parent )
AudioSdl::setupWidget::setupWidget( QWidget * _parent ) :
AudioDevice::setupWidget( AudioSdl::name(), _parent )
{
QString dev = configManager::inst()->value( "audiosdl", "device" );
m_device = new QLineEdit( dev, this );
@@ -227,14 +218,14 @@ audioSDL::setupWidget::setupWidget( QWidget * _parent ) :
audioSDL::setupWidget::~setupWidget()
AudioSdl::setupWidget::~setupWidget()
{
}
void audioSDL::setupWidget::saveSettings( void )
void AudioSdl::setupWidget::saveSettings()
{
configManager::inst()->setValue( "audiosdl", "device",
m_device->text() );
@@ -243,4 +234,3 @@ void audioSDL::setupWidget::saveSettings( void )
#endif
#endif

View File

@@ -58,7 +58,7 @@
#include "import_filter.h"
#include "lmms_style.h"
#include "main_window.h"
#include "project_renderer.h"
#include "ProjectRenderer.h"
#include "song.h"
#warning TODO: move somewhere else
@@ -117,9 +117,9 @@ int main( int argc, char * * argv )
mixer::qualitySettings qs( mixer::qualitySettings::Mode_HighQuality );
projectRenderer::outputSettings os( 44100, false, 160,
projectRenderer::Depth_16Bit );
projectRenderer::ExportFileFormats eff = projectRenderer::WaveFile;
ProjectRenderer::OutputSettings os( 44100, false, 160,
ProjectRenderer::Depth_16Bit );
ProjectRenderer::ExportFileFormats eff = ProjectRenderer::WaveFile;
for( int i = 1; i < argc; ++i )
@@ -207,12 +207,12 @@ int main( int argc, char * * argv )
const QString ext = QString( argv[i + 1] );
if( ext == "wav" )
{
eff = projectRenderer::WaveFile;
eff = ProjectRenderer::WaveFile;
}
#ifdef LMMS_HAVE_OGGVORBIS
else if( ext == "ogg" )
{
eff = projectRenderer::OggFile;
eff = ProjectRenderer::OggFile;
}
#endif
else
@@ -463,10 +463,10 @@ int main( int argc, char * * argv )
if( !render_out.isEmpty() )
{
// create renderer
projectRenderer * r = new projectRenderer( qs, os, eff,
ProjectRenderer * r = new ProjectRenderer( qs, os, eff,
render_out +
QString( ( eff ==
projectRenderer::WaveFile ) ?
ProjectRenderer::WaveFile ) ?
"wav" : "ogg" ) );
QCoreApplication::instance()->connect( r,
SIGNAL( finished() ), SLOT( quit() ) );

View File

@@ -1,5 +1,5 @@
/*
* midi_alsa_raw.cpp - midi-client for RawMIDI via ALSA
* MidiAlsaRaw.cpp - midi-client for RawMIDI via ALSA
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
@@ -25,7 +25,7 @@
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include "midi_alsa_raw.h"
#include "MidiAlsaRaw.h"
#include "config_mgr.h"
#include "gui_templates.h"
@@ -33,11 +33,11 @@
#ifdef LMMS_HAVE_ALSA
midiALSARaw::midiALSARaw( void ) :
midiClientRaw(),
MidiAlsaRaw::MidiAlsaRaw() :
MidiClientRaw(),
m_inputp( &m_input ),
m_outputp( &m_output ),
m_quit( FALSE )
m_quit( false )
{
int err;
if( ( err = snd_rawmidi_open( m_inputp, m_outputp,
@@ -61,11 +61,11 @@ midiALSARaw::midiALSARaw( void ) :
midiALSARaw::~midiALSARaw()
MidiAlsaRaw::~MidiAlsaRaw()
{
if( isRunning() )
{
m_quit = TRUE;
m_quit = true;
wait( 1000 );
terminate();
@@ -78,24 +78,24 @@ midiALSARaw::~midiALSARaw()
QString midiALSARaw::probeDevice( void )
QString MidiAlsaRaw::probeDevice()
{
QString dev = configManager::inst()->value( "midialsaraw", "device" );
QString dev = configManager::inst()->value( "MidiAlsaRaw", "Device" );
if( dev == "" )
{
if( getenv( "MIDIDEV" ) != NULL )
{
return( getenv( "MIDIDEV" ) );
return getenv( "MIDIDEV" );
}
return( "default" );
return "default";
}
return( dev );
return dev;
}
void midiALSARaw::sendByte( Uint8 _c )
void MidiAlsaRaw::sendByte( Uint8 _c )
{
snd_rawmidi_write( m_output, &_c, sizeof( _c ) );
}
@@ -103,18 +103,18 @@ void midiALSARaw::sendByte( Uint8 _c )
void midiALSARaw::run( void )
void MidiAlsaRaw::run()
{
Uint8 buf[128];
//int cnt = 0;
while( m_quit == FALSE )
while( m_quit == false )
{
msleep( 5 ); // must do that, otherwise this thread takes
// too much CPU-time, even with LowPriority...
int err = poll( m_pfds, m_npfds, 10000 );
if( err < 0 && errno == EINTR )
{
printf( "midiALSARaw::run(): Got EINTR while "
printf( "MidiAlsaRaw::run(): Got EINTR while "
"polling. Will stop polling MIDI-events from "
"MIDI-port.\n" );
break;
@@ -176,10 +176,10 @@ void midiALSARaw::run( void )
midiALSARaw::setupWidget::setupWidget( QWidget * _parent ) :
midiClientRaw::setupWidget( midiALSARaw::name(), _parent )
MidiAlsaRaw::setupWidget::setupWidget( QWidget * _parent ) :
MidiClientRaw::setupWidget( MidiAlsaRaw::name(), _parent )
{
m_device = new QLineEdit( midiALSARaw::probeDevice(), this );
m_device = new QLineEdit( MidiAlsaRaw::probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );
QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
@@ -190,16 +190,16 @@ midiALSARaw::setupWidget::setupWidget( QWidget * _parent ) :
midiALSARaw::setupWidget::~setupWidget()
MidiAlsaRaw::setupWidget::~setupWidget()
{
}
void midiALSARaw::setupWidget::saveSettings( void )
void MidiAlsaRaw::setupWidget::saveSettings()
{
configManager::inst()->setValue( "midialsaraw", "device",
configManager::inst()->setValue( "MidiAlsaRaw", "Device",
m_device->text() );
}

View File

@@ -1,8 +1,8 @@
/*
* midi_alsa_seq.cpp - ALSA-sequencer-client
* MidiAlsaSeq.cpp - ALSA sequencer client
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,28 +22,26 @@
*
*/
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include "midi_alsa_seq.h"
#include "MidiAlsaSeq.h"
#include "config_mgr.h"
#include "engine.h"
#include "gui_templates.h"
#include "song.h"
#include "midi_port.h"
#include "MidiPort.h"
#include "note.h"
#ifdef LMMS_HAVE_ALSA
midiALSASeq::midiALSASeq( void ) :
midiClient(),
MidiAlsaSeq::MidiAlsaSeq() :
MidiClient(),
m_seqHandle( NULL ),
m_queueID( -1 ),
m_quit( FALSE ),
m_quit( false ),
m_portListUpdateTimer( this )
{
int err;
@@ -92,11 +90,11 @@ midiALSASeq::midiALSASeq( void ) :
midiALSASeq::~midiALSASeq()
MidiAlsaSeq::~MidiAlsaSeq()
{
if( isRunning() )
{
m_quit = TRUE;
m_quit = true;
// wake up input queue
if( write( m_pipe[1], "\n", 1 ) )
/* fix warning */;
@@ -111,31 +109,31 @@ midiALSASeq::~midiALSASeq()
QString midiALSASeq::probeDevice( void )
QString MidiAlsaSeq::probeDevice()
{
QString dev = configManager::inst()->value( "midialsaseq", "device" );
QString dev = configManager::inst()->value( "Midialsaseq", "device" );
if( dev == "" )
{
if( getenv( "MIDIDEV" ) != NULL )
{
return( getenv( "MIDIDEV" ) );
return getenv( "MIDIDEV" );
}
return( "default" );
return "default";
}
return( dev );
return dev;
}
void midiALSASeq::processOutEvent( const midiEvent & _me,
void MidiAlsaSeq::processOutEvent( const midiEvent & _me,
const midiTime & _time,
const midiPort * _port )
const MidiPort * _port )
{
// HACK!!! - need a better solution which isn't that easy since we
// cannot store const-ptrs in our map because we need to call non-const
// methods of MIDI-port - it's a mess...
midiPort * p = const_cast<midiPort *>( _port );
MidiPort * p = const_cast<MidiPort *>( _port );
snd_seq_event_t ev;
snd_seq_ev_clear( &ev );
@@ -207,23 +205,23 @@ void midiALSASeq::processOutEvent( const midiEvent & _me,
void midiALSASeq::applyPortMode( midiPort * _port )
void MidiAlsaSeq::applyPortMode( MidiPort * _port )
{
// determine port-capabilities
unsigned int caps[2] = { 0, 0 };
switch( _port->mode() )
{
case midiPort::Duplex:
case MidiPort::Duplex:
caps[1] |= SND_SEQ_PORT_CAP_READ |
SND_SEQ_PORT_CAP_SUBS_READ;
case midiPort::Input:
case MidiPort::Input:
caps[0] |= SND_SEQ_PORT_CAP_WRITE |
SND_SEQ_PORT_CAP_SUBS_WRITE;
break;
case midiPort::Output:
case MidiPort::Output:
caps[1] |= SND_SEQ_PORT_CAP_READ |
SND_SEQ_PORT_CAP_SUBS_READ;
break;
@@ -273,7 +271,7 @@ void midiALSASeq::applyPortMode( midiPort * _port )
void midiALSASeq::applyPortName( midiPort * _port )
void MidiAlsaSeq::applyPortName( MidiPort * _port )
{
for( int i = 0; i < 2; ++i )
{
@@ -296,7 +294,7 @@ void midiALSASeq::applyPortName( midiPort * _port )
void midiALSASeq::removePort( midiPort * _port )
void MidiAlsaSeq::removePort( MidiPort * _port )
{
if( m_portIDs.contains( _port ) )
{
@@ -304,13 +302,13 @@ void midiALSASeq::removePort( midiPort * _port )
snd_seq_delete_simple_port( m_seqHandle, m_portIDs[_port][1] );
m_portIDs.remove( _port );
}
midiClient::removePort( _port );
MidiClient::removePort( _port );
}
void midiALSASeq::subscribeReadablePort( midiPort * _port,
void MidiAlsaSeq::subscribeReadablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe )
{
@@ -348,7 +346,7 @@ void midiALSASeq::subscribeReadablePort( midiPort * _port,
void midiALSASeq::subscribeWritablePort( midiPort * _port,
void MidiAlsaSeq::subscribeWritablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe )
{
@@ -393,7 +391,7 @@ void midiALSASeq::subscribeWritablePort( midiPort * _port,
void midiALSASeq::run( void )
void MidiAlsaSeq::run()
{
// watch the pipe and sequencer input events
int pollfd_count = snd_seq_poll_descriptors_count( m_seqHandle,
@@ -405,7 +403,7 @@ void midiALSASeq::run( void )
pollfd_set[0].events = POLLIN;
++pollfd_count;
while( m_quit == FALSE )
while( m_quit == false )
{
if( poll( pollfd_set, pollfd_count, -1 ) == -1 )
{
@@ -428,7 +426,7 @@ void midiALSASeq::run( void )
snd_seq_event_t * ev;
snd_seq_event_input( m_seqHandle, &ev );
midiPort * dest = NULL;
MidiPort * dest = NULL;
for( int i = 0; i < m_portIDs.size(); ++i )
{
if( m_portIDs.values()[i][0] == ev->dest.port )
@@ -529,7 +527,7 @@ void midiALSASeq::run( void )
void midiALSASeq::changeQueueTempo( bpm_t _bpm )
void MidiAlsaSeq::changeQueueTempo( bpm_t _bpm )
{
snd_seq_change_queue_tempo( m_seqHandle, m_queueID,
60000000 / (int) _bpm, NULL );
@@ -539,7 +537,7 @@ void midiALSASeq::changeQueueTempo( bpm_t _bpm )
void midiALSASeq::updatePortList( void )
void MidiAlsaSeq::updatePortList()
{
QStringList readable_ports;
QStringList writable_ports;
@@ -620,10 +618,10 @@ void midiALSASeq::updatePortList( void )
midiALSASeq::setupWidget::setupWidget( QWidget * _parent ) :
midiClient::setupWidget( midiALSASeq::name(), _parent )
MidiAlsaSeq::setupWidget::setupWidget( QWidget * _parent ) :
MidiClient::setupWidget( MidiAlsaSeq::name(), _parent )
{
m_device = new QLineEdit( midiALSASeq::probeDevice(), this );
m_device = new QLineEdit( MidiAlsaSeq::probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );
QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
@@ -634,21 +632,21 @@ midiALSASeq::setupWidget::setupWidget( QWidget * _parent ) :
midiALSASeq::setupWidget::~setupWidget()
MidiAlsaSeq::setupWidget::~setupWidget()
{
}
void midiALSASeq::setupWidget::saveSettings( void )
void MidiAlsaSeq::setupWidget::saveSettings()
{
configManager::inst()->setValue( "midialsaseq", "device",
configManager::inst()->setValue( "Midialsaseq", "device",
m_device->text() );
}
#include "moc_midi_alsa_seq.cxx"
#include "moc_MidiAlsaSeq.cxx"
#endif

View File

@@ -1,5 +1,5 @@
/*
* midi_client.cpp - base-class for MIDI-clients like ALSA-sequencer-client
* MidiClient.cpp - base-class for MIDI-clients like ALSA-sequencer-client
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* This file partly contains code from Fluidsynth, Peter Hanappe
@@ -23,25 +23,20 @@
*
*/
#include <cstdio>
#include "midi_client.h"
#include "MidiClient.h"
#include "MidiPort.h"
#include "templates.h"
#include "midi_port.h"
#include "note.h"
midiClient::midiClient( void )
MidiClient::MidiClient()
{
}
midiClient::~midiClient()
MidiClient::~MidiClient()
{
//TODO: noteOffAll(); / clear all ports
}
@@ -49,21 +44,21 @@ midiClient::~midiClient()
void midiClient::applyPortMode( midiPort * )
void MidiClient::applyPortMode( MidiPort * )
{
}
void midiClient::applyPortName( midiPort * )
void MidiClient::applyPortName( MidiPort * )
{
}
void midiClient::addPort( midiPort * _port )
void MidiClient::addPort( MidiPort * _port )
{
m_midiPorts.push_back( _port );
}
@@ -71,11 +66,10 @@ void midiClient::addPort( midiPort * _port )
void midiClient::removePort( midiPort * _port )
void MidiClient::removePort( MidiPort * _port )
{
QVector<midiPort *>::iterator it = qFind( m_midiPorts.begin(),
m_midiPorts.end(),
_port );
QVector<MidiPort *>::Iterator it =
qFind( m_midiPorts.begin(), m_midiPorts.end(), _port );
if( it != m_midiPorts.end() )
{
m_midiPorts.erase( it );
@@ -85,14 +79,14 @@ void midiClient::removePort( midiPort * _port )
void midiClient::subscribeReadablePort( midiPort *, const QString & , bool )
void MidiClient::subscribeReadablePort( MidiPort *, const QString & , bool )
{
}
void midiClient::subscribeWritablePort( midiPort * , const QString & , bool )
void MidiClient::subscribeWritablePort( MidiPort * , const QString & , bool )
{
}
@@ -102,21 +96,21 @@ void midiClient::subscribeWritablePort( midiPort * , const QString & , bool )
midiClientRaw::midiClientRaw( void )
MidiClientRaw::MidiClientRaw()
{
}
midiClientRaw::~midiClientRaw()
MidiClientRaw::~MidiClientRaw()
{
}
void midiClientRaw::parseData( const Uint8 _c )
void MidiClientRaw::parseData( const Uint8 _c )
{
/*********************************************************************/
/* 'Process' system real-time messages */
@@ -255,7 +249,7 @@ void midiClientRaw::parseData( const Uint8 _c )
void midiClientRaw::processParsedEvent()
void MidiClientRaw::processParsedEvent()
{
for( int i = 0; i < m_midiPorts.size(); ++i )
{
@@ -267,9 +261,9 @@ void midiClientRaw::processParsedEvent()
void midiClientRaw::processOutEvent( const midiEvent & _me,
void MidiClientRaw::processOutEvent( const midiEvent & _me,
const midiTime & ,
const midiPort * _port )
const MidiPort * _port )
{
// TODO: also evaluate _time and queue event if neccessary
switch( _me.m_type )
@@ -284,7 +278,7 @@ void midiClientRaw::processOutEvent( const midiEvent & _me,
break;
default:
fprintf( stderr, "midiClientRaw: unhandled MIDI-event %d\n",
qWarning( "MidiClientRaw: unhandled MIDI-event %d\n",
(int) _me.m_type );
break;
}
@@ -296,7 +290,7 @@ void midiClientRaw::processOutEvent( const midiEvent & _me,
// Taken from Nagano Daisuke's USB-MIDI driver
const Uint8 REMAINS_F0F6[] =
static const Uint8 REMAINS_F0F6[] =
{
0, /* 0xF0 */
2, /* 0XF1 */
@@ -307,7 +301,7 @@ const Uint8 REMAINS_F0F6[] =
1 /* 0XF6 */
} ;
const Uint8 REMAINS_80E0[] =
static const Uint8 REMAINS_80E0[] =
{
3, /* 0x8X Note Off */
3, /* 0x9X Note On */
@@ -322,17 +316,17 @@ const Uint8 REMAINS_80E0[] =
// Returns the length of the MIDI message starting with _event.
// Taken from Nagano Daisuke's USB-MIDI driver
Uint8 midiClientRaw::eventLength( const Uint8 _event )
Uint8 MidiClientRaw::eventLength( const Uint8 _event )
{
if ( _event < 0xF0 )
{
return( REMAINS_80E0[( ( _event - 0x80 ) >> 4 ) & 0x0F] );
return REMAINS_80E0[( ( _event - 0x80 ) >> 4 ) & 0x0F];
}
else if ( _event < 0xF7 )
{
return( REMAINS_F0F6[_event - 0xF0] );
return REMAINS_F0F6[_event - 0xF0];
}
return( 1 );
return 1;
}

View File

@@ -27,11 +27,10 @@
#include <QtCore/QObject>
#include <QtCore/QVector>
#include "song.h"
#include "engine.h"
#include "mixer.h"
#include "midi_client.h"
#include "MidiClient.h"
#include "MidiController.h"
@@ -39,8 +38,7 @@ MidiController::MidiController( model * _parent ) :
Controller( Controller::MidiController, _parent, tr( "MIDI Controller" ) ),
MidiEventProcessor(),
m_midiPort( tr( "unnamed_midi_controller" ),
engine::getMixer()->getMidiClient(), this, this,
midiPort::Input ),
engine::getMixer()->midiClient(), this, this, MidiPort::Input ),
m_lastValue( 0.0f )
{
connect( &m_midiPort, SIGNAL( modeChanged() ),
@@ -105,9 +103,9 @@ void MidiController::processInEvent( const midiEvent & _me,
void MidiController::subscribeReadablePorts( const midiPort::map & _map )
void MidiController::subscribeReadablePorts( const MidiPort::Map & _map )
{
for( midiPort::map::const_iterator it = _map.constBegin();
for( MidiPort::Map::ConstIterator it = _map.constBegin();
it != _map.constEnd(); ++it )
{
m_midiPort.subscribeReadablePort( it.key(), *it );

View File

@@ -1,8 +1,8 @@
/*
* midi_oss.cpp - OSS-raw-midi-client
* MidiOss.cpp - OSS raw MIDI client
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,7 +23,7 @@
*/
#include "midi_oss.h"
#include "MidiOss.h"
#ifdef LMMS_HAVE_OSS
@@ -42,13 +42,13 @@
midiOSS::midiOSS( void ) :
midiClientRaw(),
MidiOss::MidiOss() :
MidiClientRaw(),
m_midiDev( probeDevice() ),
m_quit( FALSE )
m_quit( false )
{
// only start thread, if opening of MIDI-device is successful,
// otherwise isRunning()==FALSE indicates error
// otherwise isRunning()==false indicates error
if( m_midiDev.open( QIODevice::ReadWrite ) ||
m_midiDev.open( QIODevice::ReadOnly ) )
{
@@ -59,11 +59,11 @@ midiOSS::midiOSS( void ) :
midiOSS::~midiOSS()
MidiOss::~MidiOss()
{
if( isRunning() )
{
m_quit = TRUE;
m_quit = true;
wait( 1000 );
terminate();
}
@@ -72,24 +72,24 @@ midiOSS::~midiOSS()
QString midiOSS::probeDevice( void )
QString MidiOss::probeDevice()
{
QString dev = configManager::inst()->value( "midioss", "device" );
if( dev == "" )
if( dev.isEmpty() )
{
if( getenv( "MIDIDEV" ) != NULL )
{
return( getenv( "MIDIDEV" ) );
return getenv( "MIDIDEV" );
}
return( "/dev/midi" );
return "/dev/midi";
}
return( dev );
return dev;
}
void midiOSS::sendByte( const Uint8 _c )
void MidiOss::sendByte( const Uint8 _c )
{
m_midiDev.putChar( _c );
}
@@ -97,9 +97,9 @@ void midiOSS::sendByte( const Uint8 _c )
void midiOSS::run( void )
void MidiOss::run()
{
while( m_quit == FALSE && m_midiDev.isOpen() )
while( m_quit == false && m_midiDev.isOpen() )
{
char c;
if( !m_midiDev.getChar( &c ) )
@@ -114,10 +114,10 @@ void midiOSS::run( void )
midiOSS::setupWidget::setupWidget( QWidget * _parent ) :
midiClientRaw::setupWidget( midiOSS::name(), _parent )
MidiOss::setupWidget::setupWidget( QWidget * _parent ) :
MidiClientRaw::setupWidget( MidiOss::name(), _parent )
{
m_device = new QLineEdit( midiOSS::probeDevice(), this );
m_device = new QLineEdit( MidiOss::probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );
QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
@@ -128,14 +128,14 @@ midiOSS::setupWidget::setupWidget( QWidget * _parent ) :
midiOSS::setupWidget::~setupWidget()
MidiOss::setupWidget::~setupWidget()
{
}
void midiOSS::setupWidget::saveSettings( void )
void MidiOss::setupWidget::saveSettings()
{
configManager::inst()->setValue( "midioss", "device",
m_device->text() );

View File

@@ -1,9 +1,9 @@
/*
* midi_port.cpp - abstraction of MIDI-ports which are part of LMMS's MIDI-
* sequencing system
* MidiPort.cpp - abstraction of MIDI-ports which are part of LMMS's MIDI-
* sequencing system
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,16 +23,15 @@
*
*/
#include <QtXml/QDomElement>
#include "midi_port.h"
#include "midi_client.h"
#include "MidiPort.h"
#include "MidiClient.h"
#include "song.h"
midiPort::midiPort( const QString & _name, midiClient * _mc,
MidiPort::MidiPort( const QString & _name, MidiClient * _mc,
MidiEventProcessor * _mep, model * _parent,
Modes _mode ) :
model( _parent ),
@@ -91,7 +90,7 @@ midiPort::midiPort( const QString & _name, midiClient * _mc,
midiPort::~midiPort()
MidiPort::~MidiPort()
{
// unsubscribe ports
m_readableModel.setValue( false );
@@ -104,7 +103,7 @@ midiPort::~midiPort()
void midiPort::setName( const QString & _name )
void MidiPort::setName( const QString & _name )
{
setDisplayName( _name );
m_midiClient->applyPortName( this );
@@ -113,7 +112,7 @@ void midiPort::setName( const QString & _name )
void midiPort::setMode( Modes _mode )
void MidiPort::setMode( Modes _mode )
{
m_mode = _mode;
m_midiClient->applyPortMode( this );
@@ -122,7 +121,7 @@ void midiPort::setMode( Modes _mode )
void midiPort::processInEvent( const midiEvent & _me, const midiTime & _time )
void MidiPort::processInEvent( const midiEvent & _me, const midiTime & _time )
{
// mask event
if( inputEnabled() &&
@@ -149,7 +148,7 @@ void midiPort::processInEvent( const midiEvent & _me, const midiTime & _time )
void midiPort::processOutEvent( const midiEvent & _me, const midiTime & _time )
void MidiPort::processOutEvent( const midiEvent & _me, const midiTime & _time )
{
// mask event
if( outputEnabled() && realOutputChannel() == _me.m_channel )
@@ -174,7 +173,7 @@ void midiPort::processOutEvent( const midiEvent & _me, const midiTime & _time )
void midiPort::saveSettings( QDomDocument & _doc, QDomElement & _this )
void MidiPort::saveSettings( QDomDocument & _doc, QDomElement & _this )
{
m_inputChannelModel.saveSettings( _doc, _this, "inputchannel" );
m_outputChannelModel.saveSettings( _doc, _this, "outputchannel" );
@@ -191,7 +190,7 @@ void midiPort::saveSettings( QDomDocument & _doc, QDomElement & _this )
if( inputEnabled() )
{
QString rp;
for( midiPort::map::iterator it = m_readablePorts.begin();
for( Map::ConstIterator it = m_readablePorts.begin();
it != m_readablePorts.end(); ++it )
{
if( it.value() )
@@ -210,7 +209,7 @@ void midiPort::saveSettings( QDomDocument & _doc, QDomElement & _this )
if( outputEnabled() )
{
QString wp;
for( map::const_iterator it = m_writablePorts.begin();
for( Map::ConstIterator it = m_writablePorts.begin();
it != m_writablePorts.end(); ++it )
{
if( it.value() )
@@ -230,7 +229,7 @@ void midiPort::saveSettings( QDomDocument & _doc, QDomElement & _this )
void midiPort::loadSettings( const QDomElement & _this )
void MidiPort::loadSettings( const QDomElement & _this )
{
m_inputChannelModel.loadSettings( _this, "inputchannel" );
m_outputChannelModel.loadSettings( _this, "outputchannel" );
@@ -247,7 +246,7 @@ void midiPort::loadSettings( const QDomElement & _this )
if( inputEnabled() )
{
QStringList rp = _this.attribute( "inports" ).split( ',' );
for( map::const_iterator it = m_readablePorts.begin();
for( Map::ConstIterator it = m_readablePorts.begin();
it != m_readablePorts.end(); ++it )
{
if( it.value() != ( rp.indexOf( it.key() ) != -1 ) )
@@ -261,7 +260,7 @@ void midiPort::loadSettings( const QDomElement & _this )
if( outputEnabled() )
{
QStringList wp = _this.attribute( "outports" ).split( ',' );
for( map::const_iterator it = m_writablePorts.begin();
for( Map::ConstIterator it = m_writablePorts.begin();
it != m_writablePorts.end(); ++it )
{
if( it.value() != ( wp.indexOf( it.key() ) != -1 ) )
@@ -276,7 +275,7 @@ void midiPort::loadSettings( const QDomElement & _this )
void midiPort::subscribeReadablePort( const QString & _port, bool _subscribe )
void MidiPort::subscribeReadablePort( const QString & _port, bool _subscribe )
{
m_readablePorts[_port] = _subscribe;
// make sure, MIDI-port is configured for input
@@ -290,7 +289,7 @@ void midiPort::subscribeReadablePort( const QString & _port, bool _subscribe )
void midiPort::subscribeWritablePort( const QString & _port, bool _subscribe )
void MidiPort::subscribeWritablePort( const QString & _port, bool _subscribe )
{
m_writablePorts[_port] = _subscribe;
// make sure, MIDI-port is configured for output
@@ -304,7 +303,7 @@ void midiPort::subscribeWritablePort( const QString & _port, bool _subscribe )
void midiPort::updateMidiPortMode( void )
void MidiPort::updateMidiPortMode( void )
{
// this small lookup-table makes everything easier
static const Modes modeTable[2][2] =
@@ -317,7 +316,7 @@ void midiPort::updateMidiPortMode( void )
// check whether we have to dis-check items in connection-menu
if( !inputEnabled() )
{
for( map::const_iterator it = m_readablePorts.begin();
for( Map::ConstIterator it = m_readablePorts.begin();
it != m_readablePorts.end(); ++it )
{
// subscribed?
@@ -330,7 +329,7 @@ void midiPort::updateMidiPortMode( void )
if( !outputEnabled() )
{
for( map::const_iterator it = m_writablePorts.begin();
for( Map::ConstIterator it = m_writablePorts.begin();
it != m_writablePorts.end(); ++it )
{
// subscribed?
@@ -351,11 +350,11 @@ void midiPort::updateMidiPortMode( void )
void midiPort::updateReadablePorts( void )
void MidiPort::updateReadablePorts( void )
{
// first save all selected ports
QStringList selected_ports;
for( midiPort::map::iterator it = m_readablePorts.begin();
for( Map::ConstIterator it = m_readablePorts.begin();
it != m_readablePorts.end(); ++it )
{
if( it.value() == true )
@@ -367,7 +366,7 @@ void midiPort::updateReadablePorts( void )
m_readablePorts.clear();
const QStringList & wp = m_midiClient->readablePorts();
// now insert new ports and restore selections
for( QStringList::const_iterator it = wp.begin(); it != wp.end(); ++it )
for( QStringList::ConstIterator it = wp.begin(); it != wp.end(); ++it )
{
m_readablePorts[*it] = ( selected_ports.indexOf( *it ) != -1 );
}
@@ -377,11 +376,11 @@ void midiPort::updateReadablePorts( void )
void midiPort::updateWritablePorts( void )
void MidiPort::updateWritablePorts( void )
{
// first save all selected ports
QStringList selected_ports;
for( midiPort::map::iterator it = m_writablePorts.begin();
for( Map::ConstIterator it = m_writablePorts.begin();
it != m_writablePorts.end(); ++it )
{
if( it.value() == true )
@@ -393,7 +392,7 @@ void midiPort::updateWritablePorts( void )
m_writablePorts.clear();
const QStringList & wp = m_midiClient->writablePorts();
// now insert new ports and restore selections
for( QStringList::const_iterator it = wp.begin(); it != wp.end(); ++it )
for( QStringList::ConstIterator it = wp.begin(); it != wp.end(); ++it )
{
m_writablePorts[*it] = ( selected_ports.indexOf( *it ) != -1 );
}
@@ -403,7 +402,7 @@ void midiPort::updateWritablePorts( void )
void midiPort::updateOutputProgram( void )
void MidiPort::updateOutputProgram( void )
{
processOutEvent( midiEvent( MidiProgramChange,
realOutputChannel(),
@@ -412,5 +411,5 @@ void midiPort::updateOutputProgram( void )
#include "moc_midi_port.cxx"
#include "moc_MidiPort.cxx"

View File

@@ -1,8 +1,8 @@
/*
* midi_winmm.cpp - WinMM MIDI client
* MidiWinMM.cpp - WinMM MIDI client
*
* Copyright (c) 2008-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -22,24 +22,22 @@
*
*/
#include <QtGui/QLabel>
#include <QtGui/QLineEdit>
#include "midi_winmm.h"
#include "MidiWinMM.h"
#include "config_mgr.h"
#include "engine.h"
#include "gui_templates.h"
#include "midi_port.h"
#include "MidiPort.h"
#include "note.h"
#ifdef LMMS_BUILD_WIN32
midiWinMM::midiWinMM( void ) :
midiClient(),
MidiWinMM::MidiWinMM() :
MidiClient(),
m_inputDevices(),
m_outputDevices(),
m_inputSubs(),
@@ -51,7 +49,7 @@ midiWinMM::midiWinMM( void ) :
midiWinMM::~midiWinMM()
MidiWinMM::~MidiWinMM()
{
closeDevices();
}
@@ -59,19 +57,19 @@ midiWinMM::~midiWinMM()
void midiWinMM::processOutEvent( const midiEvent & _me,
void MidiWinMM::processOutEvent( const midiEvent & _me,
const midiTime & _time,
const midiPort * _port )
const MidiPort * _port )
{
const DWORD short_msg = ( _me.m_type + _me.channel() ) +
( ( _me.m_data.m_param[0] & 0xff ) << 8 ) +
( ( _me.m_data.m_param[1] & 0xff ) << 16 );
QStringList out_devs;
for( subMap::iterator it = m_outputSubs.begin();
for( SubMap::ConstIterator it = m_outputSubs.begin();
it != m_outputSubs.end(); ++it )
{
for( midiPortList::iterator jt = it.value().begin();
for( MidiPortList::ConstIterator jt = it.value().begin();
jt != it.value().end(); ++jt )
{
if( *jt == _port )
@@ -82,7 +80,7 @@ void midiWinMM::processOutEvent( const midiEvent & _me,
}
}
for( QMap<HMIDIOUT, QString>::iterator it = m_outputDevices.begin();
for( QMap<HMIDIOUT, QString>::Iterator it = m_outputDevices.begin();
it != m_outputDevices.end(); ++it )
{
if( out_devs.contains( *it ) )
@@ -95,13 +93,13 @@ void midiWinMM::processOutEvent( const midiEvent & _me,
void midiWinMM::applyPortMode( midiPort * _port )
void MidiWinMM::applyPortMode( MidiPort * _port )
{
// make sure no subscriptions exist which are not possible with
// current port-mode
if( !_port->inputEnabled() )
{
for( subMap::iterator it = m_inputSubs.begin();
for( SubMap::Iterator it = m_inputSubs.begin();
it != m_inputSubs.end(); ++it )
{
it.value().removeAll( _port );
@@ -110,7 +108,7 @@ void midiWinMM::applyPortMode( midiPort * _port )
if( !_port->outputEnabled() )
{
for( subMap::iterator it = m_outputSubs.begin();
for( SubMap::Iterator it = m_outputSubs.begin();
it != m_outputSubs.end(); ++it )
{
it.value().removeAll( _port );
@@ -121,29 +119,29 @@ void midiWinMM::applyPortMode( midiPort * _port )
void midiWinMM::removePort( midiPort * _port )
void MidiWinMM::removePort( MidiPort * _port )
{
for( subMap::iterator it = m_inputSubs.begin();
for( SubMap::Iterator it = m_inputSubs.begin();
it != m_inputSubs.end(); ++it )
{
it.value().removeAll( _port );
}
for( subMap::iterator it = m_outputSubs.begin();
for( SubMap::Iterator it = m_outputSubs.begin();
it != m_outputSubs.end(); ++it )
{
it.value().removeAll( _port );
}
midiClient::removePort( _port );
MidiClient::removePort( _port );
}
void midiWinMM::subscribeReadablePort( midiPort * _port,
void MidiWinMM::subscribeReadablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe )
{
if( _subscribe && _port->inputEnabled() == FALSE )
if( _subscribe && _port->inputEnabled() == false )
{
qWarning( "port %s can't be (un)subscribed!\n",
_port->displayName().toAscii().constData() );
@@ -160,11 +158,11 @@ void midiWinMM::subscribeReadablePort( midiPort * _port,
void midiWinMM::subscribeWritablePort( midiPort * _port,
void MidiWinMM::subscribeWritablePort( MidiPort * _port,
const QString & _dest,
bool _subscribe )
{
if( _subscribe && _port->outputEnabled() == FALSE )
if( _subscribe && _port->outputEnabled() == false )
{
qWarning( "port %s can't be (un)subscribed!\n",
_port->displayName().toAscii().constData() );
@@ -181,19 +179,19 @@ void midiWinMM::subscribeWritablePort( midiPort * _port,
void WINAPI CALLBACK midiWinMM::inputCallback( HMIDIIN _hm, UINT _msg, DWORD_PTR _inst,
void WINAPI CALLBACK MidiWinMM::inputCallback( HMIDIIN _hm, UINT _msg, DWORD_PTR _inst,
DWORD_PTR _param1, DWORD_PTR _param2 )
{
if( _msg == MIM_DATA )
{
( (midiWinMM *) _inst )->handleInputEvent( _hm, _param1 );
( (MidiWinMM *) _inst )->handleInputEvent( _hm, _param1 );
}
}
void midiWinMM::handleInputEvent( HMIDIIN _hm, DWORD _ev )
void MidiWinMM::handleInputEvent( HMIDIIN _hm, DWORD _ev )
{
const int cmd = _ev & 0xff;
if( cmd == MidiActiveSensing )
@@ -212,8 +210,8 @@ void midiWinMM::handleInputEvent( HMIDIIN _hm, DWORD _ev )
return;
}
const midiPortList & l = m_inputSubs[d];
for( midiPortList::const_iterator it = l.begin(); it != l.end(); ++it )
const MidiPortList & l = m_inputSubs[d];
for( MidiPortList::ConstIterator it = l.begin(); it != l.end(); ++it )
{
switch( cmdtype )
{
@@ -234,7 +232,6 @@ void midiWinMM::handleInputEvent( HMIDIIN _hm, DWORD _ev )
midiEvent( cmdtype, chan, par1,
par2 & 0xff ),
midiTime() );
break;
case MidiPitchBend:
@@ -255,7 +252,7 @@ void midiWinMM::handleInputEvent( HMIDIIN _hm, DWORD _ev )
void midiWinMM::updateDeviceList( void )
void MidiWinMM::updateDeviceList()
{
closeDevices();
openDevices();
@@ -274,7 +271,7 @@ void midiWinMM::updateDeviceList( void )
void midiWinMM::closeDevices( void )
void MidiWinMM::closeDevices()
{
m_inputSubs.clear();
m_outputSubs.clear();
@@ -298,7 +295,7 @@ void midiWinMM::closeDevices( void )
void midiWinMM::openDevices( void )
void MidiWinMM::openDevices()
{
m_inputDevices.clear();
for( unsigned int i = 0; i < midiInGetNumDevs(); ++i )
@@ -333,22 +330,22 @@ void midiWinMM::openDevices( void )
midiWinMM::setupWidget::setupWidget( QWidget * _parent ) :
midiClient::setupWidget( midiWinMM::name(), _parent )
MidiWinMM::setupWidget::setupWidget( QWidget * _parent ) :
MidiClient::setupWidget( MidiWinMM::name(), _parent )
{
}
midiWinMM::setupWidget::~setupWidget()
MidiWinMM::setupWidget::~setupWidget()
{
}
#include "moc_midi_winmm.cxx"
#include "moc_MidiWinMM.cxx"
#endif

View File

@@ -37,30 +37,26 @@
#include "debug.h"
#include "engine.h"
#include "config_mgr.h"
#include "audio_port.h"
#include "sample_play_handle.h"
#include "piano_roll.h"
#include "micro_timer.h"
#include "MicroTimer.h"
#include "atomic_int.h"
#include "audio_device.h"
#include "midi_client.h"
// platform-specific audio-interface-classes
#include "audio_alsa.h"
#include "audio_jack.h"
#include "audio_oss.h"
#include "audio_portaudio.h"
#include "audio_pulseaudio.h"
#include "audio_sdl.h"
#include "audio_dummy.h"
#include "AudioAlsa.h"
#include "AudioJack.h"
#include "AudioOss.h"
#include "AudioPortAudio.h"
#include "AudioPulseAudio.h"
#include "AudioSdl.h"
#include "AudioDummy.h"
// platform-specific midi-interface-classes
#include "midi_alsa_raw.h"
#include "midi_alsa_seq.h"
#include "midi_oss.h"
#include "midi_winmm.h"
#include "midi_dummy.h"
#include "MidiAlsaRaw.h"
#include "MidiAlsaSeq.h"
#include "MidiOss.h"
#include "MidiWinMM.h"
#include "MidiDummy.h"
static QVector<fx_ch_t> __fx_channel_jobs( NumFxChannels );
@@ -165,16 +161,16 @@ public:
aligned_free( m_workingBuf );
}
virtual void quit( void )
virtual void quit()
{
m_quit = true;
}
void processJobQueue( void );
void processJobQueue();
private:
virtual void run( void )
virtual void run()
{
#if 0
#ifdef LMMS_BUILD_LINUX
@@ -209,7 +205,7 @@ MixerWorkerThread::JobQueue MixerWorkerThread::s_jobQueue;
void MixerWorkerThread::processJobQueue( void )
void MixerWorkerThread::processJobQueue()
{
for( int i = 0; i < s_jobQueue.queueSize; ++i )
{
@@ -224,9 +220,9 @@ void MixerWorkerThread::processJobQueue( void )
break;
case AudioPortEffects:
{
audioPort * a = (audioPort *) it->job;
AudioPort * a = (AudioPort *) it->job;
const bool me = a->processEffects();
if( me || a->m_bufferUsage != audioPort::NoUsage )
if( me || a->m_bufferUsage != AudioPort::NoUsage )
{
engine::getFxMixer()->mixToChannel( a->firstBuffer(),
a->nextFxChannel() );
@@ -301,7 +297,7 @@ void MixerWorkerThread::processJobQueue( void )
mixer::mixer( void ) :
mixer::mixer() :
m_framesPerPeriod( DEFAULT_BUFFER_SIZE ),
m_workingBuf( NULL ),
m_inputBufferRead( 0 ),
@@ -428,7 +424,7 @@ mixer::~mixer()
void mixer::initDevices( void )
void mixer::initDevices()
{
m_audioDev = tryAudioDevices();
m_midiClient = tryMidiClients();
@@ -455,7 +451,7 @@ void mixer::startProcessing( bool _needs_fifo )
void mixer::stopProcessing( void )
void mixer::stopProcessing()
{
if( m_fifoWriter != NULL )
{
@@ -475,7 +471,7 @@ void mixer::stopProcessing( void )
sample_rate_t mixer::baseSampleRate( void ) const
sample_rate_t mixer::baseSampleRate() const
{
sample_rate_t sr =
configManager::inst()->value( "mixer", "samplerate" ).toInt();
@@ -489,7 +485,7 @@ sample_rate_t mixer::baseSampleRate( void ) const
sample_rate_t mixer::outputSampleRate( void ) const
sample_rate_t mixer::outputSampleRate() const
{
return m_audioDev != NULL ? m_audioDev->sampleRate() :
baseSampleRate();
@@ -498,7 +494,7 @@ sample_rate_t mixer::outputSampleRate( void ) const
sample_rate_t mixer::inputSampleRate( void ) const
sample_rate_t mixer::inputSampleRate() const
{
return m_audioDev != NULL ? m_audioDev->sampleRate() :
baseSampleRate();
@@ -507,7 +503,7 @@ sample_rate_t mixer::inputSampleRate( void ) const
sample_rate_t mixer::processingSampleRate( void ) const
sample_rate_t mixer::processingSampleRate() const
{
return outputSampleRate() * m_qualitySettings.sampleRateMultiplier();
}
@@ -515,7 +511,7 @@ sample_rate_t mixer::processingSampleRate( void ) const
bool mixer::criticalXRuns( void ) const
bool mixer::criticalXRuns() const
{
return m_cpuLoad >= 99 && engine::getSong()->realTimeTask() == true;
}
@@ -553,9 +549,9 @@ void mixer::pushInputFrames( sampleFrame * _ab, const f_cnt_t _frames )
const surroundSampleFrame * mixer::renderNextBuffer( void )
const surroundSampleFrame * mixer::renderNextBuffer()
{
microTimer timer;
MicroTimer timer;
static song::playPos last_metro_pos = -1;
song::playPos p = engine::getSong()->getPlayPos(
@@ -647,7 +643,7 @@ const surroundSampleFrame * mixer::renderNextBuffer( void )
// STAGE 2: process effects of all instrument- and sampletracks
FILL_JOB_QUEUE(QVector<audioPort*>,m_audioPorts,
FILL_JOB_QUEUE(QVector<AudioPort*>,m_audioPorts,
MixerWorkerThread::AudioPortEffects,1);
START_JOBS();
WAIT_FOR_JOBS();
@@ -685,7 +681,7 @@ const surroundSampleFrame * mixer::renderNextBuffer( void )
// removes all play-handles. this is neccessary, when the song is stopped ->
// all remaining notes etc. would be played until their end
void mixer::clear( void )
void mixer::clear()
{
// TODO: m_midiClient->noteOffAll();
lock();
@@ -709,7 +705,7 @@ void mixer::bufferToPort( const sampleFrame * _buf,
const fpp_t _frames,
const f_cnt_t _offset,
stereoVolumeVector _vv,
audioPort * _port )
AudioPort * _port )
{
const int start_frame = _offset % m_framesPerPeriod;
int end_frame = start_frame + _frames;
@@ -739,12 +735,12 @@ void mixer::bufferToPort( const sampleFrame * _buf,
_vv.vol[1];
}
// we used both buffers so set flags
_port->m_bufferUsage = audioPort::BothBuffers;
_port->m_bufferUsage = AudioPort::BothBuffers;
}
else if( _port->m_bufferUsage == audioPort::NoUsage )
else if( _port->m_bufferUsage == AudioPort::NoUsage )
{
// only first buffer touched
_port->m_bufferUsage = audioPort::FirstBuffer;
_port->m_bufferUsage = AudioPort::FirstBuffer;
}
_port->unlockSecondBuffer();
}
@@ -828,7 +824,7 @@ void mixer::changeQuality( const struct qualitySettings & _qs )
void mixer::setAudioDevice( audioDevice * _dev )
void mixer::setAudioDevice( AudioDevice * _dev )
{
stopProcessing();
@@ -853,7 +849,7 @@ void mixer::setAudioDevice( audioDevice * _dev )
void mixer::setAudioDevice( audioDevice * _dev,
void mixer::setAudioDevice( AudioDevice * _dev,
const struct qualitySettings & _qs,
bool _needs_fifo )
{
@@ -883,7 +879,7 @@ void mixer::setAudioDevice( audioDevice * _dev,
void mixer::restoreAudioDevice( void )
void mixer::restoreAudioDevice()
{
if( m_oldAudioDev != NULL )
{
@@ -901,9 +897,9 @@ void mixer::restoreAudioDevice( void )
void mixer::removeAudioPort( audioPort * _port )
void mixer::removeAudioPort( AudioPort * _port )
{
QVector<audioPort *>::Iterator it = qFind( m_audioPorts.begin(),
QVector<AudioPort *>::Iterator it = qFind( m_audioPorts.begin(),
m_audioPorts.end(),
_port );
if( it != m_audioPorts.end() )
@@ -966,24 +962,24 @@ void mixer::removePlayHandles( track * _track )
audioDevice * mixer::tryAudioDevices( void )
AudioDevice * mixer::tryAudioDevices()
{
bool success_ful = false;
audioDevice * dev = NULL;
AudioDevice * dev = NULL;
QString dev_name = configManager::inst()->value( "mixer", "audiodev" );
if( dev_name == audioDummy::name() )
if( dev_name == AudioDummy::name() )
{
dev_name = "";
}
#ifdef LMMS_HAVE_ALSA
if( dev_name == audioALSA::name() || dev_name == "" )
if( dev_name == AudioAlsa::name() || dev_name == "" )
{
dev = new audioALSA( success_ful, this );
dev = new AudioAlsa( success_ful, this );
if( success_ful )
{
m_audioDevName = audioALSA::name();
m_audioDevName = AudioAlsa::name();
return dev;
}
delete dev;
@@ -992,12 +988,12 @@ audioDevice * mixer::tryAudioDevices( void )
#ifdef LMMS_HAVE_PORTAUDIO
if( dev_name == audioPortAudio::name() || dev_name == "" )
if( dev_name == AudioPortAudio::name() || dev_name == "" )
{
dev = new audioPortAudio( success_ful, this );
dev = new AudioPortAudio( success_ful, this );
if( success_ful )
{
m_audioDevName = audioPortAudio::name();
m_audioDevName = AudioPortAudio::name();
return dev;
}
delete dev;
@@ -1006,12 +1002,12 @@ audioDevice * mixer::tryAudioDevices( void )
#ifdef LMMS_HAVE_PULSEAUDIO
if( dev_name == audioPulseAudio::name() || dev_name == "" )
if( dev_name == AudioPulseAudio::name() || dev_name == "" )
{
dev = new audioPulseAudio( success_ful, this );
dev = new AudioPulseAudio( success_ful, this );
if( success_ful )
{
m_audioDevName = audioPulseAudio::name();
m_audioDevName = AudioPulseAudio::name();
return dev;
}
delete dev;
@@ -1020,12 +1016,12 @@ audioDevice * mixer::tryAudioDevices( void )
#ifdef LMMS_HAVE_OSS
if( dev_name == audioOSS::name() || dev_name == "" )
if( dev_name == AudioOss::name() || dev_name == "" )
{
dev = new audioOSS( success_ful, this );
dev = new AudioOss( success_ful, this );
if( success_ful )
{
m_audioDevName = audioOSS::name();
m_audioDevName = AudioOss::name();
return dev;
}
delete dev;
@@ -1034,12 +1030,12 @@ audioDevice * mixer::tryAudioDevices( void )
#ifdef LMMS_HAVE_JACK
if( dev_name == audioJACK::name() || dev_name == "" )
if( dev_name == AudioJack::name() || dev_name == "" )
{
dev = new audioJACK( success_ful, this );
dev = new AudioJack( success_ful, this );
if( success_ful )
{
m_audioDevName = audioJACK::name();
m_audioDevName = AudioJack::name();
return dev;
}
delete dev;
@@ -1048,12 +1044,12 @@ audioDevice * mixer::tryAudioDevices( void )
#ifdef LMMS_HAVE_SDL
if( dev_name == audioSDL::name() || dev_name == "" )
if( dev_name == AudioSdl::name() || dev_name == "" )
{
dev = new audioSDL( success_ful, this );
dev = new AudioSdl( success_ful, this );
if( success_ful )
{
m_audioDevName = audioSDL::name();
m_audioDevName = AudioSdl::name();
return dev;
}
delete dev;
@@ -1072,37 +1068,37 @@ audioDevice * mixer::tryAudioDevices( void )
"driver\nYou can render your songs and listen to the output "
"files...\n" );
m_audioDevName = audioDummy::name();
m_audioDevName = AudioDummy::name();
return new audioDummy( success_ful, this );
return new AudioDummy( success_ful, this );
}
midiClient * mixer::tryMidiClients( void )
MidiClient * mixer::tryMidiClients()
{
QString client_name = configManager::inst()->value( "mixer",
"mididev" );
#ifdef LMMS_HAVE_ALSA
if( client_name == midiALSASeq::name() || client_name == "" )
if( client_name == MidiAlsaSeq::name() || client_name == "" )
{
midiALSASeq * malsas = new midiALSASeq;
MidiAlsaSeq * malsas = new MidiAlsaSeq;
if( malsas->isRunning() )
{
m_midiClientName = midiALSASeq::name();
m_midiClientName = MidiAlsaSeq::name();
return malsas;
}
delete malsas;
}
if( client_name == midiALSARaw::name() || client_name == "" )
if( client_name == MidiAlsaRaw::name() || client_name == "" )
{
midiALSARaw * malsar = new midiALSARaw;
MidiAlsaRaw * malsar = new MidiAlsaRaw;
if( malsar->isRunning() )
{
m_midiClientName = midiALSARaw::name();
m_midiClientName = MidiAlsaRaw::name();
return malsar;
}
delete malsar;
@@ -1110,12 +1106,12 @@ midiClient * mixer::tryMidiClients( void )
#endif
#ifdef LMMS_HAVE_OSS
if( client_name == midiOSS::name() || client_name == "" )
if( client_name == MidiOss::name() || client_name == "" )
{
midiOSS * moss = new midiOSS;
MidiOss * moss = new MidiOss;
if( moss->isRunning() )
{
m_midiClientName = midiOSS::name();
m_midiClientName = MidiOss::name();
return moss;
}
delete moss;
@@ -1123,12 +1119,12 @@ midiClient * mixer::tryMidiClients( void )
#endif
#ifdef LMMS_BUILD_WIN32
if( client_name == midiWinMM::name() || client_name == "" )
if( client_name == MidiWinMM::name() || client_name == "" )
{
midiWinMM * mwmm = new midiWinMM;
MidiWinMM * mwmm = new MidiWinMM;
// if( moss->isRunning() )
{
m_midiClientName = midiWinMM::name();
m_midiClientName = MidiWinMM::name();
return mwmm;
}
delete mwmm;
@@ -1138,9 +1134,9 @@ midiClient * mixer::tryMidiClients( void )
printf( "Couldn't create MIDI-client, neither with ALSA nor with "
"OSS. Will use dummy-MIDI-client.\n" );
m_midiClientName = midiDummy::name();
m_midiClientName = MidiDummy::name();
return new midiDummy;
return new MidiDummy;
}
@@ -1161,7 +1157,7 @@ mixer::fifoWriter::fifoWriter( mixer * _mixer, fifo * _fifo ) :
void mixer::fifoWriter::finish( void )
void mixer::fifoWriter::finish()
{
m_writing = false;
}
@@ -1169,7 +1165,7 @@ void mixer::fifoWriter::finish( void )
void mixer::fifoWriter::run( void )
void mixer::fifoWriter::run()
{
#if 0
#ifdef LMMS_BUILD_LINUX

View File

@@ -3,7 +3,7 @@
* rendering engine
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -30,7 +30,7 @@
#include "detuning_helper.h"
#include "instrument_sound_shaping.h"
#include "instrument_track.h"
#include "midi_port.h"
#include "MidiPort.h"
#include "song.h"
@@ -104,7 +104,7 @@ notePlayHandle::notePlayHandle( instrumentTrack * _it,
{
// send MIDI-note-on-event
m_instrumentTrack->processOutEvent( midiEvent( MidiNoteOn,
m_instrumentTrack->getMidiPort()->realOutputChannel(),
m_instrumentTrack->midiPort()->realOutputChannel(),
key(), getMidiVelocity() ),
midiTime::fromFrames( offset(),
engine::framesPerTick() ) );
@@ -151,7 +151,7 @@ void notePlayHandle::setVolume( const volume_t _volume )
{
note::setVolume( _volume );
m_instrumentTrack->processOutEvent( midiEvent( MidiKeyPressure,
m_instrumentTrack->getMidiPort()->realOutputChannel(),
m_instrumentTrack->midiPort()->realOutputChannel(),
key(), getMidiVelocity() ), 0 );
}
@@ -159,7 +159,7 @@ void notePlayHandle::setVolume( const volume_t _volume )
int notePlayHandle::getMidiVelocity( void ) const
int notePlayHandle::getMidiVelocity() const
{
int vel = getVolume();
if( m_instrumentTrack->getVolume() < DefaultVolume )
@@ -281,7 +281,7 @@ void notePlayHandle::play( sampleFrame * _working_buffer )
f_cnt_t notePlayHandle::framesLeft( void ) const
f_cnt_t notePlayHandle::framesLeft() const
{
if( m_released && actualReleaseFramesToDo() == 0 )
{
@@ -329,7 +329,7 @@ void notePlayHandle::noteOff( const f_cnt_t _s )
{
// send MIDI-note-off-event
m_instrumentTrack->processOutEvent( midiEvent( MidiNoteOff,
m_instrumentTrack->getMidiPort()->realOutputChannel(),
m_instrumentTrack->midiPort()->realOutputChannel(),
key(), 0 ),
midiTime::fromFrames( m_framesBeforeRelease,
engine::framesPerTick() ) );
@@ -341,7 +341,7 @@ void notePlayHandle::noteOff( const f_cnt_t _s )
f_cnt_t notePlayHandle::actualReleaseFramesToDo( void ) const
f_cnt_t notePlayHandle::actualReleaseFramesToDo() const
{
return m_instrumentTrack->m_soundShaping.releaseFrames(/*
isArpeggioBaseNote()*/ );
@@ -371,7 +371,7 @@ float notePlayHandle::volumeLevel( const f_cnt_t _frame )
bool notePlayHandle::isArpeggioBaseNote( void ) const
bool notePlayHandle::isArpeggioBaseNote() const
{
return isBaseNote() && ( m_partOfArpeggio ||
m_instrumentTrack->arpeggiatorEnabled() );
@@ -380,7 +380,7 @@ bool notePlayHandle::isArpeggioBaseNote( void ) const
void notePlayHandle::mute( void )
void notePlayHandle::mute()
{
// mute all sub-notes
for( NotePlayHandleList::Iterator it = m_subNotes.begin();
@@ -394,7 +394,7 @@ void notePlayHandle::mute( void )
int notePlayHandle::index( void ) const
int notePlayHandle::index() const
{
const PlayHandleList & playHandles =
engine::getMixer()->playHandles();
@@ -465,7 +465,7 @@ bool notePlayHandle::operator==( const notePlayHandle & _nph ) const
void notePlayHandle::updateFrequency( void )
void notePlayHandle::updateFrequency()
{
const float pitch =
( key() - m_instrumentTrack->baseNoteModel()->value() +

View File

@@ -1,11 +1,9 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* preset_preview_play_handle.cpp - implementation of class
* presetPreviewPlayHandle
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -25,7 +23,6 @@
*
*/
#include <QtCore/QFileInfo>
#include <QtCore/QMutexLocker>
@@ -34,7 +31,7 @@
#include "engine.h"
#include "instrument.h"
#include "instrument_track.h"
#include "midi_port.h"
#include "MidiPort.h"
#include "mmp.h"
#include "note_play_handle.h"
#include "project_journal.h"
@@ -46,7 +43,7 @@
class previewTrackContainer : public trackContainer
{
public:
previewTrackContainer( void ) :
previewTrackContainer() :
m_previewInstrumentTrack( NULL ),
m_previewNote( NULL ),
m_dataMutex()
@@ -62,19 +59,19 @@ public:
{
}
virtual QString nodeName( void ) const
virtual QString nodeName() const
{
return( "bbtrackcontainer" );
return "bbtrackcontainer";
}
instrumentTrack * previewInstrumentTrack( void )
instrumentTrack * previewInstrumentTrack()
{
return( m_previewInstrumentTrack );
return m_previewInstrumentTrack;
}
notePlayHandle * previewNote( void )
notePlayHandle * previewNote()
{
return( m_previewNote );
return m_previewNote;
}
void setPreviewNote( notePlayHandle * _note )
@@ -82,12 +79,12 @@ public:
m_previewNote = _note;
}
void lockData( void )
void lockData()
{
m_dataMutex.lock();
}
void unlockData( void )
void unlockData()
{
m_dataMutex.unlock();
}
@@ -153,7 +150,7 @@ presetPreviewPlayHandle::presetPreviewPlayHandle( const QString & _preset_file,
// make sure, our preset-preview-track does not appear in any MIDI-
// devices list, so just disable receiving/sending MIDI-events at all
s_previewTC->previewInstrumentTrack()->
getMidiPort()->setMode( midiPort::Disabled );
midiPort()->setMode( MidiPort::Disabled );
// create note-play-handle for it
m_previewNote = new notePlayHandle(
@@ -195,9 +192,9 @@ void presetPreviewPlayHandle::play( sampleFrame * _working_buffer )
bool presetPreviewPlayHandle::done( void ) const
bool presetPreviewPlayHandle::done() const
{
return( m_previewNote->isMuted() );
return m_previewNote->isMuted();
}
@@ -205,13 +202,13 @@ bool presetPreviewPlayHandle::done( void ) const
bool presetPreviewPlayHandle::isFromTrack( const track * _track ) const
{
return( s_previewTC->previewInstrumentTrack() == _track );
return s_previewTC->previewInstrumentTrack() == _track;
}
void presetPreviewPlayHandle::init( void )
void presetPreviewPlayHandle::init()
{
if( !s_previewTC )
{
@@ -222,7 +219,7 @@ void presetPreviewPlayHandle::init( void )
void presetPreviewPlayHandle::cleanup( void )
void presetPreviewPlayHandle::cleanup()
{
delete s_previewTC;
s_previewTC = NULL;
@@ -242,11 +239,7 @@ ConstNotePlayHandleList presetPreviewPlayHandle::nphsOfInstrumentTrack(
cnphv.push_back( s_previewTC->previewNote() );
}
s_previewTC->unlockData();
return( cnphv );
return cnphv;
}
#endif

View File

@@ -1,8 +1,8 @@
/*
* sample_play_handle.cpp - implementation of class samplePlayHandle
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,7 +24,7 @@
#include "sample_play_handle.h"
#include "audio_port.h"
#include "AudioPort.h"
#include "bb_track.h"
#include "engine.h"
#include "instrument_track.h"
@@ -39,7 +39,7 @@ samplePlayHandle::samplePlayHandle( const QString & _sample_file ) :
m_sampleBuffer( new sampleBuffer( _sample_file ) ),
m_doneMayReturnTrue( true ),
m_frame( 0 ),
m_audioPort( new audioPort( "samplePlayHandle", false ) ),
m_audioPort( new AudioPort( "samplePlayHandle", false ) ),
m_ownAudioPort( true ),
m_defaultVolumeModel( DefaultVolume, MinVolume, MaxVolume, 1 ),
m_volumeModel( &m_defaultVolumeModel ),
@@ -56,7 +56,7 @@ samplePlayHandle::samplePlayHandle( sampleBuffer * _sample_buffer ) :
m_sampleBuffer( sharedObject::ref( _sample_buffer ) ),
m_doneMayReturnTrue( true ),
m_frame( 0 ),
m_audioPort( new audioPort( "samplePlayHandle", false ) ),
m_audioPort( new AudioPort( "samplePlayHandle", false ) ),
m_ownAudioPort( true ),
m_defaultVolumeModel( DefaultVolume, MinVolume, MaxVolume, 1 ),
m_volumeModel( &m_defaultVolumeModel ),
@@ -73,7 +73,7 @@ samplePlayHandle::samplePlayHandle( sampleTCO * _tco ) :
m_sampleBuffer( sharedObject::ref( _tco->getSampleBuffer() ) ),
m_doneMayReturnTrue( true ),
m_frame( 0 ),
m_audioPort( ( (sampleTrack *)_tco->getTrack() )->getAudioPort() ),
m_audioPort( ( (sampleTrack *)_tco->getTrack() )->audioPort() ),
m_ownAudioPort( false ),
m_defaultVolumeModel( DefaultVolume, MinVolume, MaxVolume, 1 ),
m_volumeModel( &m_defaultVolumeModel ),
@@ -90,7 +90,7 @@ samplePlayHandle::samplePlayHandle( pattern * _pattern ) :
m_sampleBuffer( sharedObject::ref( _pattern->getFrozenPattern() ) ),
m_doneMayReturnTrue( true ),
m_frame( 0 ),
m_audioPort( _pattern->getInstrumentTrack()->getAudioPort() ),
m_audioPort( _pattern->getInstrumentTrack()->audioPort() ),
m_ownAudioPort( false ),
m_defaultVolumeModel( DefaultVolume, MinVolume, MaxVolume, 1 ),
m_volumeModel( &m_defaultVolumeModel ),

View File

@@ -2,7 +2,7 @@
* song.cpp - root of the model-tree
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -47,14 +47,14 @@
#include "import_filter.h"
#include "instrument_track.h"
#include "main_window.h"
#include "midi_client.h"
#include "MidiClient.h"
#include "mmp.h"
#include "note_play_handle.h"
#include "pattern.h"
#include "piano_roll.h"
#include "project_journal.h"
#include "project_notes.h"
#include "project_renderer.h"
#include "ProjectRenderer.h"
#include "rename_dialog.h"
#include "song_editor.h"
#include "templates.h"
@@ -66,7 +66,7 @@ tick_t midiTime::s_ticksPerTact = DefaultTicksPerTact;
song::song( void ) :
song::song() :
trackContainer(),
m_globalAutomationTrack( dynamic_cast<automationTrack *>(
track::create( track::HiddenAutomationTrack,
@@ -123,7 +123,7 @@ song::~song()
void song::masterVolumeChanged( void )
void song::masterVolumeChanged()
{
engine::getMixer()->setMasterGain( m_masterVolumeModel.value() /
100.0f );
@@ -132,7 +132,7 @@ void song::masterVolumeChanged( void )
void song::setTempo( void )
void song::setTempo()
{
const bpm_t tempo = (bpm_t) m_tempoModel.value();
engine::getMixer()->lock();
@@ -156,7 +156,7 @@ void song::setTempo( void )
void song::setTimeSignature( void )
void song::setTimeSignature()
{
midiTime::setTicksPerTact( ticksPerTact() );
emit timeSignatureChanged( m_oldTicksPerTact, ticksPerTact() );
@@ -167,7 +167,7 @@ void song::setTimeSignature( void )
void song::doActions( void )
void song::doActions()
{
while( !m_actions.empty() )
{
@@ -281,7 +281,7 @@ void song::doActions( void )
void song::processNextBuffer( void )
void song::processNextBuffer()
{
doActions();
@@ -467,7 +467,7 @@ void song::processNextBuffer( void )
bool song::realTimeTask( void ) const
bool song::realTimeTask() const
{
return !( m_exporting == true || ( m_playMode == Mode_PlayPattern &&
m_patternToPlay != NULL &&
@@ -477,7 +477,7 @@ bool song::realTimeTask( void ) const
void song::play( void )
void song::play()
{
m_recording = false;
if( m_playing == true )
@@ -500,7 +500,7 @@ void song::play( void )
void song::record( void )
void song::record()
{
m_recording = true;
// TODO: Implement
@@ -509,7 +509,7 @@ void song::record( void )
void song::playAndRecord( void )
void song::playAndRecord()
{
play();
m_recording = true;
@@ -532,7 +532,7 @@ void song::playTrack( track * _trackToPlay )
void song::playBB( void )
void song::playBB()
{
if( m_playing == true )
{
@@ -561,7 +561,7 @@ void song::playPattern( pattern * _patternToPlay, bool _loop )
void song::updateLength( void )
void song::updateLength()
{
m_length = 0;
m_tracksMutex.lockForRead();
@@ -591,7 +591,7 @@ void song::setPlayPos( tick_t _ticks, PlayModes _play_mode )
void song::stop( void )
void song::stop()
{
m_actions.push_back( ActionStop );
}
@@ -601,7 +601,7 @@ void song::stop( void )
void song::pause( void )
void song::pause()
{
m_actions.push_back( ActionPause );
}
@@ -609,7 +609,7 @@ void song::pause( void )
void song::resumeFromPause( void )
void song::resumeFromPause()
{
m_actions.push_back( ActionResumeFromPause );
}
@@ -617,7 +617,7 @@ void song::resumeFromPause( void )
void song::startExport( void )
void song::startExport()
{
stop();
doActions();
@@ -631,7 +631,7 @@ void song::startExport( void )
void song::stopExport( void )
void song::stopExport()
{
stop();
m_exporting = false;
@@ -640,7 +640,7 @@ void song::stopExport( void )
void song::insertBar( void )
void song::insertBar()
{
m_tracksMutex.lockForRead();
for( trackList::const_iterator it = tracks().begin();
@@ -654,7 +654,7 @@ void song::insertBar( void )
void song::removeBar( void )
void song::removeBar()
{
m_tracksMutex.lockForRead();
for( trackList::const_iterator it = tracks().begin();
@@ -668,7 +668,7 @@ void song::removeBar( void )
void song::addBBTrack( void )
void song::addBBTrack()
{
engine::getMixer()->lock();
track * t = track::create( track::BBTrack, this );
@@ -680,7 +680,7 @@ void song::addBBTrack( void )
void song::addSampleTrack( void )
void song::addSampleTrack()
{
engine::getMixer()->lock();
(void) track::create( track::SampleTrack, this );
@@ -690,7 +690,7 @@ void song::addSampleTrack( void )
void song::addAutomationTrack( void )
void song::addAutomationTrack()
{
engine::getMixer()->lock();
(void) track::create( track::AutomationTrack, this );
@@ -700,7 +700,7 @@ void song::addAutomationTrack( void )
bpm_t song::getTempo( void )
bpm_t song::getTempo()
{
return (bpm_t) m_tempoModel.value();
}
@@ -708,7 +708,7 @@ bpm_t song::getTempo( void )
automationPattern * song::tempoAutomationPattern( void )
automationPattern * song::tempoAutomationPattern()
{
return automationPattern::globalAutomationPattern( &m_tempoModel );
}
@@ -716,7 +716,7 @@ automationPattern * song::tempoAutomationPattern( void )
void song::clearProject( void )
void song::clearProject()
{
engine::getProjectJournal()->setJournalling( false );
@@ -779,7 +779,7 @@ void song::clearProject( void )
// create new file
void song::createNewProject( void )
void song::createNewProject()
{
QString default_template = configManager::inst()->userProjectsDir()
+ "templates/default.mpt";
@@ -996,7 +996,7 @@ void song::loadProject( const QString & _file_name )
// save current song
bool song::saveProject( void )
bool song::saveProject()
{
multimediaProject mmp( multimediaProject::SongProject );
@@ -1069,7 +1069,7 @@ bool song::saveProjectAs( const QString & _file_name )
void song::importProject( void )
void song::importProject()
{
QFileDialog ofd( NULL, tr( "Import file" ),
configManager::inst()->userProjectsDir(),
@@ -1112,7 +1112,7 @@ void song::restoreControllerStates( const QDomElement & _this )
void song::exportProject( void )
void song::exportProject()
{
if( isEmpty() )
{
@@ -1130,7 +1130,7 @@ void song::exportProject( void )
int idx = 0;
QStringList types;
while( __fileEncodeDevices[idx].m_fileFormat !=
projectRenderer::NumFileFormats )
ProjectRenderer::NumFileFormats )
{
types << tr( __fileEncodeDevices[idx].m_description );
++idx;
@@ -1138,7 +1138,7 @@ void song::exportProject( void )
efd.setFilters( types );
QString base_filename;
if( m_fileName != "" )
if( !m_fileName.isEmpty() )
{
efd.setDirectory( QFileInfo( m_fileName ).absolutePath() );
base_filename = QFileInfo( m_fileName ).completeBaseName();
@@ -1152,7 +1152,7 @@ void song::exportProject( void )
efd.setWindowTitle( tr( "Select file for project-export..." ) );
if( efd.exec() == QDialog::Accepted &&
!efd.selectedFiles().isEmpty() && efd.selectedFiles()[0] != "" )
!efd.selectedFiles().isEmpty() && !efd.selectedFiles()[0].isEmpty() )
{
const QString export_file_name = efd.selectedFiles()[0];
exportProjectDialog epd( export_file_name,
@@ -1164,7 +1164,7 @@ void song::exportProject( void )
void song::updateFramesPerTick( void )
void song::updateFramesPerTick()
{
engine::updateFramesPerTick();
}
@@ -1172,7 +1172,7 @@ void song::updateFramesPerTick( void )
void song::setModified( void )
void song::setModified()
{
if( !m_loadingProject )
{

View File

@@ -33,9 +33,8 @@
#include "ControllerConnectionDialog.h"
#include "ControllerConnection.h"
#include "MidiController.h"
#include "midi_client.h"
#include "midi_port_menu.h"
#include "midi.h"
#include "MidiClient.h"
#include "MidiPortMenu.h"
#include "lcd_spinbox.h"
#include "led_checkbox.h"
#include "combobox.h"
@@ -158,9 +157,9 @@ ControllerConnectionDialog::ControllerConnectionDialog( QWidget * _parent,
// when using with non-raw-clients we can provide buttons showing
// our port-menus when being clicked
if( !engine::getMixer()->getMidiClient()->isRaw() )
if( !engine::getMixer()->midiClient()->isRaw() )
{
m_readablePorts = new midiPortMenu( midiPort::Input );
m_readablePorts = new MidiPortMenu( MidiPort::Input );
connect( m_readablePorts, SIGNAL( triggered( QAction * ) ),
this, SLOT( enableAutoDetect( QAction * ) ) );
toolButton * rp_btn = new toolButton( m_midiGroupBox );

View File

@@ -28,7 +28,7 @@
#include "export_project_dialog.h"
#include "engine.h"
#include "main_window.h"
#include "project_renderer.h"
#include "ProjectRenderer.h"
exportProjectDialog::exportProjectDialog( const QString & _file_name,
@@ -42,11 +42,11 @@ exportProjectDialog::exportProjectDialog( const QString & _file_name,
setWindowTitle( tr( "Export project to %1" ).arg(
QFileInfo( _file_name ).fileName() ) );
for( int i = 0; i < projectRenderer::NumFileFormats; ++i )
for( int i = 0; i < ProjectRenderer::NumFileFormats; ++i )
{
if( __fileEncodeDevices[i].m_getDevInst != NULL )
{
fileFormatCB->addItem( projectRenderer::tr(
fileFormatCB->addItem( ProjectRenderer::tr(
__fileEncodeDevices[i].m_description ) );
}
}
@@ -96,12 +96,12 @@ void exportProjectDialog::closeEvent( QCloseEvent * _ce )
void exportProjectDialog::startBtnClicked()
{
projectRenderer::ExportFileFormats ft = projectRenderer::NumFileFormats;
ProjectRenderer::ExportFileFormats ft = ProjectRenderer::NumFileFormats;
for( int i = 0; i < projectRenderer::NumFileFormats; ++i )
for( int i = 0; i < ProjectRenderer::NumFileFormats; ++i )
{
if( fileFormatCB->currentText() ==
projectRenderer::tr(
ProjectRenderer::tr(
__fileEncodeDevices[i].m_description ) )
{
ft = __fileEncodeDevices[i].m_fileFormat;
@@ -109,7 +109,7 @@ void exportProjectDialog::startBtnClicked()
}
}
if( ft == projectRenderer::NumFileFormats )
if( ft == ProjectRenderer::NumFileFormats )
{
QMessageBox::information( this, tr( "Error" ),
tr( "Error while determining file-encoder device. "
@@ -119,8 +119,8 @@ void exportProjectDialog::startBtnClicked()
return;
}
startButton->setEnabled( FALSE );
progressBar->setEnabled( TRUE );
startButton->setEnabled( false );
progressBar->setEnabled( true );
updateTitleBar( 0 );
@@ -132,14 +132,14 @@ void exportProjectDialog::startBtnClicked()
sampleExactControllersCB->isChecked(),
aliasFreeOscillatorsCB->isChecked() );
projectRenderer::outputSettings os = projectRenderer::outputSettings(
ProjectRenderer::OutputSettings os = ProjectRenderer::OutputSettings(
samplerateCB->currentText().section( " ", 0, 0 ).toUInt(),
FALSE,
false,
bitrateCB->currentText().section( " ", 0, 0 ).toUInt(),
static_cast<projectRenderer::Depths>(
static_cast<ProjectRenderer::Depths>(
depthCB->currentIndex() ) );
m_renderer = new projectRenderer( qs, os, ft, m_fileName );
m_renderer = new ProjectRenderer( qs, os, ft, m_fileName );
if( m_renderer->isReady() )
{
connect( m_renderer, SIGNAL( progressChanged( int ) ),

View File

@@ -55,7 +55,7 @@
#include "plugin_view.h"
#include "project_notes.h"
#include "setup_dialog.h"
#include "audio_dummy.h"
#include "AudioDummy.h"
#include "tool.h"
#include "tool_button.h"
#include "project_journal.h"
@@ -490,8 +490,8 @@ void mainWindow::finalize( void )
setupDialog sd;
sd.exec();
}
// look whether mixer could use a audio-interface beside audioDummy
else if( engine::getMixer()->audioDevName() == audioDummy::name() )
// look whether mixer could use a audio-interface beside AudioDummy
else if( engine::getMixer()->audioDevName() == AudioDummy::name() )
{
// no, so we offer setup-dialog with audio-settings...
setupDialog sd( setupDialog::AudioSettings );

View File

@@ -1,10 +1,8 @@
#ifndef SINGLE_SOURCE_COMPILE
/*
* setup_dialog.cpp - dialog for setting up LMMS
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -24,7 +22,6 @@
*
*/
#include <QtGui/QComboBox>
#include <QtGui/QFileDialog>
#include <QtGui/QImageReader>
@@ -35,7 +32,6 @@
#include <QtGui/QSlider>
#include <QtGui/QWhatsThis>
#include "setup_dialog.h"
#include "tab_bar.h"
#include "tab_button.h"
@@ -53,27 +49,28 @@
// platform-specific audio-interface-classes
#include "audio_alsa.h"
#include "audio_jack.h"
#include "audio_oss.h"
#include "audio_portaudio.h"
#include "audio_pulseaudio.h"
#include "audio_sdl.h"
#include "audio_dummy.h"
#include "AudioAlsa.h"
#include "AudioJack.h"
#include "AudioOss.h"
#include "AudioPortAudio.h"
#include "AudioPulseAudio.h"
#include "AudioSdl.h"
#include "AudioDummy.h"
// platform-specific midi-interface-classes
#include "midi_alsa_raw.h"
#include "midi_alsa_seq.h"
#include "midi_oss.h"
#include "midi_winmm.h"
#include "midi_dummy.h"
#include "MidiAlsaRaw.h"
#include "MidiAlsaSeq.h"
#include "MidiOss.h"
#include "MidiWinMM.h"
#include "MidiDummy.h"
inline void labelWidget( QWidget * _w, const QString & _txt )
{
QLabel * title = new QLabel( _txt, _w );
QFont f = title->font();
f.setBold( TRUE );
f.setBold( true );
title->setFont( pointSize<12>( f ) );
#ifdef LMMS_DEBUG
@@ -118,9 +115,9 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
{
setWindowIcon( embed::getIconPixmap( "setup_general" ) );
setWindowTitle( tr( "Setup LMMS" ) );
setModal( TRUE );
setModal( true );
engine::getProjectJournal()->setJournalling( FALSE );
engine::getProjectJournal()->setJournalling( false );
QVBoxLayout * vlayout = new QVBoxLayout( this );
vlayout->setSpacing( 0 );
@@ -131,7 +128,7 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
hlayout->setMargin( 0 );
m_tabBar = new tabBar( settings, QBoxLayout::TopToBottom );
m_tabBar->setExclusive( TRUE );
m_tabBar->setExclusive( true );
m_tabBar->setFixedWidth( 72 );
QWidget * ws = new QWidget( settings );
@@ -501,42 +498,42 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
QHBoxLayout * asw_layout = new QHBoxLayout( asw );
asw_layout->setSpacing( 0 );
asw_layout->setMargin( 0 );
//asw_layout->setAutoAdd( TRUE );
//asw_layout->setAutoAdd( true );
#ifdef LMMS_HAVE_JACK
m_audioIfaceSetupWidgets[audioJACK::name()] =
new audioJACK::setupWidget( asw );
m_audioIfaceSetupWidgets[AudioJack::name()] =
new AudioJack::setupWidget( asw );
#endif
#ifdef LMMS_HAVE_ALSA
m_audioIfaceSetupWidgets[audioALSA::name()] =
new audioALSA::setupWidget( asw );
m_audioIfaceSetupWidgets[AudioAlsa::name()] =
new AudioAlsa::setupWidget( asw );
#endif
#ifdef LMMS_HAVE_PULSEAUDIO
m_audioIfaceSetupWidgets[audioPulseAudio::name()] =
new audioPulseAudio::setupWidget( asw );
m_audioIfaceSetupWidgets[AudioPulseAudio::name()] =
new AudioPulseAudio::setupWidget( asw );
#endif
#ifdef LMMS_HAVE_PORTAUDIO
m_audioIfaceSetupWidgets[audioPortAudio::name()] =
new audioPortAudio::setupWidget( asw );
m_audioIfaceSetupWidgets[AudioPortAudio::name()] =
new AudioPortAudio::setupWidget( asw );
#endif
#ifdef LMMS_HAVE_SDL
m_audioIfaceSetupWidgets[audioSDL::name()] =
new audioSDL::setupWidget( asw );
m_audioIfaceSetupWidgets[AudioSdl::name()] =
new AudioSdl::setupWidget( asw );
#endif
#ifdef LMMS_HAVE_OSS
m_audioIfaceSetupWidgets[audioOSS::name()] =
new audioOSS::setupWidget( asw );
m_audioIfaceSetupWidgets[AudioOss::name()] =
new AudioOss::setupWidget( asw );
#endif
m_audioIfaceSetupWidgets[audioDummy::name()] =
new audioDummy::setupWidget( asw );
m_audioIfaceSetupWidgets[AudioDummy::name()] =
new AudioDummy::setupWidget( asw );
for( aswMap::iterator it = m_audioIfaceSetupWidgets.begin();
for( AswMap::iterator it = m_audioIfaceSetupWidgets.begin();
it != m_audioIfaceSetupWidgets.end(); ++it )
{
m_audioIfaceNames[tr( it.key().toAscii())] = it.key();
@@ -593,30 +590,30 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
QHBoxLayout * msw_layout = new QHBoxLayout( msw );
msw_layout->setSpacing( 0 );
msw_layout->setMargin( 0 );
//msw_layout->setAutoAdd( TRUE );
//msw_layout->setAutoAdd( true );
#ifdef LMMS_HAVE_ALSA
m_midiIfaceSetupWidgets[midiALSASeq::name()] =
new midiALSASeq::setupWidget( msw );
m_midiIfaceSetupWidgets[midiALSARaw::name()] =
new midiALSARaw::setupWidget( msw );
m_midiIfaceSetupWidgets[MidiAlsaSeq::name()] =
new MidiAlsaSeq::setupWidget( msw );
m_midiIfaceSetupWidgets[MidiAlsaRaw::name()] =
new MidiAlsaRaw::setupWidget( msw );
#endif
#ifdef LMMS_HAVE_OSS
m_midiIfaceSetupWidgets[midiOSS::name()] =
new midiOSS::setupWidget( msw );
m_midiIfaceSetupWidgets[MidiOss::name()] =
new MidiOss::setupWidget( msw );
#endif
#ifdef LMMS_BUILD_WIN32
m_midiIfaceSetupWidgets[midiWinMM::name()] =
new midiWinMM::setupWidget( msw );
m_midiIfaceSetupWidgets[MidiWinMM::name()] =
new MidiWinMM::setupWidget( msw );
#endif
m_midiIfaceSetupWidgets[midiDummy::name()] =
new midiDummy::setupWidget( msw );
m_midiIfaceSetupWidgets[MidiDummy::name()] =
new MidiDummy::setupWidget( msw );
for( mswMap::iterator it = m_midiIfaceSetupWidgets.begin();
for( MswMap::iterator it = m_midiIfaceSetupWidgets.begin();
it != m_midiIfaceSetupWidgets.end(); ++it )
{
m_midiIfaceNames[tr( it.key().toAscii())] = it.key();
@@ -644,17 +641,17 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
midi_layout->addStretch();
m_tabBar->addTab( general, tr( "General settings" ), 0, FALSE, TRUE
m_tabBar->addTab( general, tr( "General settings" ), 0, false, true
)->setIcon( embed::getIconPixmap( "setup_general" ) );
m_tabBar->addTab( paths, tr( "Paths" ), 1, FALSE, TRUE
m_tabBar->addTab( paths, tr( "Paths" ), 1, false, true
)->setIcon( embed::getIconPixmap(
"setup_directories" ) );
m_tabBar->addTab( performance, tr( "Performance settings" ), 2, FALSE,
TRUE )->setIcon( embed::getIconPixmap(
m_tabBar->addTab( performance, tr( "Performance settings" ), 2, false,
true )->setIcon( embed::getIconPixmap(
"setup_performance" ) );
m_tabBar->addTab( audio, tr( "Audio settings" ), 3, FALSE, TRUE
m_tabBar->addTab( audio, tr( "Audio settings" ), 3, false, true
)->setIcon( embed::getIconPixmap( "setup_audio" ) );
m_tabBar->addTab( midi, tr( "MIDI settings" ), 4, TRUE, TRUE
m_tabBar->addTab( midi, tr( "MIDI settings" ), 4, true, true
)->setIcon( embed::getIconPixmap( "setup_midi" ) );
@@ -703,13 +700,13 @@ setupDialog::setupDialog( ConfigTabs _tab_to_open ) :
setupDialog::~setupDialog()
{
engine::getProjectJournal()->setJournalling( TRUE );
engine::getProjectJournal()->setJournalling( true );
}
void setupDialog::accept( void )
void setupDialog::accept()
{
configManager::inst()->setValue( "mixer", "framesperaudiobuffer",
QString::number( m_bufferSize ) );
@@ -747,13 +744,13 @@ void setupDialog::accept( void )
configManager::inst()->setBackgroundArtwork( m_backgroundArtwork );
// tell all audio-settings-widget to save their settings
for( aswMap::iterator it = m_audioIfaceSetupWidgets.begin();
for( AswMap::iterator it = m_audioIfaceSetupWidgets.begin();
it != m_audioIfaceSetupWidgets.end(); ++it )
{
it.value()->saveSettings();
}
// tell all MIDI-settings-widget to save their settings
for( mswMap::iterator it = m_midiIfaceSetupWidgets.begin();
for( MswMap::iterator it = m_midiIfaceSetupWidgets.begin();
it != m_midiIfaceSetupWidgets.end(); ++it )
{
it.value()->saveSettings();
@@ -808,7 +805,7 @@ void setupDialog::setBufferSize( int _value )
void setupDialog::resetBufSize( void )
void setupDialog::resetBufSize()
{
setBufferSize( DEFAULT_BUFFER_SIZE / 64 );
}
@@ -816,7 +813,7 @@ void setupDialog::resetBufSize( void )
void setupDialog::displayBufSizeHelp( void )
void setupDialog::displayBufSizeHelp()
{
QWhatsThis::showText( QCursor::pos(),
tr( "Here you can setup the internal buffer-size "
@@ -888,7 +885,7 @@ void setupDialog::toggleManualChPiano( bool _enabled )
void setupDialog::openWorkingDir( void )
void setupDialog::openWorkingDir()
{
QString new_dir = QFileDialog::getExistingDirectory( this,
tr( "Choose LMMS working directory" ),
@@ -910,7 +907,7 @@ void setupDialog::setWorkingDir( const QString & _wd )
void setupDialog::openVSTDir( void )
void setupDialog::openVSTDir()
{
QString new_dir = QFileDialog::getExistingDirectory( this,
tr( "Choose your VST-plugin directory" ),
@@ -932,7 +929,7 @@ void setupDialog::setVSTDir( const QString & _vd )
void setupDialog::openArtworkDir( void )
void setupDialog::openArtworkDir()
{
QString new_dir = QFileDialog::getExistingDirectory( this,
tr( "Choose artwork-theme directory" ),
@@ -954,7 +951,7 @@ void setupDialog::setArtworkDir( const QString & _ad )
void setupDialog::openFLDir( void )
void setupDialog::openFLDir()
{
QString new_dir = QFileDialog::getExistingDirectory( this,
tr( "Choose FL Studio installation directory" ),
@@ -968,7 +965,7 @@ void setupDialog::openFLDir( void )
void setupDialog::openLADSPADir( void )
void setupDialog::openLADSPADir()
{
QString new_dir = QFileDialog::getExistingDirectory( this,
tr( "Choose LADSPA plugin directory" ),
@@ -990,7 +987,7 @@ void setupDialog::openLADSPADir( void )
void setupDialog::openSTKDir( void )
void setupDialog::openSTKDir()
{
#ifdef LMMS_HAVE_STK
QString new_dir = QFileDialog::getExistingDirectory( this,
@@ -1006,7 +1003,7 @@ void setupDialog::openSTKDir( void )
void setupDialog::openDefaultSoundfont( void )
void setupDialog::openDefaultSoundfont()
{
#ifdef LMMS_HAVE_FLUIDSYNTH
QString new_file = QFileDialog::getOpenFileName( this,
@@ -1023,7 +1020,7 @@ void setupDialog::openDefaultSoundfont( void )
void setupDialog::openBackgroundArtwork( void )
void setupDialog::openBackgroundArtwork()
{
QList<QByteArray> fileTypesList = QImageReader::supportedImageFormats();
QString fileTypes;
@@ -1103,7 +1100,7 @@ void setupDialog::setBackgroundArtwork( const QString & _ba )
void setupDialog::audioInterfaceChanged( const QString & _iface )
{
for( aswMap::iterator it = m_audioIfaceSetupWidgets.begin();
for( AswMap::iterator it = m_audioIfaceSetupWidgets.begin();
it != m_audioIfaceSetupWidgets.end(); ++it )
{
it.value()->hide();
@@ -1115,7 +1112,7 @@ void setupDialog::audioInterfaceChanged( const QString & _iface )
void setupDialog::displayAudioHelp( void )
void setupDialog::displayAudioHelp()
{
QWhatsThis::showText( QCursor::pos(),
tr( "Here you can select your preferred "
@@ -1133,7 +1130,7 @@ void setupDialog::displayAudioHelp( void )
void setupDialog::midiInterfaceChanged( const QString & _iface )
{
for( mswMap::iterator it = m_midiIfaceSetupWidgets.begin();
for( MswMap::iterator it = m_midiIfaceSetupWidgets.begin();
it != m_midiIfaceSetupWidgets.end(); ++it )
{
it.value()->hide();
@@ -1145,7 +1142,7 @@ void setupDialog::midiInterfaceChanged( const QString & _iface )
void setupDialog::displayMIDIHelp( void )
void setupDialog::displayMIDIHelp()
{
QWhatsThis::showText( QCursor::pos(),
tr( "Here you can select your preferred "
@@ -1163,5 +1160,3 @@ void setupDialog::displayMIDIHelp( void )
#include "moc_setup_dialog.cxx"
#endif

View File

@@ -47,7 +47,7 @@
#include "tool_button.h"
#include "tooltip.h"
#include "visualization_widget.h"
#include "audio_device.h"
#include "AudioDevice.h"
#include "piano_roll.h"

View File

@@ -1,9 +1,9 @@
/*
* midi_port_menu.cpp - a menu for subscribing a midiPort to several external
* MidiPortMenu.cpp - a menu for subscribing a MidiPort to several external
* MIDI ports
*
* Copyright (c) 2008-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,13 +23,12 @@
*
*/
#include "midi_port_menu.h"
#include "MidiPortMenu.h"
#include "gui_templates.h"
midiPortMenu::midiPortMenu( midiPort::Modes _mode ) :
MidiPortMenu::MidiPortMenu( MidiPort::Modes _mode ) :
modelView( NULL, this ),
m_mode( _mode )
{
@@ -41,22 +40,22 @@ midiPortMenu::midiPortMenu( midiPort::Modes _mode ) :
midiPortMenu::~midiPortMenu()
MidiPortMenu::~MidiPortMenu()
{
}
void midiPortMenu::modelChanged( void )
void MidiPortMenu::modelChanged()
{
midiPort * mp = castModel<midiPort>();
if( m_mode == midiPort::Input )
MidiPort * mp = castModel<MidiPort>();
if( m_mode == MidiPort::Input )
{
connect( mp, SIGNAL( readablePortsChanged() ),
this, SLOT( updatePorts() ) );
}
else if( m_mode == midiPort::Output )
else if( m_mode == MidiPort::Output )
{
connect( mp, SIGNAL( writablePortsChanged() ),
this, SLOT( updatePorts() ) );
@@ -67,16 +66,16 @@ void midiPortMenu::modelChanged( void )
void midiPortMenu::activatedPort( QAction * _item )
void MidiPortMenu::activatedPort( QAction * _item )
{
if( m_mode == midiPort::Input )
if( m_mode == MidiPort::Input )
{
castModel<midiPort>()->subscribeReadablePort( _item->text(),
castModel<MidiPort>()->subscribeReadablePort( _item->text(),
_item->isChecked() );
}
else if( m_mode == midiPort::Output )
else if( m_mode == MidiPort::Output )
{
castModel<midiPort>()->subscribeWritablePort( _item->text(),
castModel<MidiPort>()->subscribeWritablePort( _item->text(),
_item->isChecked() );
}
}
@@ -84,13 +83,13 @@ void midiPortMenu::activatedPort( QAction * _item )
void midiPortMenu::updatePorts( void )
void MidiPortMenu::updatePorts()
{
midiPort * mp = castModel<midiPort>();
const midiPort::map & map = ( m_mode == midiPort::Input ) ?
MidiPort * mp = castModel<MidiPort>();
const MidiPort::Map & map = ( m_mode == MidiPort::Input ) ?
mp->readablePorts() : mp->writablePorts();
clear();
for( midiPort::map::const_iterator it = map.begin();
for( MidiPort::Map::ConstIterator it = map.begin();
it != map.end(); ++it )
{
QAction * a = addAction( it.key() );
@@ -101,5 +100,5 @@ void midiPortMenu::updatePorts( void )
#include "moc_midi_port_menu.cxx"
#include "moc_MidiPortMenu.cxx"

View File

@@ -2,8 +2,8 @@
* effect_view.cpp - view-component for an effect
*
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2007-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2007-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -32,7 +32,6 @@
#include <QtGui/QMdiSubWindow>
#include <QtGui/QPainter>
#include "audio_port.h"
#include "caption_menu.h"
#include "effect_controls.h"
#include "effect_control_dialog.h"

View File

@@ -1,7 +1,7 @@
/*
* instrument_midi_io_view.cpp - MIDI-IO-View
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -22,19 +22,17 @@
*
*/
#include <QtGui/QMenu>
#include <QtGui/QToolButton>
#include "instrument_midi_io_view.h"
#include "midi_port_menu.h"
#include "MidiPortMenu.h"
#include "engine.h"
#include "embed.h"
#include "group_box.h"
#include "gui_templates.h"
#include "lcd_spinbox.h"
#include "midi_client.h"
#include "MidiClient.h"
#include "mixer.h"
#include "tooltip.h"
@@ -95,18 +93,16 @@ instrumentMidiIOView::instrumentMidiIOView( QWidget * _parent ) :
m_outputProgramSpinBox, SLOT( setEnabled( bool ) ) );
if( !engine::getMixer()->getMidiClient()->isRaw() )
if( !engine::getMixer()->midiClient()->isRaw() )
{
m_rpBtn = new QToolButton( m_midiInputGroupBox );
m_rpBtn->setText( tr( "MIDI-devices to receive "
"MIDI-events from" ) );
m_rpBtn->setText( tr( "MIDI devices to receive MIDI events from" ) );
m_rpBtn->setIcon( embed::getIconPixmap( "piano" ) );
m_rpBtn->setGeometry( 186, 24, 32, 32 );
m_rpBtn->setPopupMode( QToolButton::InstantPopup );
m_wpBtn = new QToolButton( m_midiOutputGroupBox );
m_wpBtn->setText( tr( "MIDI-devices to send MIDI-events "
"to" ) );
m_wpBtn->setText( tr( "MIDI devices to send MIDI events to" ) );
m_wpBtn->setIcon( embed::getIconPixmap( "piano" ) );
m_wpBtn->setGeometry( 186, 24, 32, 32 );
m_wpBtn->setPopupMode( QToolButton::InstantPopup );
@@ -123,9 +119,9 @@ instrumentMidiIOView::~instrumentMidiIOView()
void instrumentMidiIOView::modelChanged( void )
void instrumentMidiIOView::modelChanged()
{
midiPort * mp = castModel<midiPort>();
MidiPort * mp = castModel<MidiPort>();
m_midiInputGroupBox->setModel( &mp->m_readableModel );
m_inputChannelSpinBox->setModel( &mp->m_inputChannelModel );

View File

@@ -3,7 +3,7 @@
* (window + data-structures)
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,7 +23,6 @@
*
*/
#include <QtCore/QDir>
#include <QtCore/QFile>
#include <QtCore/QQueue>
@@ -40,7 +39,7 @@
#include <QtGui/QPainter>
#include "instrument_track.h"
#include "audio_port.h"
#include "AudioPort.h"
#include "automation_pattern.h"
#include "bb_track.h"
#include "config_mgr.h"
@@ -62,8 +61,8 @@
#include "lcd_spinbox.h"
#include "led_checkbox.h"
#include "main_window.h"
#include "midi_client.h"
#include "midi_port_menu.h"
#include "MidiClient.h"
#include "MidiPortMenu.h"
#include "mmp.h"
#include "note_play_handle.h"
#include "pattern.h"
@@ -94,7 +93,7 @@ instrumentTrack::instrumentTrack( trackContainer * _tc ) :
track( InstrumentTrack, _tc ),
MidiEventProcessor(),
m_audioPort( tr( "unnamed_track" ) ),
m_midiPort( tr( "unnamed_track" ), engine::getMixer()->getMidiClient(),
m_midiPort( tr( "unnamed_track" ), engine::getMixer()->midiClient(),
this, this ),
m_notes(),
m_baseNoteModel( 0, 0, KeysPerOctave * NumOctaves - 1, this,
@@ -365,12 +364,12 @@ void instrumentTrack::processOutEvent( const midiEvent & _me,
if( m_runningMidiNotes[k] > 0 )
{
m_instrument->handleMidiEvent(
midiEvent( MidiNoteOff, getMidiPort()->realOutputChannel(), k, 0 ),
midiEvent( MidiNoteOff, midiPort()->realOutputChannel(), k, 0 ),
_time );
}
++m_runningMidiNotes[k];
m_instrument->handleMidiEvent(
midiEvent( MidiNoteOn, getMidiPort()->realOutputChannel(), k,
midiEvent( MidiNoteOn, midiPort()->realOutputChannel(), k,
_me.velocity() ), _time );
}
break;
@@ -386,7 +385,7 @@ void instrumentTrack::processOutEvent( const midiEvent & _me,
--m_runningMidiNotes[k] <= 0 )
{
m_instrument->handleMidiEvent(
midiEvent( MidiNoteOff, getMidiPort()->realOutputChannel(), k, 0 ),
midiEvent( MidiNoteOff, midiPort()->realOutputChannel(), k, 0 ),
_time );
}
break;
@@ -539,7 +538,7 @@ void instrumentTrack::updatePitch( void )
{
updateBaseNote();
processOutEvent( midiEvent( MidiPitchBend,
getMidiPort()->realOutputChannel(),
midiPort()->realOutputChannel(),
midiPitch() ), 0 );
}
@@ -908,12 +907,12 @@ instrumentTrackView::instrumentTrackView( instrumentTrack * _it,
m_midiMenu = new QMenu( tr( "MIDI" ), this );
// sequenced MIDI?
if( !engine::getMixer()->getMidiClient()->isRaw() )
if( !engine::getMixer()->midiClient()->isRaw() )
{
_it->m_midiPort.m_readablePortsMenu = new midiPortMenu(
midiPort::Input );
_it->m_midiPort.m_writablePortsMenu = new midiPortMenu(
midiPort::Output );
_it->m_midiPort.m_readablePortsMenu = new MidiPortMenu(
MidiPort::Input );
_it->m_midiPort.m_writablePortsMenu = new MidiPortMenu(
MidiPort::Output );
_it->m_midiPort.m_readablePortsMenu->setModel(
&_it->m_midiPort );
_it->m_midiPort.m_writablePortsMenu->setModel(

View File

@@ -3,7 +3,7 @@
*
* Copyright (c) 2004-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2005-2007 Danny McRae <khjklujn/at/yahoo.com>
*
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,7 +23,6 @@
*
*/
#include <QtXml/QDomElement>
#include <QtCore/QTimer>
#include <QtGui/QMenu>
@@ -34,8 +33,6 @@
#include <QtGui/QPushButton>
#include <QtAlgorithms>
#include "pattern.h"
#include "instrument_track.h"
#include "templates.h"
@@ -46,7 +43,7 @@
#include "track_container.h"
#include "rename_dialog.h"
#include "sample_buffer.h"
#include "audio_sample_recorder.h"
#include "AudioSampleRecorder.h"
#include "song.h"
#include "tooltip.h"
#include "bb_track_container.h"
@@ -743,8 +740,8 @@ void patternFreezeThread::run( void )
bool b;
// we cannot create local copy, because at a later stage
// mixer::restoreAudioDevice(...) deletes old audio-dev and thus
// audioSampleRecorder would be destroyed two times...
audioSampleRecorder * freeze_recorder = new audioSampleRecorder(
// AudioSampleRecorder would be destroyed two times...
AudioSampleRecorder * freeze_recorder = new AudioSampleRecorder(
DEFAULT_CHANNELS, b,
engine::getMixer() );
engine::getMixer()->setAudioDevice( freeze_recorder );

View File

@@ -2,8 +2,8 @@
* sample_track.cpp - implementation of class sampleTrack, a track which
* provides arrangement of samples
*
* Copyright (c) 2005-2008 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* Copyright (c) 2005-2009 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
* This program is free software; you can redistribute it and/or
@@ -23,7 +23,6 @@
*
*/
#include <QtXml/QDomElement>
#include <QtGui/QDropEvent>
#include <QtGui/QMenu>
@@ -38,7 +37,7 @@
#include "embed.h"
#include "engine.h"
#include "tooltip.h"
#include "audio_port.h"
#include "AudioPort.h"
#include "sample_play_handle.h"
#include "sample_record_handle.h"
#include "string_pair_drag.h"
@@ -53,7 +52,7 @@ sampleTCO::sampleTCO( track * _track ) :
trackContentObject( _track ),
m_sampleBuffer( new sampleBuffer )
{
saveJournallingState( FALSE );
saveJournallingState( false );
setSampleFile( "" );
restoreJournallingState();
@@ -83,9 +82,9 @@ void sampleTCO::changeLength( const midiTime & _length )
const QString & sampleTCO::sampleFile( void ) const
const QString & sampleTCO::sampleFile() const
{
return( m_sampleBuffer->audioFile() );
return m_sampleBuffer->audioFile();
}
@@ -112,7 +111,7 @@ void sampleTCO::setSampleFile( const QString & _sf )
void sampleTCO::toggleRecord( void )
void sampleTCO::toggleRecord()
{
m_recordModel.setValue( !m_recordModel.value() );
emit dataChanged();
@@ -129,9 +128,9 @@ void sampleTCO::updateLength( bpm_t )
midiTime sampleTCO::sampleLength( void ) const
midiTime sampleTCO::sampleLength() const
{
return( (int)( m_sampleBuffer->frames() / engine::framesPerTick() ) );
return (int)( m_sampleBuffer->frames() / engine::framesPerTick() );
}
@@ -181,7 +180,7 @@ void sampleTCO::loadSettings( const QDomElement & _this )
trackContentObjectView * sampleTCO::createView( trackView * _tv )
{
return( new sampleTCOView( this, _tv ) );
return new sampleTCOView( this, _tv );
}
@@ -211,7 +210,7 @@ sampleTCOView::~sampleTCOView()
void sampleTCOView::updateSample( void )
void sampleTCOView::updateSample()
{
update();
// set tooltip to filename so that user can see what sample this
@@ -227,7 +226,7 @@ void sampleTCOView::updateSample( void )
void sampleTCOView::contextMenuEvent( QContextMenuEvent * _cme )
{
QMenu contextMenu( this );
if( fixedTCOs() == FALSE )
if( fixedTCOs() == false )
{
contextMenu.addAction( embed::getIconPixmap( "cancel" ),
tr( "Delete (middle mousebutton)" ),
@@ -258,7 +257,7 @@ void sampleTCOView::contextMenuEvent( QContextMenuEvent * _cme )
void sampleTCOView::dragEnterEvent( QDragEnterEvent * _dee )
{
if( stringPairDrag::processDragEnterEvent( _dee,
"samplefile,sampledata" ) == FALSE )
"samplefile,sampledata" ) == false )
{
trackContentObjectView::dragEnterEvent( _dee );
}
@@ -406,7 +405,7 @@ bool sampleTrack::play( const midiTime & _start, const fpp_t _frames,
Sint16 /*_tco_num*/ )
{
m_audioPort.getEffects()->startRunning();
bool played_a_note = FALSE; // will be return variable
bool played_a_note = false; // will be return variable
for( int i = 0; i < numOfTCOs(); ++i )
{
@@ -423,7 +422,7 @@ bool sampleTrack::play( const midiTime & _start, const fpp_t _frames,
{
if( !engine::getSong()->isRecording() )
{
return( played_a_note );
return played_a_note;
}
sampleRecordHandle * smpHandle = new sampleRecordHandle( st );
handle = smpHandle;
@@ -439,11 +438,11 @@ bool sampleTrack::play( const midiTime & _start, const fpp_t _frames,
handle->setOffset( _offset );
// send it to the mixer
engine::getMixer()->addPlayHandle( handle );
played_a_note = TRUE;
played_a_note = true;
}
}
return( played_a_note );
return played_a_note;
}
@@ -451,7 +450,7 @@ bool sampleTrack::play( const midiTime & _start, const fpp_t _frames,
trackView * sampleTrack::createView( trackContainerView * _tcv )
{
return( new sampleTrackView( this, _tcv ) );
return new sampleTrackView( this, _tcv );
}
@@ -459,7 +458,7 @@ trackView * sampleTrack::createView( trackContainerView * _tcv )
trackContentObject * sampleTrack::createTCO( const midiTime & )
{
return( new sampleTCO( this ) );
return new sampleTCO( this );
}
@@ -518,19 +517,19 @@ sampleTrackView::sampleTrackView( sampleTrack * _t, trackContainerView * _tcv )
m_volumeKnob = new knob( knobSmall_17, getTrackSettingsWidget(),
tr( "Track volume" ) );
m_volumeKnob->setVolumeKnob( TRUE );
m_volumeKnob->setVolumeKnob( true );
m_volumeKnob->setModel( &_t->m_volumeModel );
m_volumeKnob->setHintText( tr( "Channel volume:" ) + " ", "%" );
m_volumeKnob->move( DEFAULT_SETTINGS_WIDGET_WIDTH-2*24, 4 );
m_volumeKnob->setLabel( tr( "VOL" ) );
m_volumeKnob->show();
m_effectRack = new effectRackView( _t->getAudioPort()->getEffects() );
m_effectRack = new effectRackView( _t->audioPort()->getEffects() );
m_effectRack->setFixedSize( 240, 242 );
engine::getMainWindow()->workspace()->addSubWindow( m_effectRack );
m_effWindow = m_effectRack->parentWidget();
m_effWindow->setAttribute( Qt::WA_DeleteOnClose, FALSE );
m_effWindow->setAttribute( Qt::WA_DeleteOnClose, false );
m_effWindow->layout()->setSizeConstraint( QLayout::SetFixedSize );
m_effWindow->setWindowTitle( _t->name() );
m_effWindow->hide();
@@ -547,7 +546,7 @@ sampleTrackView::~sampleTrackView()
void sampleTrackView::showEffects( void )
void sampleTrackView::showEffects()
{
if( m_effWindow->isHidden() )
{