static engine, chunked audio buffer, pat fix, MIME type

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@472 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Javier Serrano Polo
2007-04-19 06:52:29 +00:00
parent e121fe84cd
commit 16a61bf8fe
198 changed files with 2709 additions and 2137 deletions

View File

@@ -2,7 +2,7 @@
* arp_and_chords_tab_widget.h - declaration of class arpAndChordWidget which
* provides code for using arpeggio and chords
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -45,7 +45,6 @@
#include "journalling_object.h"
#include "types.h"
#include "engine.h"
class QPixmap;

View File

@@ -100,7 +100,6 @@ private:
snd_pcm_sw_params_t * m_swParams;
bool m_convertEndian;
volatile bool m_quit;
} ;

View File

@@ -97,15 +97,13 @@ public:
return( m_channels );
}
void processNextBuffer( void );
bool processNextBuffer( void );
virtual void startProcessing( void )
{
}
virtual void stopProcessing( void )
{
}
virtual void stopProcessing( void );
class setupWidget : public tabWidget

View File

@@ -35,8 +35,7 @@ class audioDummy : public audioDevice, public QThread
public:
audioDummy( const sample_rate_t _sample_rate, bool & _success_ful,
mixer * _mixer ) :
audioDevice( _sample_rate, DEFAULT_CHANNELS, _mixer ),
m_quit( FALSE )
audioDevice( _sample_rate, DEFAULT_CHANNELS, _mixer )
{
_success_ful = TRUE;
}
@@ -82,7 +81,6 @@ private:
{
if( isRunning() )
{
m_quit = TRUE;
wait( 1000 );
terminate();
}
@@ -91,10 +89,13 @@ private:
virtual void run( void )
{
microTimer timer;
while( m_quit == FALSE )
while( TRUE )
{
timer.reset();
processNextBuffer();
if ( !processNextBuffer() )
{
break;
}
const Sint32 microseconds = static_cast<Sint32>(
getMixer()->framesPerAudioBuffer() *
1000000.0f / getMixer()->sampleRate() -
@@ -106,9 +107,6 @@ private:
}
}
volatile bool m_quit;
} ;

View File

@@ -107,9 +107,11 @@ private:
jack_client_t * m_client;
bool m_active;
bool m_stopped;
QMutex m_processCallbackMutex;
// QMutex m_processCallbackMutex;
QSemaphore m_stop_semaphore;
vvector<jack_port_t *> m_outputPorts;
surroundSampleFrame * m_outBuf;

View File

@@ -83,7 +83,6 @@ private:
int m_audioFD;
bool m_convertEndian;
volatile bool m_quit;
} ;

View File

