Instrument: introduced flags to replace virtual property getters

There'll be more and more flags for instruments. Handling them using
virtual and overloaded getter functions doesn't scale well and adds
unneccessary overhead.
This commit is contained in:
Tobias Doerffel
2014-03-08 12:47:42 +01:00
parent 83af61836f
commit 1c66bb9d66
7 changed files with 29 additions and 21 deletions

View File

@@ -48,7 +48,10 @@ public:
virtual QString nodeName() const;
virtual PluginView * instantiateView( QWidget * _parent );
inline virtual bool isMidiBased() const { return true; }
virtual Flags flags() const
{
return IsSingleStreamed | IsMidiBased;
}
virtual bool handleMidiEvent( const MidiEvent& event, const MidiTime& time );
virtual void play( sampleFrame * _working_buffer );

View File

@@ -2,7 +2,7 @@
* sf2_player.h - a soundfont2 player using fluidSynth
*
* Copyright (c) 2008 Paul Giblock <drfaygo/at/gmail/dot/com>
* Copyright (c) 2009-2013 Tobias Doerffel <tobydox/at/users.sourceforge.net>
* Copyright (c) 2009-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of Linux MultiMedia Studio - http://lmms.sourceforge.net
*
@@ -77,9 +77,9 @@ public:
return 0;
}
virtual bool isMidiBased() const
virtual Flags flags() const
{
return true;
return IsSingleStreamed | IsMidiBased;
}
virtual PluginView * instantiateView( QWidget * _parent );

View File

@@ -63,9 +63,9 @@ public:
virtual void loadFile( const QString & _file );
virtual bool isMidiBased( void ) const
virtual Flags flags() const
{
return true;
return IsSingleStreamed | IsMidiBased;
}
virtual bool handleMidiEvent( const MidiEvent& event, const MidiTime& time );

View File

@@ -52,11 +52,12 @@ public:
virtual QString nodeName() const;
inline virtual bool isBendable() const
virtual Flags flags() const
{
return( false );
return IsNotBendable;
}
virtual PluginView * instantiateView( QWidget * _parent );

View File

@@ -80,9 +80,9 @@ public:
virtual QString nodeName() const;
virtual bool isMidiBased() const
virtual Flags flags() const
{
return true;
return IsSingleStreamed | IsMidiBased;
}
virtual PluginView * instantiateView( QWidget * _parent );