bugfixes and some small new features

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@45 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Tobias Doerffel
2006-01-09 10:31:28 +00:00
parent 052224c8e2
commit 4804108a1d
26 changed files with 896 additions and 143 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-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -53,6 +53,7 @@ class QPixmap;
class channelTrack;
class groupBox;
class knob;
class ledCheckBox;
class notePlayHandle;
class pixmapButton;
class tempoSyncKnob;
@@ -132,6 +133,8 @@ private:
pixmapButton * m_arpUpAndDownBtn;
pixmapButton * m_arpRandomBtn;
ledCheckBox * m_sortMode;
} ;

View File

@@ -1,7 +1,7 @@
/*
* audio_device.h - base-class for audio-devices, used by LMMS-mixer
*
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -112,7 +112,7 @@ public:
public:
setupWidget( const QString & _caption, QWidget * _parent ) :
tabWidget( tabWidget::tr( "Settings for %1" ).arg(
_caption ), _parent )
_caption ).toUpper(), _parent )
{
}

View File

@@ -1,7 +1,7 @@
/*
* config_mgr.h - class configManager, a class for managing LMMS-configuration
*
* Copyright (c) 2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -82,35 +82,45 @@ public:
return( s_instanceOfMe );
}
const QString & lmmsWorkingDir( void ) const
const QString & workingDir( void ) const
{
return( m_lmmsWorkingDir );
}
QString projectsDir( void ) const
{
return( m_lmmsWorkingDir + PROJECTS_PATH );
}
QString presetsDir( void ) const
{
return( m_lmmsWorkingDir + PRESETS_PATH );
}
QString samplesDir( void ) const
{
return( m_lmmsWorkingDir + SAMPLES_PATH );
}
QString artworkDir( void ) const
{
return( m_lmmsDataDir + ARTWORK_PATH );
}
QString localeDir( void ) const
{
return( m_lmmsDataDir + LOCALE_PATH );
}
const QString & pluginDir( void ) const
{
return( m_lmmsPluginDir );
return( m_workingDir );
}
QString projectsDir( void ) const
{
return( m_workingDir + PROJECTS_PATH );
}
QString presetsDir( void ) const
{
return( m_workingDir + PRESETS_PATH );
}
QString samplesDir( void ) const
{
return( m_workingDir + SAMPLES_PATH );
}
QString artworkDir( void ) const
{
return( m_dataDir + ARTWORK_PATH );
}
QString localeDir( void ) const
{
return( m_dataDir + LOCALE_PATH );
}
const QString & pluginDir( void ) const
{
return( m_pluginDir );
}
const QString & vstDir( void ) const
{
return( m_vstDir );
}
const QString & value( const QString & _class,
const QString & _attribute ) const;
@@ -121,9 +131,13 @@ public:
void saveConfigFile( void );
public slots:
void setWorkingDir( const QString & _wd );
void setVSTDir( const QString & _wd );
protected slots:
void openWorkingDir( void );
void setWorkingDir( const QString & _wd );
virtual void accept( void );
@@ -152,9 +166,10 @@ private:
const QString m_lmmsRcFile;
QString m_lmmsWorkingDir;
QString m_lmmsDataDir;
QString m_lmmsPluginDir;
QString m_workingDir;
QString m_dataDir;
QString m_pluginDir;
QString m_vstDir;
typedef vvector<QPair<QString, QString> > stringPairVector;
typedef QMap<QString, stringPairVector> settingsMap;

View File

@@ -1,7 +1,7 @@
/*
* midi_client.h - base-class for MIDI-clients like ALSA-sequencer-client
*
* Copyright (c) 2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2005-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -116,7 +116,7 @@ public:
public:
setupWidget( const QString & _caption, QWidget * _parent ) :
tabWidget( tabWidget::tr( "Settings for %1" ).arg(
_caption ), _parent )
_caption ).toUpper(), _parent )
{
}

View File

@@ -1,7 +1,7 @@
/*
* mixer.h - audio-device-independent mixer for LMMS
*
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -196,6 +196,11 @@ public:
m_playHandlesToRemove.push_back( _ph );
}
inline const playHandleVector & playHandles( void ) const
{
return( m_playHandles );
}
void checkValidityOfPlayHandles( void );

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-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -96,7 +96,9 @@ public:
tones _tone = A, octaves _octave = DEFAULT_OCTAVE,
volume _volume = DEFAULT_VOLUME,
panning _panning = DEFAULT_PANNING ) FASTCALL;
~note();
void FASTCALL setLength( const midiTime & _length );
void FASTCALL setPos( const midiTime & _pos );
void FASTCALL setTone( tones _tone = C );
@@ -104,38 +106,47 @@ public:
void FASTCALL setKey( int _key );
void FASTCALL setVolume( volume _volume = DEFAULT_VOLUME );
void FASTCALL setPanning( panning _panning = DEFAULT_PANNING );
inline midiTime endPos( void ) const
{
return( m_pos + m_length);
}
inline const midiTime & length( void ) const
{
return( m_length );
}
inline const midiTime & pos( void ) const
{
return( m_pos );
}
inline midiTime pos( midiTime _base_pos ) const
{
return( m_pos - _base_pos );
}
inline tones tone( void ) const
{
return( m_tone );
}
inline octaves octave( void ) const
{
return( m_octave );
}
inline int key( void ) const
{
return( m_octave * NOTES_PER_OCTAVE + m_tone );
}
inline volume getVolume( void ) const
{
return( m_volume );
}
inline panning getPanning( void ) const
{
return( m_panning );

View File

@@ -38,6 +38,7 @@ class channelTrack;
class notePlayHandle;
typedef vvector<notePlayHandle *> notePlayHandleVector;
typedef vvector<const notePlayHandle *> constNotePlayHandleVector;
class notePlayHandle : public playHandle, public note
@@ -138,6 +139,11 @@ public:
return( m_arpNote );
}
inline void setArpNote( bool _on )
{
m_arpNote = _on;
}
// returns whether note is base-note for arpeggio
inline bool arpBaseNote( void ) const
{
@@ -151,6 +157,17 @@ public:
void mute( void );
// returns index of note-play-handle in vector of note-play-handles
// belonging to this channel
int index( void ) const;
// note-play-handles belonging to given channel
static constNotePlayHandleVector nphsOfChannelTrack(
const channelTrack * _ct );
// return whether given note-play-handle is equal to *this
bool operator==( const notePlayHandle & _nph ) const;
private:
channelTrack * m_channelTrack; // needed for calling

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-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -108,8 +108,10 @@ protected:
virtual void wheelEvent( QWheelEvent * _we );
int FASTCALL getKey( int _y );
inline void drawNoteRect( QPainter & _p, Uint16 _x, Uint16 _y,
Sint16 _width, bool _is_selected );
static inline void drawNoteRect( QPainter & _p, Uint16 _x, Uint16 _y,
Sint16 _width,
const bool _is_selected,
const bool _is_step_note );
void removeSelection( void );
void selectAll( void );
void FASTCALL getSelectedNotes( noteVector & _selected_notes );

View File

@@ -2,7 +2,7 @@
* piano_widget.h - declaration of class pianoWidget, a widget which provides
* an interactive piano/keyboard-widget
*
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -45,6 +45,7 @@
#include "note.h"
#include "templates.h"
class channelTrack;
@@ -65,6 +66,13 @@ public:
pianoWidget( channelTrack * _channel_track );
virtual ~pianoWidget();
inline void setKeyState( int _key, bool _on = FALSE )
{
m_pressedKeys[tLimit( _key, 0, NOTES_PER_OCTAVE *
OCTAVES -1 )] = _on;
update();
}
protected:
virtual void paintEvent( QPaintEvent * );

View File

@@ -2,7 +2,7 @@
* play_handle.h - base-class playHandle which is needed by
* LMMS-Player-Engine
*
* Copyright (c) 2004-2005 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2004-2006 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -87,6 +87,7 @@ private:
typedef vvector<playHandle *> playHandleVector;
typedef vvector<const playHandle *> constPlayHandleVector;
#endif

View File

@@ -139,6 +139,7 @@ inline QString baseName( const QString & _file )
// QString
#define toLower lower
#define toUpper upper
// QTextEdit

View File

@@ -47,6 +47,7 @@
class QComboBox;
class QLabel;
class QLineEdit;
class QSlider;
class tabBar;
@@ -75,6 +76,10 @@ private slots:
void resetBufSize( void );
void displayBufSizeHelp( void );
// directory settings widget
void setWorkingDir( const QString & _wd );
void setVSTDir( const QString & _vd );
// audio settings widget
void audioInterfaceChanged( const QString & _driver );
void displayAudioHelp( void );
@@ -89,6 +94,10 @@ private slots:
void toggleGIMPLikeWindows( bool _enabled );
void openWorkingDir( void );
void openVSTDir( void );
private:
tabBar * m_tabBar;
@@ -101,6 +110,13 @@ private:
bool m_gimpLikeWindows;
QLineEdit * m_wdLineEdit;
QLineEdit * m_vdLineEdit;
QString m_workingDir;
QString m_vstDir;
typedef QMap<QString, audioDevice::setupWidget *> aswMap;
typedef QMap<QString, midiClient::setupWidget *> mswMap;

View File

@@ -1,7 +1,7 @@
/*
* tempo_sync_knob.h - adds bpm to ms conversion for knob class
*
* Copyright (c) 2005 Danny McRae <khjklujn@yahoo.com>
* Copyright (c) 2005 Danny McRae <khjklujn/at/yahoo.com>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*