@@ -1,7 +1,7 @@
/*
* audio_port.h - base-class for objects providing sound at a port
*
* Copyright (c) 2005-2006 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
*
@@ -43,10 +43,10 @@
#include "effect_chain.h"
class audioPort : public engineObject
class audioPort
{
public:
audioPort( const QString & _name, engine * _engine );
audioPort( const QString & _name );
~audioPort();
inline surroundSampleFrame * firstBuffer( void )

View File

@@ -92,6 +92,9 @@ private:
bool m_convertEndian;
bool m_stopped;
QSemaphore m_stop_semaphore;
} ;
#endif

View File

@@ -1,7 +1,7 @@
/*
* automatable_button.h - class automatableButton, the base for all buttons
*
* Copyright (c) 2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -51,7 +51,7 @@ class automatableButton : public QWidget, public automatableObject<bool,
Q_OBJECT
public:
automatableButton( QWidget * _parent, const QString & _name,
engine * _engine, track * _track );
track * _track );
virtual ~automatableButton();
@@ -109,7 +109,7 @@ class automatableButtonGroup : public QWidget, public automatableObject<int>
Q_OBJECT
public:
automatableButtonGroup( QWidget * _parent, const QString & _name,
engine * _engine, track * _track );
track * _track );
virtual ~automatableButtonGroup();
void addButton( automatableButton * _btn );

View File

@@ -1,7 +1,7 @@
/*
* automatable_object.h - declaration of class automatableObject
*
* Copyright (c) 2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -31,6 +31,7 @@
#include "qt3support.h"
#include "automation_editor.h"
#include "automation_pattern.h"
#include "engine.h"
#include "journalling_object.h"
#include "templates.h"
#include "midi_time.h"
@@ -57,11 +58,9 @@ class automatableObject : public journallingObject, public levelObject
public:
typedef automatableObject<T, EDIT_STEP_TYPE> autoObj;
automatableObject( engine * _engine, track * _track = NULL,
const T _val = 0, const T _min = 0,
const T _max = 0,
automatableObject( track * _track = NULL, const T _val = 0,
const T _min = 0, const T _max = 0,
const T _step = defaultRelStep() ) :
journallingObject( _engine ),
m_value( _val ),
m_minValue( _min ),
m_maxValue( _max ),
@@ -372,9 +371,9 @@ public:
return( m_track == NULL );
}
void initAutomationPattern( engine * _engine )
void initAutomationPattern( void )
{
m_automation_pattern = new automationPattern( _engine, this );
m_automation_pattern = new automationPattern( NULL, this );
}
@@ -432,11 +431,11 @@ protected:
{
m_automation_pattern->putValue( midiTime( 0 ),
m_curLevel, FALSE );
if( eng()->getAutomationEditor() &&
eng()->getAutomationEditor()->currentPattern()
if( engine::getAutomationEditor() &&
engine::getAutomationEditor()->currentPattern()
== m_automation_pattern )
{
eng()->getAutomationEditor()->update();
engine::getAutomationEditor()->update();
}
}
}

View File

@@ -1,7 +1,7 @@
/*
* automatable_slider.h - class automatableSlider, a QSlider with automation
*
* Copyright (c) 2006 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -48,7 +48,7 @@ class automatableSlider : public QSlider
Q_OBJECT
public:
automatableSlider( QWidget * _parent, const QString & _name,
engine * _engine, class track * _track );
class track * _track );
virtual ~automatableSlider();
virtual void setRange( int _min, int _max );

View File

@@ -2,7 +2,7 @@
* automation_editor.h - declaration of class automationEditor which is a window
* where you can edit dynamic values in an easy way
*
* Copyright (c) 2006 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -45,7 +45,6 @@
#include "types.h"
#include "note.h"
#include "engine.h"
#include "journalling_object.h"
#include "automation_pattern.h"
@@ -168,7 +167,7 @@ private:
static const int VALUES_WIDTH = 64;
automationEditor( engine * _engine );
automationEditor( void );
automationEditor( const automationEditor & );
virtual ~automationEditor();

View File

@@ -2,7 +2,7 @@
* automation_pattern.h - declaration of class automationPattern, which contains
* all information about an automation pattern
*
* Copyright (c) 2006 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Javier Serrano Polo <jasp00/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -52,7 +52,6 @@ public:
#endif
automationPattern( track * _track, levelObject * _object );
automationPattern( engine * _engine, levelObject * _object );
automationPattern( const automationPattern & _pat_to_copy );
automationPattern( const automationPattern & _pat_to_copy,
levelObject * _object );

View File

@@ -1,7 +1,7 @@
/*
* bb_editor.h - declaration of class bbEditor, a basic-component of LMMS
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -89,7 +89,7 @@ protected:
private:
bbEditor( engine * _engine );
bbEditor( void );
//bbEditor( const bbEditor & );
virtual ~bbEditor();

View File

@@ -2,7 +2,7 @@
* bb_track.h - class bbTrack, a wrapper for using bbEditor
* (which is a singleton-class) as track
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -113,7 +113,7 @@ public:
virtual void FASTCALL loadTrackSpecificSettings( const QDomElement &
_this );
static bbTrack * FASTCALL findBBTrack( csize _bb_num, engine * _engine );
static bbTrack * FASTCALL findBBTrack( csize _bb_num );
static csize FASTCALL numOfBBTrack( track * _track );
static void FASTCALL swapBBTracks( track * _track1, track * _track2 );

View File

@@ -1,7 +1,7 @@
/*
* combobox.h - class comboBox, a very cool combo-box
*
* Copyright (c) 2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -56,8 +56,7 @@ class comboBox : public QWidget, public automatableObject<int>
{
Q_OBJECT
public:
comboBox( QWidget * _parent, const QString & _name, engine * _engine,
track * _track );
comboBox( QWidget * _parent, const QString & _name, track * _track );
virtual ~comboBox();
void addItem( const QString & _item, const QPixmap & _pixmap =

View File

@@ -2,7 +2,7 @@
* cpuload_widget.h - widget for displaying CPU-load (partly based on
* Hydrogen's CPU-load-widget)
*
* Copyright (c) 2005-2006 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
*
@@ -44,14 +44,13 @@
#endif
#include "types.h"
#include "engine.h"
class cpuloadWidget : public QWidget, public engineObject
class cpuloadWidget : public QWidget
{
Q_OBJECT
public:
cpuloadWidget( QWidget * _parent, engine * _engine );
cpuloadWidget( QWidget * _parent );
virtual ~cpuloadWidget();

View File

@@ -2,7 +2,7 @@
* dummy_plugin.h - empty plugin which is used as fallback if a plugin couldn't
* be found
*
* Copyright (c) 2005-2006 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
*
@@ -33,8 +33,8 @@
class dummyPlugin : public plugin
{
public:
inline dummyPlugin( engine * _engine = NULL ) :
plugin( NULL, _engine )
inline dummyPlugin( void ) :
plugin( NULL )
{
}

View File

@@ -1,8 +1,8 @@
/*
* effect.h - base class for effects
*
* Copyright (c) 2006 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -57,14 +57,8 @@ class track;
class effect : public plugin
{
public:
struct constructionData
{
engine * eng;
descriptor::subPluginFeatures::key key;
} ;
effect( const plugin::descriptor * _desc, constructionData * _cdata );
effect( const plugin::descriptor * _desc,
const descriptor::subPluginFeatures::key * _key );
virtual ~effect();
virtual bool FASTCALL processAudioBuffer(
@@ -196,7 +190,7 @@ public:
virtual effectControlDialog * createControlDialog( track * _track ) = 0;
static effect * FASTCALL instantiate( const QString & _plugin_name,
constructionData & _cdata );
descriptor::subPluginFeatures::key * _key );
private:

View File

@@ -1,7 +1,7 @@
/*
* effect_chain.h - class for processing and effects chain
*
* Copyright (c) 2006 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -37,15 +37,14 @@
#include "qt3support.h"
#include "engine.h"
#include "effect.h"
typedef vvector<effect *> effect_list_t;
class effectChain: public engineObject
class effectChain
{
public:
effectChain( engine * _engine );
effectChain( void );
virtual ~effectChain();
void FASTCALL appendEffect( effect * _effect );

View File

@@ -2,7 +2,7 @@
* effect_label.h - a label which is renamable by double-clicking it and
* offers access to an effect rack
*
* Copyright (c) 2006 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -54,9 +54,8 @@ class effectLabel: public QWidget, public journallingObject
{
Q_OBJECT
public:
effectLabel( const QString & _initial_name,
QWidget * _parent, engine * _engine,
sampleTrack * _track );
effectLabel( const QString & _initial_name, QWidget * _parent,
sampleTrack * _track );
virtual ~effectLabel();
inline const QString & text( void )

View File

@@ -43,15 +43,14 @@
#endif
#include "engine.h"
#include "effect.h"
class effectSelectDialog : public QDialog, public engineObject
class effectSelectDialog : public QDialog
{
Q_OBJECT
public:
effectSelectDialog( QWidget * _parent, engine * _engine );
effectSelectDialog( QWidget * _parent );
virtual ~effectSelectDialog();
effect * instantiateSelectedPlugin( void );
@@ -68,11 +67,11 @@ private:
class effectList : public QWidget, public engineObject
class effectList : public QWidget
{
Q_OBJECT
public:
effectList( QWidget * _parent, engine * _engine );
effectList( QWidget * _parent );
virtual ~effectList();

View File

@@ -2,7 +2,7 @@
* effect_tab_widget.h - tab-widget in channel-track-window for setting up
* effects
*
* Copyright (c) 2006 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -50,7 +50,6 @@
#endif
#include "journalling_object.h"
#include "engine.h"
#include "rack_plugin.h"
#include "rack_view.h"
#include "audio_port.h"

View File

@@ -55,142 +55,97 @@ class ladspa2LMMS;
class engine
{
public:
engine( const bool _has_gui = true );
engine( const engine & _engine );
~engine();
static void init( const bool _has_gui = true );
static void destroy( void );
engine * duplicate( const engine * _engine )
static bool hasGUI( void )
{
return( new engine( *_engine ) );
return( s_hasGUI );
}
inline bool hasGUI( void ) const
static mixer * getMixer( void )
{
return( m_hasGUI );
return( s_mixer );
}
inline mixer * getMixer( void )
static mainWindow * getMainWindow( void )
{
return( m_mixer );
return( s_mainWindow );
}
inline const mixer * getMixer( void ) const
static songEditor * getSongEditor( void )
{
return( m_mixer );
return( s_songEditor );
}
inline mainWindow * getMainWindow( void )
static bbEditor * getBBEditor( void )
{
return( m_mainWindow );
return( s_bbEditor );
}
inline songEditor * getSongEditor( void )
static pianoRoll * getPianoRoll( void )
{
return( m_songEditor );
return( s_pianoRoll );
}
inline const songEditor * getSongEditor( void ) const
static projectNotes * getProjectNotes( void )
{
return( m_songEditor );
return( s_projectNotes );
}
inline bbEditor * getBBEditor( void )
static projectJournal * getProjectJournal( void )
{
return( m_bbEditor );
return( s_projectJournal );
}
inline pianoRoll * getPianoRoll( void )
static automationEditor * getAutomationEditor( void )
{
return( m_pianoRoll );
}
inline projectNotes * getProjectNotes( void )
{
return( m_projectNotes );
}
inline projectJournal * getProjectJournal( void )
{
return( m_projectJournal );
}
inline automationEditor * getAutomationEditor( void )
{
return( m_automationEditor );
return( s_automationEditor );
}
#ifdef LADSPA_SUPPORT
inline ladspa2LMMS * getLADSPAManager( void )
static ladspa2LMMS * getLADSPAManager( void )
{
return( m_ladspaManager );
return( s_ladspaManager );
}
#endif
void close( void );
float framesPerTact64th( void ) const
static float framesPerTact64th( void )
{
return( m_frames_per_tact64th );
return( s_frames_per_tact64th );
}
void updateFramesPerTact64th( void );
static void updateFramesPerTact64th( void );
const QMap<QString, QString> & sampleExtensions( void )
static const QMap<QString, QString> & sampleExtensions( void )
{
return( m_sample_extensions );
return( s_sample_extensions );
}
private:
bool m_hasGUI;
float m_frames_per_tact64th;
static bool s_hasGUI;
static float s_frames_per_tact64th;
mixer * m_mixer;
mainWindow * m_mainWindow;
songEditor * m_songEditor;
automationEditor * m_automationEditor;
bbEditor * m_bbEditor;
pianoRoll * m_pianoRoll;
projectNotes * m_projectNotes;
projectJournal * m_projectJournal;
static mixer * s_mixer;
static mainWindow * s_mainWindow;
static songEditor * s_songEditor;
static automationEditor * s_automationEditor;
static bbEditor * s_bbEditor;
static pianoRoll * s_pianoRoll;
static projectNotes * s_projectNotes;
static projectJournal * s_projectJournal;
#ifdef LADSPA_SUPPORT
ladspa2LMMS * m_ladspaManager;
static ladspa2LMMS * s_ladspaManager;
#endif
QMap<QString, QString> m_sample_extensions;
static QMap<QString, QString> s_sample_extensions;
void load_extensions( void );
static void load_extensions( void );
} ;
class engineObject
{
public:
engineObject( engine * _engine );
~engineObject();
inline engine * eng( void )
{
return( m_engine );
}
inline const engine * eng( void ) const
{
return( m_engine );
}
inline bool hasGUI( void ) const
{
return( m_engine->hasGUI() );
}
private:
engine * m_engine;
} ;
#endif

View File

@@ -3,7 +3,7 @@
* is used by envelope/lfo/filter-tab of
* channel-window
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -37,13 +37,11 @@
#ifdef QT4
#include <QtGui/QWidget>
#include <QtCore/QMap>
#include <QtCore/QVector>
#else
#include <qwidget.h>
#include <qmap.h>
#include <qvaluevector.h>
#endif
@@ -76,7 +74,7 @@ class envelopeAndLFOWidget : public QWidget, public journallingObject,
Q_OBJECT
public:
envelopeAndLFOWidget( float _value_for_zero_amount, QWidget * _parent,
engine * _engine, track * _track );
track * _track );
virtual ~envelopeAndLFOWidget();
static inline float expKnobVal( float val )
@@ -84,8 +82,8 @@ public:
return( ( ( val < 0 ) ? -1 : 1 ) * val*val );
}
static void triggerLFO( engine * _engine );
static void resetLFO( engine * _engine );
static void triggerLFO( void );
static void resetLFO( void );
void FASTCALL fillLevel( float * _buf, f_cnt_t _frame,
const f_cnt_t _release_begin,
@@ -140,7 +138,7 @@ private:
static QPixmap * s_envGraph;
static QPixmap * s_lfoGraph;
static QMap<engine *, vvector<envelopeAndLFOWidget *> > s_EaLWidgets;
static vvector<envelopeAndLFOWidget *> s_EaLWidgets;
bool m_used;

View File

@@ -2,7 +2,7 @@
* export_project_dialog.h - declaration of class exportProjectDialog which is
* responsible for exporting project
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -44,7 +44,6 @@
#endif
#include "export.h"
#include "engine.h"
class QLabel;
@@ -56,12 +55,11 @@ class ledCheckBox;
class pixmapButton;
class exportProjectDialog : public QDialog, public engineObject
class exportProjectDialog : public QDialog
{
Q_OBJECT
public:
exportProjectDialog( const QString & _file_name, QWidget * _parent,
engine * _engine );
exportProjectDialog( const QString & _file_name, QWidget * _parent );
virtual ~exportProjectDialog();

97
include/fifo_buffer.h Normal file
View File

@@ -0,0 +1,97 @@
/*
* fifo_buffer.h - FIFO fixed-size buffer
*
* Copyright (c) 2007 Javier Serrano Polo <jasp00/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
* modify it under the terms of the GNU General Public
* License as published by the Free Software Foundation; either
* version 2 of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
* General Public License for more details.
*
* You should have received a copy of the GNU General Public
* License along with this program (see COPYING); if not, write to the
* Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
* Boston, MA 02110-1301 USA.
*
*/
#ifndef _FIFO_BUFFER_H
#define _FIFO_BUFFER_H
#ifdef QT4
#include <QtCore/QSemaphore>
#else
#include <qsemaphore.h>
#endif
template<typename T>
class fifoBuffer
{
public:
fifoBuffer( int _size ) :
m_reader_sem( _size ),
m_writer_sem( _size ),
m_reader_index( 0 ),
m_writer_index( 0 ),
m_size( _size )
{
m_buffer = new T[_size];
m_reader_sem += _size;
}
~fifoBuffer()
{
delete[] m_buffer;
m_reader_sem -= m_size;
}
void write( T _element )
{
m_writer_sem++;
m_buffer[m_writer_index++] = _element;
m_writer_index %= m_size;
m_reader_sem--;
}
T read( void )
{
m_reader_sem++;
T element = m_buffer[m_reader_index++];
m_reader_index %= m_size;
m_writer_sem--;
return( element );
}
bool available( void )
{
return( m_reader_sem.available() );
}
private:
QSemaphore m_reader_sem;
QSemaphore m_writer_sem;
int m_reader_index;
int m_writer_index;
int m_size;
T * m_buffer;
} ;
#endif

