Merged my own and Toby's changes from last week.
Modified Files: ChangeLog Makefile.am TODO data/presets/TripleOscillator/Makefile include/base64.h include/config_mgr.h include/file_browser.h include/instrument_track.h include/knob.h include/mixer.h include/mmp.h include/sample_buffer.h include/sample_track.h include/setup_dialog.h include/spc_bg_hndl_widget.h plugins/audio_file_processor/audio_file_processor.cpp plugins/audio_file_processor/audio_file_processor.h plugins/bit_invader/bit_invader.cpp plugins/organic/organic.cpp plugins/organic/organic.h plugins/plucked_string_synth/plucked_string_synth.cpp plugins/triple_oscillator/triple_oscillator.cpp plugins/triple_oscillator/triple_oscillator.h plugins/vestige/lvsl_client.cpp plugins/vestige/vestige.cpp plugins/vibed/impulse_editor.cpp plugins/vibed/nine_button_selector.cpp plugins/vibed/nine_button_selector.h plugins/vibed/vibed.cpp plugins/vibed/vibed.h src/lmms_single_source.cpp src/core/bb_editor.cpp src/core/config_mgr.cpp src/core/file_browser.cpp src/core/main_window.cpp src/core/midi_tab_widget.cpp src/core/mixer.cpp src/core/piano_roll.cpp src/core/setup_dialog.cpp src/core/song_editor.cpp src/core/track.cpp src/lib/mmp.cpp src/lib/sample_buffer.cpp src/tracks/instrument_track.cpp src/tracks/sample_track.cpp src/widgets/fade_button.cpp src/widgets/group_box.cpp src/widgets/lcd_spinbox.cpp src/widgets/project_notes.cpp src/widgets/tab_widget.cpp src/widgets/text_float.cpp src/widgets/tool_button.cpp Added Files: data/themes/blue_scene/auto_limit.png data/themes/default/auto_limit.png include/volume_knob.h src/widgets/volume_knob.cpp git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@131 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -60,7 +60,7 @@
|
||||
|
||||
#undef SINGLE_SOURCE_COMPILE
|
||||
#include "embed.cpp"
|
||||
|
||||
#include "volume_knob.h"
|
||||
|
||||
|
||||
extern "C"
|
||||
@@ -169,7 +169,7 @@ audioFileProcessor::audioFileProcessor( instrumentTrack * _channel_track ) :
|
||||
"This is useful for things like string- and choir-"
|
||||
"samples." ) );
|
||||
|
||||
m_ampKnob = new knob( knobDark_28, this, tr( "Amplify" ), eng() );
|
||||
m_ampKnob = new volumeKnob( knobDark_28, this, tr( "Amplify" ), eng() );
|
||||
m_ampKnob->setRange( 0, 500, 1.0f );
|
||||
m_ampKnob->move( 6, 114 );
|
||||
m_ampKnob->setInitValue( 100.0f );
|
||||
|
||||
@@ -46,6 +46,7 @@
|
||||
|
||||
class knob;
|
||||
class pixmapButton;
|
||||
class volumeKnob;
|
||||
|
||||
|
||||
class audioFileProcessor : public instrument, public specialBgHandlingWidget
|
||||
@@ -100,7 +101,7 @@ private:
|
||||
sampleBuffer::drawMethods m_drawMethod;
|
||||
|
||||
QPixmap m_graph;
|
||||
knob * m_ampKnob;
|
||||
volumeKnob * m_ampKnob;
|
||||
knob * m_startKnob;
|
||||
knob * m_endKnob;
|
||||
pixmapButton * m_openAudioFileButton;
|
||||
|
||||
@@ -321,6 +321,7 @@ bitInvader::bitInvader( instrumentTrack * _channel_track ) :
|
||||
|
||||
|
||||
#ifdef QT4
|
||||
setAutoFillBackground( TRUE );
|
||||
QPalette pal;
|
||||
pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap(
|
||||
"artwork" ) );
|
||||
|
||||
@@ -58,13 +58,11 @@ using namespace std;
|
||||
#include "knob.h"
|
||||
#include "pixmap_button.h"
|
||||
#include "tooltip.h"
|
||||
#include "song_editor.h"
|
||||
#include "oscillator.h"
|
||||
#include "sample_buffer.h"
|
||||
#include "base64.h"
|
||||
|
||||
#undef SINGLE_SOURCE_COMPILE
|
||||
#include "embed.cpp"
|
||||
#include "volume_knob.h"
|
||||
|
||||
|
||||
extern "C"
|
||||
@@ -125,7 +123,7 @@ organicInstrument::organicInstrument( instrumentTrack * _channel_track ) :
|
||||
);
|
||||
|
||||
// setup volume-knob
|
||||
m_osc[i].volKnob = new knob( knobGreen_17, this, tr(
|
||||
m_osc[i].volKnob = new volumeKnob( knobGreen_17, this, tr(
|
||||
"Osc %1 volume" ).arg( i+1 ), eng() );
|
||||
m_osc[i].volKnob->move( 25+i*20, 110 );
|
||||
m_osc[i].volKnob->setRange( 0, 100, 1.0f );
|
||||
@@ -208,6 +206,7 @@ organicInstrument::organicInstrument( instrumentTrack * _channel_track ) :
|
||||
|
||||
|
||||
#ifdef QT4
|
||||
setAutoFillBackground( TRUE );
|
||||
QPalette pal;
|
||||
pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap(
|
||||
"artwork" ) );
|
||||
|
||||
@@ -37,6 +37,7 @@ class QPixmap;
|
||||
class knob;
|
||||
class notePlayHandle;
|
||||
class pixmapButton;
|
||||
class volumeKnob;
|
||||
|
||||
|
||||
class organicInstrument : public instrument, public specialBgHandlingWidget
|
||||
@@ -83,7 +84,7 @@ private:
|
||||
{
|
||||
oscillator::waveShapes waveShape;
|
||||
knob * oscKnob;
|
||||
knob * volKnob;
|
||||
volumeKnob * volKnob;
|
||||
knob * panKnob;
|
||||
knob * detuneKnob;
|
||||
float harmonic;
|
||||
|
||||
@@ -85,6 +85,7 @@ pluckedStringSynth::pluckedStringSynth( instrumentTrack * _channel_track ) :
|
||||
m_pickupKnob->move( 138, 134 );
|
||||
m_pickupKnob->setHintText( tr( "Pickup position:" ) + " ", "" );
|
||||
#ifdef QT4
|
||||
setAutoFillBackground( TRUE );
|
||||
QPalette pal;
|
||||
pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap(
|
||||
"artwork" ) );
|
||||
|
||||
@@ -58,6 +58,7 @@
|
||||
|
||||
#undef SINGLE_SOURCE_COMPILE
|
||||
#include "embed.cpp"
|
||||
#include "volume_knob.h"
|
||||
|
||||
|
||||
extern "C"
|
||||
@@ -90,6 +91,7 @@ tripleOscillator::tripleOscillator( instrumentTrack * _channel_track ) :
|
||||
}
|
||||
|
||||
#ifdef QT4
|
||||
setAutoFillBackground( TRUE );
|
||||
QPalette pal;
|
||||
pal.setBrush( backgroundRole(),
|
||||
PLUGIN_NAME::getIconPixmap( "artwork" ) );
|
||||
@@ -216,7 +218,7 @@ tripleOscillator::tripleOscillator( instrumentTrack * _channel_track ) :
|
||||
m_osc[i].waveShape = oscillator::SIN_WAVE;
|
||||
|
||||
// setup volume-knob
|
||||
m_osc[i].volKnob = new knob( knobSmall_17, this, tr(
|
||||
m_osc[i].volKnob = new volumeKnob( knobSmall_17, this, tr(
|
||||
"Osc %1 volume" ).arg( i+1 ), eng() );
|
||||
m_osc[i].volKnob->move( 6, 104+i*50 );
|
||||
m_osc[i].volKnob->setRange( MIN_VOLUME, MAX_VOLUME, 1.0f );
|
||||
|
||||
@@ -36,7 +36,7 @@ class knob;
|
||||
class notePlayHandle;
|
||||
class pixmapButton;
|
||||
class sampleBuffer;
|
||||
|
||||
class volumeKnob;
|
||||
|
||||
const int NUM_OF_OSCILLATORS = 3;
|
||||
|
||||
@@ -80,7 +80,7 @@ private:
|
||||
struct oscillatorData
|
||||
{
|
||||
oscillator::waveShapes waveShape;
|
||||
knob * volKnob;
|
||||
volumeKnob * volKnob;
|
||||
knob * panKnob;
|
||||
knob * coarseKnob;
|
||||
knob * fineLKnob;
|
||||
|
||||
@@ -30,7 +30,7 @@
|
||||
#include <QtCore/QLocale>
|
||||
#include <QtCore/QTime>
|
||||
#include <QtGui/QApplication>
|
||||
#include <QtGui/QX11EmbedWidget>
|
||||
#include <QtGui/QX11EmbedContainer>
|
||||
#include <QtGui/QX11Info>
|
||||
|
||||
#else
|
||||
@@ -40,8 +40,8 @@
|
||||
|
||||
#include "qxembed.h"
|
||||
|
||||
#define QX11EmbedWidget QXEmbed
|
||||
#define embedInto embed
|
||||
#define QX11EmbedContainer QXEmbed
|
||||
#define embedClient embed
|
||||
|
||||
#endif
|
||||
|
||||
@@ -246,10 +246,13 @@ void remoteVSTPlugin::showEditor( void )
|
||||
m_pluginWidget = new QWidget( eng()->getMainWindow()->workspace() );
|
||||
m_pluginWidget->setFixedSize( m_pluginGeometry );
|
||||
m_pluginWidget->setWindowTitle( name() );
|
||||
#ifndef QT3
|
||||
eng()->getMainWindow()->workspace()->addWindow( m_pluginWidget );
|
||||
#endif
|
||||
m_pluginWidget->show();
|
||||
|
||||
QX11EmbedWidget * xe = new QX11EmbedWidget( m_pluginWidget );
|
||||
xe->embedInto( m_pluginXID );
|
||||
QX11EmbedContainer * xe = new QX11EmbedContainer( m_pluginWidget );
|
||||
xe->embedClient( m_pluginXID );
|
||||
xe->setFixedSize( m_pluginGeometry );
|
||||
//xe->setAutoDelete( FALSE );
|
||||
xe->show();
|
||||
|
||||
@@ -100,9 +100,9 @@ vestigeInstrument::vestigeInstrument( instrumentTrack * _channel_track ) :
|
||||
}
|
||||
|
||||
#ifdef QT4
|
||||
QPalette pal;
|
||||
/* QPalette pal;
|
||||
pal.setBrush( backgroundRole(), *s_artwork);
|
||||
setPalette( pal );
|
||||
setPalette( pal );*/
|
||||
#else
|
||||
setErasePixmap( *s_artwork );
|
||||
#endif
|
||||
@@ -254,7 +254,7 @@ void vestigeInstrument::setParameter( const QString & _param,
|
||||
if( _param == "plugin" && _value != "" )
|
||||
{
|
||||
m_pluginMutex.lock();
|
||||
bool set_ch_name = ( m_plugin != NULL &&
|
||||
const bool set_ch_name = ( m_plugin != NULL &&
|
||||
getInstrumentTrack()->name() == m_plugin->name() ) ||
|
||||
getInstrumentTrack()->name() ==
|
||||
instrumentTrack::tr( "Default" );
|
||||
@@ -267,7 +267,7 @@ void vestigeInstrument::setParameter( const QString & _param,
|
||||
tr( "Loading plugin" ),
|
||||
tr( "Please wait while loading VST-plugin..." ),
|
||||
PLUGIN_NAME::getIconPixmap( "logo", 24, 24 ),
|
||||
0 );
|
||||
0 );
|
||||
m_pluginMutex.lock();
|
||||
m_plugin = new remoteVSTPlugin( m_pluginDLL, eng() );
|
||||
if( m_plugin->failed() )
|
||||
|
||||
@@ -63,8 +63,9 @@ impulseEditor::impulseEditor( QWidget * _parent, int _x, int _y,
|
||||
setFixedSize( 153, 124 );
|
||||
m_base = QPixmap::grabWidget( _parent, _x, _y );
|
||||
#ifndef QT3
|
||||
setAutoFillBackground( TRUE );
|
||||
QPalette pal = palette();
|
||||
pal.setBrush( backgroundRole(), QBrush( m_base ) );
|
||||
pal.setBrush( backgroundRole(), m_base );
|
||||
setPalette( pal );
|
||||
#else
|
||||
setPaletteBackgroundPixmap( m_base );
|
||||
|
||||
@@ -73,8 +73,9 @@ nineButtonSelector::nineButtonSelector( QPixmap _button0_on,
|
||||
m_base = QPixmap::grabWidget( _parent, _x, _y );
|
||||
move( _x, _y );
|
||||
#ifndef QT3
|
||||
setAutoFillBackground( TRUE );
|
||||
QPalette pal = palette();
|
||||
pal.setBrush( backgroundRole(), QBrush( m_base ) );
|
||||
pal.setBrush( backgroundRole(), m_base );
|
||||
setPalette( pal );
|
||||
#else
|
||||
setPaletteBackgroundPixmap( m_base );
|
||||
|
||||
@@ -79,7 +79,7 @@ signals:
|
||||
void nineButtonSelection( Uint8 );
|
||||
|
||||
private:
|
||||
vlist<pixmapButton*> m_buttons;
|
||||
vlist<pixmapButton *> m_buttons;
|
||||
pixmapButton * m_button;
|
||||
pixmapButton * m_lastBtn;
|
||||
QPixmap m_base;
|
||||
|
||||
@@ -52,12 +52,13 @@
|
||||
#include "knob.h"
|
||||
#include "tooltip.h"
|
||||
#include "oscillator.h"
|
||||
#include "song_editor.h"
|
||||
#include "string_container.h"
|
||||
#include "base64.h"
|
||||
|
||||
#undef SINGLE_SOURCE_COMPILE
|
||||
#include "embed.cpp"
|
||||
#include "volume_knob.h"
|
||||
#include "volume.h"
|
||||
|
||||
|
||||
extern "C"
|
||||
@@ -83,6 +84,7 @@ vibed::vibed( instrumentTrack * _channel_track ) :
|
||||
m_sampleLength( 128 )
|
||||
{
|
||||
#ifdef QT4
|
||||
setAutoFillBackground( TRUE );
|
||||
QPalette pal;
|
||||
pal.setBrush( backgroundRole(), PLUGIN_NAME::getIconPixmap(
|
||||
"artwork" ) );
|
||||
@@ -115,11 +117,11 @@ vibed::vibed( instrumentTrack * _channel_track ) :
|
||||
|
||||
"The 'N' button will normalize the waveform.") );
|
||||
|
||||
m_volumeKnob = new knob( knobBright_26, this,
|
||||
m_volumeKnob = new volumeKnob( knobBright_26, this,
|
||||
tr( "Volume" ),
|
||||
eng() );
|
||||
m_volumeKnob->setRange( 0.0f, 2.0f, 0.01f );
|
||||
m_volumeKnob->setInitValue( 1.0f );
|
||||
m_volumeKnob->setRange( MIN_VOLUME, MAX_VOLUME, 1.0f );
|
||||
m_volumeKnob->setInitValue( DEFAULT_VOLUME );
|
||||
m_volumeKnob->move( 103, 142 );
|
||||
m_volumeKnob->setHintText( tr( "Volume:" ) + " ", "" );
|
||||
m_volumeKnob->hide();
|
||||
@@ -407,6 +409,7 @@ vibed::vibed( instrumentTrack * _channel_track ) :
|
||||
|
||||
vibed::~vibed()
|
||||
{
|
||||
/*
|
||||
for( Uint8 harm = 0; harm < 9; harm++ )
|
||||
{
|
||||
delete m_pickKnobs[harm];
|
||||
@@ -420,7 +423,7 @@ vibed::~vibed()
|
||||
delete m_editors[harm];
|
||||
delete m_impulses[harm];
|
||||
delete m_harmonics[harm];
|
||||
}
|
||||
}*/
|
||||
}
|
||||
|
||||
|
||||
@@ -546,14 +549,22 @@ void vibed::loadSettings( const QDomElement & _this )
|
||||
m_impulses[i]->setChecked(
|
||||
_this.attribute( name ).toInt() );
|
||||
|
||||
name = "graph" + QString::number( i );
|
||||
float shape[128];
|
||||
int size = 0;
|
||||
QString sampleString = _this.attribute( name );
|
||||
char * dst = 0;
|
||||
base64::decode( sampleString, &dst, &size );
|
||||
memcpy( shape, dst, size );
|
||||
m_editors[i]->setValues( shape );
|
||||
float * shp = 0;
|
||||
base64::decode( _this.attribute( "graph" +
|
||||
QString::number( i ) ),
|
||||
(char * *) &shp, &size );
|
||||
// TODO: check whether size == 128 * sizeof( float ),
|
||||
// otherwise me might and up in a segfault
|
||||
m_editors[i]->setValues( shp );
|
||||
delete[] shp;
|
||||
|
||||
// TODO: do one of the following to avoid
|
||||
// "uninitialized" wave-shape-buttongroup
|
||||
// - activate random-wave-shape-button here
|
||||
// - make wave-shape-buttons simple toggle-buttons
|
||||
// instead of checkable buttons
|
||||
// - save and restore selected wave-shape-button
|
||||
}
|
||||
}
|
||||
|
||||
@@ -623,7 +634,8 @@ void vibed::playNote( notePlayHandle * _n )
|
||||
{
|
||||
if( ps->exists( string ) )
|
||||
{
|
||||
vol = m_volumeKnobs[string]->value();
|
||||
vol = ( m_volumeKnobs[string]->value() ) /
|
||||
100.0f;
|
||||
pan = (
|
||||
m_panKnobs[string]->value() + 1 ) / 2.0;
|
||||
sample = ps->getStringSample( s );
|
||||
|
||||
@@ -37,6 +37,7 @@
|
||||
|
||||
class knob;
|
||||
class notePlayHandle;
|
||||
class volumeKnob;
|
||||
|
||||
|
||||
class vibed : public instrument
|
||||
@@ -66,7 +67,7 @@ private:
|
||||
vlist<knob*> m_pickKnobs;
|
||||
vlist<knob*> m_pickupKnobs;
|
||||
vlist<knob*> m_stiffnessKnobs;
|
||||
vlist<knob*> m_volumeKnobs;
|
||||
vlist<volumeKnob*> m_volumeKnobs;
|
||||
vlist<knob*> m_panKnobs;
|
||||
vlist<knob*> m_detuneKnobs;
|
||||
vlist<knob*> m_randomKnobs;
|
||||
@@ -78,7 +79,7 @@ private:
|
||||
knob * m_pickKnob;
|
||||
knob * m_pickupKnob;
|
||||
knob * m_stiffnessKnob;
|
||||
knob * m_volumeKnob;
|
||||
volumeKnob * m_volumeKnob;
|
||||
knob * m_panKnob;
|
||||
knob * m_detuneKnob;
|
||||
knob * m_randomKnob;
|
||||
|
||||
Reference in New Issue
Block a user