Load and save controllers to project

git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@1015 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
Paul Giblock
2008-05-25 05:28:15 +00:00
parent 7a6fb18e86
commit 6bb836464a
7 changed files with 180 additions and 6 deletions

View File

@@ -34,17 +34,29 @@
#include "mixer.h"
#include "mv_base.h"
#include "templates.h"
#include "journalling_object.h"
class controllerDialog;
class controller;
typedef QVector<controller *> controllerVector;
class controller : public model
class controller : public model, public journallingObject
{
Q_OBJECT
public:
controller( model * _parent );
enum ControllerTypes
{
LfoController,
/*
MidiController,
XYController,
PeakController,
*/
NumControllerTypes
} ;
controller( ControllerTypes _type, model * _parent );
virtual ~controller();
@@ -67,6 +79,26 @@ public:
return "Dummy Controller";
}
ControllerTypes type( void ) const
{
return( m_type );
}
virtual const QString & name( void ) const
{
return( m_name );
}
virtual void saveSettings( QDomDocument & _doc, QDomElement & _this );
virtual void loadSettings( const QDomElement & _this );
virtual QString nodeName( void ) const;
static controller * create( ControllerTypes _tt, model * _parent );
static controller * create( const QDomElement & _this,
model * _parent );
inline static float fittedValue( float _val )
{
return tLimit<float>( _val, 0.0f, 1.0f );
@@ -81,6 +113,11 @@ public:
public slots:
virtual controllerDialog * createDialog( QWidget * _parent );
virtual void setName( const QString & _new_name )
{
m_name = _new_name;
}
protected:
// The internal per-controller get-value function
@@ -89,6 +126,8 @@ protected:
float m_currentValue;
bool m_sampleExact;
QString m_name;
ControllerTypes m_type;
static controllerVector s_controllers;

View File

@@ -86,6 +86,10 @@ public:
return( QPixmap() );
}
virtual ~pixmapLoader()
{
}
protected:
QString m_name;
} ;

View File

@@ -54,6 +54,9 @@ public:
return "LFO Controller";
}
virtual void saveSettings( QDomDocument & _doc, QDomElement & _this );
virtual void loadSettings( const QDomElement & _this );
virtual QString nodeName( void ) const;
public slots:
virtual controllerDialog * createDialog( QWidget * _parent );

View File

@@ -179,6 +179,8 @@ public:
}
void addController( controller * _c );
void removeController( controller * _c );
// QT will implicitly share the Vector I believe..
const controllerVector & controllers( void ) const
@@ -242,6 +244,8 @@ private:
}
void setPlayPos( tact _tact_num, tick _tick, PlayModes _play_mode );
void saveControllerStates( QDomDocument & _doc, QDomElement & _this );
void restoreControllerStates( const QDomElement & _this );
track * m_automationTrack;