View File

@@ -48,7 +48,6 @@
#include "side_bar_widget.h"
#include "engine.h"
class fileItem;
@@ -59,13 +58,13 @@ class trackContainer;
class fileBrowser : public sideBarWidget, public engineObject
class fileBrowser : public sideBarWidget
{
Q_OBJECT
public:
fileBrowser( const QString & _directories, const QString & _filter,
const QString & _title, const QPixmap & _pm,
QWidget * _parent, engine * _engine );
QWidget * _parent );
virtual ~fileBrowser();
static bool isDirWithContent( const QString & _path,
@@ -107,11 +106,11 @@ private:
class listView : public Q3ListView, public engineObject
class listView : public Q3ListView
{
Q_OBJECT
public:
listView( QWidget * _parent, engine * _engine );
listView( QWidget * _parent );
virtual ~listView();
@@ -133,15 +132,13 @@ private:
class directory : public Q3ListViewItem, public engineObject
class directory : public Q3ListViewItem
{
public:
directory( Q3ListView * _parent, const QString & _filename,
const QString & _path, const QString & _filter,
engine * _engine );
const QString & _path, const QString & _filter );
directory( directory * _parent, const QString & _filename,
const QString & _path, const QString & _filter,
engine * _engine );
const QString & _path, const QString & _filter );
void setOpen( bool );
void setup( void );
@@ -189,15 +186,13 @@ private:
class fileItem : public Q3ListViewItem, public engineObject
class fileItem : public Q3ListViewItem
{
public:
fileItem( Q3ListView * _parent, const QString & _name,
const QString & _path,
engine * _engine );
const QString & _path );
fileItem( Q3ListViewItem * _parent, const QString & _name,
const QString & _path,
engine * _engine );
const QString & _path );
inline QString fullName( void ) const
{

View File

@@ -1,7 +1,7 @@
/*
* group_box.h - LMMS-groupbox
*
* Copyright (c) 2005-2006 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
*
@@ -44,12 +44,11 @@
class QPixmap;
class groupBox : public QWidget, public engineObject
class groupBox : public QWidget
{
Q_OBJECT
public:
groupBox( const QString & _caption, QWidget * _parent,
engine * _engine, track * _track );
groupBox( const QString & _caption, QWidget * _parent, track * _track );
virtual ~groupBox();
bool isActive( void ) const

View File

@@ -2,7 +2,7 @@
* import_filter.h - declaration of class importFilter, the base-class for all
* file import filters
*
* Copyright (c) 2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -55,7 +55,7 @@ class importFilter : public plugin
{
public:
importFilter( const QString & _file_name,
const descriptor * _descriptor, engine * _eng );
const descriptor * _descriptor );
virtual ~importFilter();

View File

@@ -2,7 +2,7 @@
* instrument.h - declaration of class instrument, which provides a
* standard interface for all instrument plugins
*
* Copyright (c) 2005-2006 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
*
@@ -48,6 +48,7 @@
#endif
#include "engine.h"
#include "plugin.h"
#include "mixer.h"
@@ -140,7 +141,7 @@ protected:
inline void invalidate( void )
{
m_valid = FALSE;
eng()->getMixer()->checkValidityOfPlayHandles();
engine::getMixer()->checkValidityOfPlayHandles();
}

View File

@@ -2,7 +2,7 @@
* instrument_track.h - declaration of class instrumentTrack, a track + window
* which holds an instrument-plugin
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -50,7 +50,6 @@
#include "midi_event_processor.h"
#include "gui_templates.h"
#include "tab_widget.h"
#include "engine.h"
#include "volume_knob.h"
#include "instrument.h"

View File

@@ -1,7 +1,7 @@
/*
* journalling_object.h - declaration of class journallingObject
*
* Copyright (c) 2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -31,7 +31,6 @@
#endif
#include "types.h"
#include "engine.h"
#include "qt3support.h"
#ifndef QT3
@@ -110,10 +109,10 @@ typedef vvector<journalEntry> journalEntryVector;
class journallingObject : public engineObject
class journallingObject
{
public:
journallingObject( engine * _engine );
journallingObject( void );
virtual ~journallingObject();
inline const jo_id_t id( void ) const

View File

@@ -4,7 +4,7 @@
* This file is based on the knob-widget of the Qwt Widget Library by
* Josef Wilgen
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -44,7 +44,6 @@
#endif
#include "engine.h"
#include "automatable_object.h"
@@ -64,7 +63,7 @@ class knob : public QWidget, public automatableObject<float>
Q_OBJECT
public:
knob( int _knob_num, QWidget * _parent, const QString & _name,
engine * _engine, track * _track );
track * _track );
virtual ~knob();

View File

@@ -1,7 +1,7 @@
/*
* lcd_spinbox.h - class lcdSpinBox, an improved QLCDNumber
*
* Copyright (c) 2005-2006 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
*
@@ -52,8 +52,7 @@ class lcdSpinBox : public QWidget, public automatableObject<int>
Q_OBJECT
public:
lcdSpinBox( int _min, int _max, int _num_digits, QWidget * _parent,
const QString & _name,
engine * _engine, track * _track );
const QString & _name, track * _track );
virtual ~lcdSpinBox();
virtual void setStep( const int _step );

View File

@@ -1,7 +1,7 @@
/*
* led_checkbox.h - class ledCheckBox, an improved QCheckBox
*
* Copyright (c) 2005-2006 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
*
@@ -42,8 +42,8 @@ public:
} ;
ledCheckBox( const QString & _txt, QWidget * _parent,
const QString & _name, engine * _engine,
track * _track, ledColors _color = YELLOW );
const QString & _name, track * _track,
ledColors _color = YELLOW );
virtual ~ledCheckBox();

View File

@@ -49,7 +49,6 @@
#include "types.h"
#include "engine.h"
class QDomElement;
@@ -61,7 +60,7 @@ class tool;
class toolButton;
class mainWindow : public QMainWindow, public engineObject
class mainWindow : public QMainWindow
{
Q_OBJECT
public:
@@ -138,7 +137,7 @@ protected:
private:
mainWindow( engine * _engine );
mainWindow( void );
mainWindow( const mainWindow & );
virtual ~mainWindow();

View File

@@ -61,7 +61,7 @@ class QLineEdit;
class midiALSARaw : public midiClientRaw, public QThread
{
public:
midiALSARaw( engine * _engine );
midiALSARaw( void );
virtual ~midiALSARaw();
static QString probeDevice( void );

View File

@@ -71,7 +71,7 @@ class midiALSASeq :
{
Q_OBJECT
public:
midiALSASeq( engine * _engine );
midiALSASeq( void );
virtual ~midiALSASeq();
static QString probeDevice( void );

View File

@@ -44,17 +44,16 @@
#include "midi.h"
#include "midi_event_processor.h"
#include "tab_widget.h"
#include "engine.h"
class midiPort;
// base-class for all MIDI-clients
class midiClient : public engineObject
class midiClient
{
public:
midiClient( engine * _engine );
midiClient( void );
virtual ~midiClient();
// to be implemented by sub-classes
@@ -144,7 +143,7 @@ const Uint8 RAW_MIDI_PARSE_BUF_SIZE = 16;
class midiClientRaw : public midiClient
{
public:
midiClientRaw( engine * _engine );
midiClientRaw( void );
virtual ~midiClientRaw();
// we are raw-clients for sure!

View File

@@ -35,8 +35,7 @@
class midiDummy : public midiClientRaw
{
public:
midiDummy( engine * _engine ) :
midiClientRaw( _engine )
midiDummy( void )
{
}
virtual ~midiDummy()

View File

@@ -43,7 +43,7 @@ class QLineEdit;
class midiOSS : public midiClientRaw, public QThread
{
public:
midiOSS( engine * _engine );
midiOSS( void );
virtual ~midiOSS();
static QString probeDevice( void );

View File

@@ -2,7 +2,7 @@
* midi_tab_widget.h - tab-widget in channel-track-window for setting up
* MIDI-related stuff
*
* Copyright (c) 2005-2006 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
*
@@ -44,7 +44,6 @@
#endif
#include "journalling_object.h"
#include "engine.h"
class QMenu;

View File

@@ -35,12 +35,14 @@
#ifdef QT4
#include <QtCore/QMutex>
#include <QtCore/QThread>
#include <QtCore/QVector>
#else
#include <qobject.h>
#include <qmutex.h>
#include <qthread.h>
#include <qvaluevector.h>
#endif
@@ -52,7 +54,7 @@
#include "note.h"
#include "play_handle.h"
#include "effect_board.h"
#include "engine.h"
#include "fifo_buffer.h"
class audioDevice;
@@ -106,7 +108,7 @@ const octaves BASE_OCTAVE = OCTAVE_4;
class mixer : public QObject, public engineObject
class mixer : public QObject
{
Q_OBJECT
public:
@@ -285,7 +287,10 @@ public:
bool criticalXRuns( void ) const;
const surroundSampleFrame * renderNextBuffer( void );
const surroundSampleFrame * nextBuffer( void )
{
return( m_fifo->read() );
}
public slots:
@@ -299,7 +304,27 @@ signals:
private:
mixer( engine * _engine );
typedef fifoBuffer<surroundSampleFrame *> fifo;
class fifoWriter : public QThread
{
public:
fifoWriter( mixer * _mixer, fifo * _fifo );
void finish( void );
private:
mixer * m_mixer;
fifo * m_fifo;
bool m_writing;
virtual void run( void );
} ;
mixer( void );
virtual ~mixer();
void startProcessing( void );
@@ -307,8 +332,7 @@ private:
// we don't allow to create mixer by using copy-ctor
mixer( const mixer & ) :
engineObject( NULL )
mixer( const mixer & )
{
}
@@ -322,6 +346,8 @@ private:
void FASTCALL scaleClip( fpab_t _frame, ch_cnt_t _chnl );
const surroundSampleFrame * renderNextBuffer( void );
vvector<audioPort *> m_audioPorts;
fpab_t m_framesPerAudioBuffer;
@@ -366,7 +392,12 @@ private:
Uint8 m_mixMutexLockLevel;
fifo * m_fifo;
fifoWriter * m_fifo_writer;
friend class engine;
friend class fifoWriter;
} ;

View File

@@ -2,7 +2,7 @@
* name_label.h - class nameLabel, a label which is renamable by
* double-clicking it
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -41,15 +41,12 @@
#endif
#include "engine.h"
class nameLabel : public QLabel, public engineObject
class nameLabel : public QLabel
{
Q_OBJECT
public:
nameLabel( const QString & _initial_name, QWidget * _parent,
engine * _engine );
nameLabel( const QString & _initial_name, QWidget * _parent );
virtual ~nameLabel();
const QPixmap & pixmap( void ) const

View File

@@ -2,7 +2,7 @@
* note.h - declaration of class note which contains all informations about a
* note + definitions of several constants and enums
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -95,13 +95,13 @@ class knob;
class note : public journallingObject
{
public:
note( engine * _engine = NULL,
const midiTime & _length = 0,
note( const midiTime & _length = 0,
const midiTime & _pos = 0,
tones _tone = A,
octaves _octave = DEFAULT_OCTAVE,
volume _volume = DEFAULT_VOLUME,
panning _panning = DEFAULT_PANNING ) FASTCALL;
panning _panning = DEFAULT_PANNING,
knob * _detuning = NULL ) FASTCALL;
note( const note & _note );
virtual ~note();
@@ -112,7 +112,6 @@ public:
void FASTCALL setKey( const int _key );
void FASTCALL setVolume( const volume _volume = DEFAULT_VOLUME );
void FASTCALL setPanning( const panning _panning = DEFAULT_PANNING );
void FASTCALL setDetuning( knob * _detuning );
void FASTCALL quantizeLength( const int _q_grid );
void FASTCALL quantizePos( const int _q_grid );
@@ -208,6 +207,7 @@ private:
knob * m_detuning;
void createDetuning( void );
void FASTCALL setDetuning( knob * _detuning );
} ;

View File

@@ -1,7 +1,7 @@
/*
* oscillator.h - header-file for oscillator.cpp, a powerful oscillator-class
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -183,10 +183,33 @@ private:
const ch_cnt_t _chnl );
inline bool syncOk( float _osc_coeff );
template<waveShapes W>
void updateNoSub( sampleFrame * _ab, const fpab_t _frames,
const ch_cnt_t _chnl );
template<waveShapes W>
void updatePM( sampleFrame * _ab, const fpab_t _frames,
const ch_cnt_t _chnl );
template<waveShapes W>
void updateAM( sampleFrame * _ab, const fpab_t _frames,
const ch_cnt_t _chnl );
template<waveShapes W>
void updateMix( sampleFrame * _ab, const fpab_t _frames,
const ch_cnt_t _chnl );
template<waveShapes W>
void updateSync( sampleFrame * _ab, const fpab_t _frames,
const ch_cnt_t _chnl );
template<waveShapes W>
void updateFM( sampleFrame * _ab, const fpab_t _frames,
const ch_cnt_t _chnl );
template<waveShapes W>
inline sample_t getSample( const float _sample );
inline void FASTCALL recalcPhase( void );
} ;
#endif

View File

@@ -273,7 +273,7 @@ signals:
class patternFreezeThread : public QThread, public engineObject
class patternFreezeThread : public QThread
{
public:
patternFreezeThread( pattern * _pattern );

View File

@@ -2,7 +2,7 @@
* piano_roll.h - declaration of class pianoRoll which is a window where you
* can set and edit notes in an easy way
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -45,7 +45,6 @@
#include "types.h"
#include "note.h"
#include "engine.h"
#include "journalling_object.h"
@@ -173,7 +172,7 @@ private:
} ;
pianoRoll( engine * _engine );
pianoRoll( void );
pianoRoll( const pianoRoll & );
virtual ~pianoRoll();

View File

@@ -1,7 +1,7 @@
/*
* pixmap_button.h - declaration of class pixmapButton
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -47,7 +47,7 @@ class pixmapButton : public automatableButton
Q_OBJECT
public:
pixmapButton( QWidget * _parent, const QString & _name,
engine * _engine, track * _track );
track * _track );
virtual ~pixmapButton();
void setActiveGraphic( const QPixmap & _pm );

View File

@@ -134,12 +134,11 @@ public:
{
}
virtual void fillDescriptionWidget(
QWidget *, engine *, const key & )
virtual void fillDescriptionWidget( QWidget *,
const key * )
{
}
virtual void listSubPluginKeys( engine *,
plugin::descriptor *,
virtual void listSubPluginKeys( plugin::descriptor *,
keyList & )
{
}
@@ -159,7 +158,7 @@ public:
} ;
// contructor of a plugin
plugin( const descriptor * _descriptor, engine * _engine );
plugin( const descriptor * _descriptor );
virtual ~plugin();
// returns public-name out of descriptor

View File

@@ -1,7 +1,7 @@
/*
* plugin_browser.h - include file for pluginBrowser
*
* Copyright (c) 2005-2006 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
*
@@ -55,11 +55,11 @@
class trackContainer;
class pluginBrowser : public sideBarWidget, public engineObject
class pluginBrowser : public sideBarWidget
{
Q_OBJECT
public:
pluginBrowser( QWidget * _parent, engine * _engine );
pluginBrowser( QWidget * _parent );
virtual ~pluginBrowser();
@@ -73,12 +73,11 @@ private:
class pluginDescWidget : public QWidget, public engineObject
class pluginDescWidget : public QWidget
{
Q_OBJECT
public:
pluginDescWidget( const plugin::descriptor & _pd, QWidget * _parent,
engine * _engine );
pluginDescWidget( const plugin::descriptor & _pd, QWidget * _parent );
virtual ~pluginDescWidget();

View File

@@ -2,7 +2,7 @@
* preset_preview_play_handle.h - play-handle for playing a short preview-sound
* of a preset
*
* Copyright (c) 2005-2006 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
*
@@ -29,19 +29,8 @@
#include "qt3support.h"
#ifdef QT4
#include <QtCore/QMap>
#else
#include <qmap.h>
#endif
#include "note_play_handle.h"
#include "engine.h"
class instrumentTrack;
@@ -49,27 +38,21 @@ class notePlayHandle;
class previewTrackContainer;
class presetPreviewPlayHandle : public playHandle, public engineObject
class presetPreviewPlayHandle : public playHandle
{
public:
presetPreviewPlayHandle( const QString & _preset_file,
engine * _engine );
presetPreviewPlayHandle( const QString & _preset_file );
virtual ~presetPreviewPlayHandle();
virtual void play( bool _try_parallelizing );
virtual bool done( void ) const;
static void cleanUp( engine * _engine );
static void cleanUp( void );
static constNotePlayHandleVector nphsOfInstrumentTrack(
const instrumentTrack * _ct );
private:
inline previewTrackContainer * previewTC( void )
{
return( s_previewTCs[eng()] );
}
static QMap<const engine *, previewTrackContainer *> s_previewTCs;
static previewTrackContainer * s_previewTC;
notePlayHandle * m_previewNote;

View File

@@ -1,7 +1,7 @@
/*
* project_journal.h - declaration of class projectJournal
*
* Copyright (c) 2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -27,7 +27,6 @@
#define _PROJECT_JOURNAL_H
#include "types.h"
#include "engine.h"
#include "qt3support.h"
#ifndef QT3
@@ -48,10 +47,10 @@
class journallingObject;
class projectJournal : public engineObject
class projectJournal
{
public:
projectJournal( engine * _engine );
projectJournal( void );
virtual ~projectJournal();
void undo( void );

View File

@@ -1,7 +1,7 @@
/*
* project_notes.h - header for project-notes-editor
*
* Copyright (c) 2005-2006 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
*
@@ -40,7 +40,6 @@
#endif
#include "journalling_object.h"
#include "engine.h"
class QAction;
@@ -52,7 +51,7 @@ class projectNotes : public QMainWindow, public journallingObject
{
Q_OBJECT
public:
projectNotes( engine * _engine );
projectNotes( void );
virtual ~projectNotes();
void clear( void );

View File

@@ -1,7 +1,7 @@
/*
* right_frame.h - provides the display for the rackInsert instances
*
* Copyright (c) 2006 Danny McRae <khjklujn@netscape.net>
* Copyright (c) 2006-2007 Danny McRae <khjklujn@netscape.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -56,8 +56,7 @@ class rackView: public QWidget, public journallingObject
Q_OBJECT
public:
rackView( QWidget * _parent, engine * _engine,
track * _track, audioPort * _port );
rackView( QWidget * _parent, track * _track, audioPort * _port );
~rackView();
void addEffect( effect * _e );

View File

@@ -60,7 +60,7 @@
class QPainter;
class sampleBuffer : public QObject, public engineObject, public sharedObject
class sampleBuffer : public QObject, public sharedObject
{
Q_OBJECT
public:
@@ -92,11 +92,10 @@ public:
// constructor which either loads sample _audio_file or decodes
// base64-data out of string
sampleBuffer( engine * _engine, const QString & _audio_file = "",
sampleBuffer( const QString & _audio_file = "",
bool _is_base64_data = FALSE );
sampleBuffer( const sampleFrame * _data, const f_cnt_t _frames,
engine * _engine );
sampleBuffer( const f_cnt_t _frames, engine * _engine );
sampleBuffer( const sampleFrame * _data, const f_cnt_t _frames );
sampleBuffer( const f_cnt_t _frames );
virtual ~sampleBuffer();
@@ -164,6 +163,11 @@ public:
m_frequency = _freq;
}
inline void setSampleRate( sample_rate_t _rate )
{
m_sample_rate = _rate;
}
inline const sampleFrame * data( void ) const
{
return( m_data );
@@ -177,8 +181,7 @@ public:
static sampleBuffer * FASTCALL resample( sampleFrame * _data,
const f_cnt_t _frames,
const sample_rate_t _src_sr,
const sample_rate_t _dst_sr,
engine * _engine );
const sample_rate_t _dst_sr );
static inline sampleBuffer * FASTCALL resample(
sampleBuffer * _buf,
@@ -186,7 +189,7 @@ public:
const sample_rate_t _dst_sr )
{
return( resample( _buf->m_data, _buf->m_frames, _src_sr,
_dst_sr, _buf->eng() ) );
_dst_sr ) );
}
void normalize_sample_rate( const sample_rate_t _src_sr,
@@ -270,6 +273,7 @@ private:
float m_amplification;
bool m_reversed;
float m_frequency;
sample_rate_t m_sample_rate;
QMutex m_dataMutex;
#ifdef HAVE_SAMPLERATE_H

View File

@@ -31,7 +31,6 @@
#include "play_handle.h"
#include "sample_buffer.h"
#include "types.h"
#include "engine.h"
class bbTrack;
class pattern;
@@ -40,11 +39,11 @@ class track;
class audioPort;
class samplePlayHandle : public QObject, public playHandle, public engineObject
class samplePlayHandle : public QObject, public playHandle
{
Q_OBJECT
public:
samplePlayHandle( const QString & _sample_file, engine * _engine );
samplePlayHandle( const QString & _sample_file );
samplePlayHandle( sampleBuffer * _sample_buffer );
samplePlayHandle( sampleTCO * _tco );
samplePlayHandle( pattern * _pattern );

View File

@@ -53,7 +53,7 @@ class QSlider;
class tabBar;
class setupDialog : public QDialog, public engineObject
class setupDialog : public QDialog
{
Q_OBJECT
public:
@@ -63,8 +63,7 @@ public:
AUDIO_SETTINGS, MIDI_SETTINGS
} ;
setupDialog( engine * _engine,
configTabs _tab_to_open = GENERAL_SETTINGS );
setupDialog( configTabs _tab_to_open = GENERAL_SETTINGS );
virtual ~setupDialog();

View File

@@ -2,7 +2,7 @@
* song_editor.h - declaration of class songEditor, a window where you can
* setup your songs
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -230,7 +230,7 @@ protected slots:
private:
songEditor( engine * _engine );
songEditor( void );
songEditor( const songEditor & );
virtual ~songEditor();

View File

@@ -2,7 +2,7 @@
* string_pair_drag.h - class stringPairDrag which provides general support
* for drag'n'drop of string-pairs
*
* Copyright (c) 2005-2006 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
*
@@ -39,23 +39,19 @@
#endif
#include "engine.h"
class QPixmap;
class stringPairDrag : public
#ifdef QT4
QDrag,
QDrag
#else
QStoredDrag,
QStoredDrag
#endif
public engineObject
{
public:
stringPairDrag( const QString & _key, const QString & _value,
const QPixmap & _icon, QWidget * _w, engine * _engine );
const QPixmap & _icon, QWidget * _w );
~stringPairDrag();
static bool processDragEnterEvent( QDragEnterEvent * _dee,
@@ -63,6 +59,11 @@ public:
static QString decodeKey( QDropEvent * _de );
static QString decodeValue( QDropEvent * _de );
static const char * mimeType( void )
{
return( "application/x-lmms-stringpair" );
}
} ;

View File

@@ -3,7 +3,7 @@
* position of a channel + calculation of volume for each
* speaker
*
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -57,7 +57,7 @@ class surroundArea : public QWidget
Q_OBJECT
public:
surroundArea( QWidget * _parent, const QString & _name,
engine * _engine, track * _track );
track * _track );
virtual ~surroundArea();
volumeVector getVolumeVector( float _v_scale = 0.0f ) const;
inline const QPoint & value( void ) const

View File

@@ -1,7 +1,7 @@
/*
* tempo_sync_knob.h - adds bpm to ms conversion for knob class
*
* Copyright (c) 2005 Danny McRae <khjklujn/at/yahoo.com>
* Copyright (c) 2005-2007 Danny McRae <khjklujn/at/yahoo.com>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -63,8 +63,7 @@ public:
tempoSyncKnob( int _knob_num, QWidget * _parent, const QString & _name,
engine * _engine, track * _track,
float _scale = 1.0f );
track * _track, float _scale = 1.0f );
virtual ~tempoSyncKnob();
virtual void FASTCALL saveSettings( QDomDocument & _doc,

View File

@@ -1,7 +1,7 @@
/*
* timeline.h - class timeLine, representing a time-line with position marker
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -68,7 +68,7 @@ public:
timeLine( int _xoff, int _yoff, float _ppt, songEditor::playPos & _pos,
const midiTime & _begin, QWidget * _parent, engine * _engine );
const midiTime & _begin, QWidget * _parent );
virtual ~timeLine();
inline songEditor::playPos & pos( void )

View File

@@ -2,7 +2,7 @@
* track.h - declaration of classes concerning tracks -> neccessary for all
* track-like objects (beat/bassline, sample-track...)
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -55,7 +55,6 @@
#include "types.h"
#include "midi_time.h"
#include "rubberband.h"
#include "engine.h"
#include "journalling_object.h"

View File

@@ -2,7 +2,7 @@
* track_container.h - base-class for all track-containers like Song-Editor,
* BB-Editor...
*
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2007 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -47,7 +47,6 @@
#include "track.h"
#include "journalling_object.h"
#include "rubberband.h"
#include "engine.h"
@@ -60,7 +59,7 @@ class trackContainer : public QMainWindow, public journallingObject
{
Q_OBJECT
public:
trackContainer( engine * _engine );
trackContainer( void );
virtual ~trackContainer();
inline QWidget * containerWidget( void )

View File

@@ -1,7 +1,7 @@
/*
* visualization_widget.h - widget for visualization of sound-data
*
* Copyright (c) 2005-2006 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
*
@@ -47,7 +47,7 @@
class QTimer;
class visualizationWidget : public QWidget, public engineObject
class visualizationWidget : public QWidget
{
Q_OBJECT
public:
@@ -56,7 +56,6 @@ public:
SIMPLE // add more here
} ;
visualizationWidget( const QPixmap & _bg, QWidget * _parent,
engine * _engine,
visualizationTypes _vtype = SIMPLE );
virtual ~visualizationWidget();

View File

@@ -2,7 +2,7 @@
* volume_knob.h - defines a knob that display it's value as either a
* percentage or in dbV.
*
* Copyright (c) 2006 Danny McRae <khjklujn/at/users.sourceforge.net>
* Copyright (c) 2006-2007 Danny McRae <khjklujn/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -45,7 +45,7 @@ class volumeKnob: public knob
Q_OBJECT
public:
volumeKnob( int _knob_num, QWidget * _parent, const QString & _name,
engine * _engine, track * _track );
track * _track );
virtual ~volumeKnob();