Skip to content

Commit

Permalink
Consolidate midi config widgets & move them out of the core
Browse files Browse the repository at this point in the history
  • Loading branch information
Wallacoloo committed Sep 5, 2015
1 parent e606e30 commit 697aebc
Show file tree
Hide file tree
Showing 17 changed files with 175 additions and 276 deletions.
17 changes: 4 additions & 13 deletions include/MidiAlsaRaw.h
Original file line number Diff line number Diff line change
Expand Up @@ -51,23 +51,14 @@ class MidiAlsaRaw : public MidiClientRaw , public QThread

inline static QString name()
{
return QT_TRANSLATE_NOOP( "setupWidget",
return QT_TRANSLATE_NOOP( "MidiSetupWidget",
"ALSA Raw-MIDI (Advanced Linux Sound Architecture)" );
}


class setupWidget : public MidiClientRaw::setupWidget
inline static QString configSection()
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();

virtual void saveSettings();

private:
QLineEdit * m_device;

} ;
return "MidiAlsaRaw";
}


protected:
Expand Down
21 changes: 6 additions & 15 deletions include/MidiAlsaSeq.h
Original file line number Diff line number Diff line change
Expand Up @@ -54,11 +54,16 @@ class MidiAlsaSeq : public QThread, public MidiClient

inline static QString name()
{
return QT_TRANSLATE_NOOP( "setupWidget",
return QT_TRANSLATE_NOOP( "MidiSetupWidget",
"ALSA-Sequencer (Advanced Linux Sound "
"Architecture)" );
}

inline static QString configSection()
{
return "Midialsaseq";
}



virtual void processOutEvent( const MidiEvent & _me,
Expand Down Expand Up @@ -107,20 +112,6 @@ class MidiAlsaSeq : public QThread, public MidiClient
}


class setupWidget : public MidiClient::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();

virtual void saveSettings();

private:
QLineEdit * m_device;

} ;


private slots:
void changeQueueTempo( bpm_t _bpm );
void updatePortList();
Expand Down
24 changes: 9 additions & 15 deletions include/MidiApple.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,18 @@ class MidiApple : public QObject, public MidiClient
MidiApple();
virtual ~MidiApple();

static QString probeDevice();

inline static QString probeDevice()
{
return QString::Null(); // no midi device name
}

inline static QString name()
{
return QT_TRANSLATE_NOOP( "setupWidget", "Apple MIDI" );
return QT_TRANSLATE_NOOP( "MidiSetupWidget", "Apple MIDI" );
}
inline static QString configSection()
{
return QString::Null(); // no configuration settings
}

virtual void processOutEvent( const MidiEvent & _me,
Expand Down Expand Up @@ -106,18 +112,6 @@ class MidiApple : public QObject, public MidiClient
}


class setupWidget : public MidiClient::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();

void saveSettings()
{
}
} ;


private:// slots:
void updateDeviceList();

Expand Down
26 changes: 0 additions & 26 deletions include/MidiClient.h
Original file line number Diff line number Diff line change
Expand Up @@ -106,32 +106,6 @@ class MidiClient
// any other working
static MidiClient * openMidiClient();


class setupWidget : public TabWidget
{
public:
setupWidget( const QString & _caption, QWidget * _parent ) :
TabWidget( TabWidget::tr( "Settings for %1" ).arg(
tr( _caption.toLatin1() ) ).toUpper(),
_parent )
{
}

virtual ~setupWidget()
{
}

virtual void saveSettings() = 0;

virtual void show()
{
parentWidget()->show();
QWidget::show();
}

} ;


protected:
QVector<MidiPort *> m_midiPorts;

Expand Down
31 changes: 8 additions & 23 deletions include/MidiDummy.h
Original file line number Diff line number Diff line change
Expand Up @@ -40,34 +40,19 @@ class MidiDummy : public MidiClientRaw

inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
return( QT_TRANSLATE_NOOP( "MidiSetupWidget",
"Dummy (no MIDI support)" ) );
}


class setupWidget : public MidiClient::setupWidget
inline static QString probeDevice()
{
public:
setupWidget( QWidget * _parent ) :
MidiClientRaw::setupWidget( MidiDummy::name(), _parent )
{
}

virtual ~setupWidget()
{
}

virtual void saveSettings()
{
}

virtual void show()
{
parentWidget()->hide();
QWidget::show();
}
return QString::Null(); // no midi device name
}

} ;
inline static QString configSection()
{
return QString::Null(); // no configuration settings
}


protected:
Expand Down
18 changes: 4 additions & 14 deletions include/MidiOss.h
Original file line number Diff line number Diff line change
Expand Up @@ -49,24 +49,14 @@ class MidiOss : public MidiClientRaw, public QThread

inline static QString name()
{
return( QT_TRANSLATE_NOOP( "setupWidget",
return( QT_TRANSLATE_NOOP( "MidiSetupWidget",
"OSS Raw-MIDI (Open Sound System)" ) );
}


class setupWidget : public MidiClientRaw::setupWidget
inline static QString configSection()
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();

virtual void saveSettings();

private:
QLineEdit * m_device;

} ;

return "midioss";
}

protected:
virtual void sendByte( const unsigned char c );
Expand Down
56 changes: 56 additions & 0 deletions include/MidiSetupWidget.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* MidiSetupWidget - class for configuring midi sources in the settings window
*
* Copyright (c) 2005-2014 Tobias Doerffel <tobydox/at/users.sourceforge.net>
*
* This file is part of LMMS - http://lmms.io
*
* 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 MIDISETUPWIDGET_H
#define MIDISETUPWIDGET_H

#include <QLabel>

#include "TabWidget.h"

class QLineEdit;

class MidiSetupWidget : public TabWidget
{
MidiSetupWidget( const QString & caption, const QString & configSection,
const QString & devName, QWidget * parent );
public:
// create a widget with editors for all of @MidiClientType's fields
template <typename MidiClientType> static MidiSetupWidget* create( QWidget * parent )
{
QString configSection = MidiClientType::configSection();
QString dev = MidiClientType::probeDevice();
return new MidiSetupWidget(MidiClientType::name(), configSection, dev, parent);
}

void saveSettings();

void show();
private:
QString m_configSection;
QLineEdit *m_device;

};

#endif
25 changes: 10 additions & 15 deletions include/MidiWinMM.h
Original file line number Diff line number Diff line change
Expand Up @@ -45,12 +45,20 @@ class MidiWinMM : public QObject, public MidiClient
MidiWinMM();
virtual ~MidiWinMM();

static QString probeDevice();
inline static QString probeDevice()
{
return QString::Null(); // no midi device name
}


inline static QString name()
{
return QT_TRANSLATE_NOOP( "setupWidget", "WinMM MIDI" );
return QT_TRANSLATE_NOOP( "MidiSetupWidget", "WinMM MIDI" );
}

inline static QString configSection()
{
return QString::Null(); // no configuration settings
}


Expand Down Expand Up @@ -104,19 +112,6 @@ class MidiWinMM : public QObject, public MidiClient
}


class setupWidget : public MidiClient::setupWidget
{
public:
setupWidget( QWidget * _parent );
virtual ~setupWidget();

virtual void saveSettings()
{
}

} ;


private:// slots:
void updateDeviceList();

Expand Down
3 changes: 2 additions & 1 deletion include/SetupDialog.h
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
#include "lmmsconfig.h"
#include "AudioDevice.h"
#include "MidiClient.h"
#include "MidiSetupWidget.h"

#include "AudioDeviceSetupWidget.h"

Expand Down Expand Up @@ -181,7 +182,7 @@ private slots:
bool m_disableAutoQuit;

typedef QMap<QString, AudioDeviceSetupWidget *> AswMap;
typedef QMap<QString, MidiClient::setupWidget *> MswMap;
typedef QMap<QString, MidiSetupWidget *> MswMap;
typedef QMap<QString, QString> trMap;

QComboBox * m_audioInterfaces;
Expand Down
36 changes: 1 addition & 35 deletions src/core/midi/MidiAlsaRaw.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -22,9 +22,6 @@
*
*/

#include <QLabel>
#include <QLineEdit>

#include "MidiAlsaRaw.h"
#include "ConfigManager.h"
#include "gui_templates.h"
Expand Down Expand Up @@ -80,7 +77,7 @@ MidiAlsaRaw::~MidiAlsaRaw()

QString MidiAlsaRaw::probeDevice()
{
QString dev = ConfigManager::inst()->value( "MidiAlsaRaw", "Device" );
QString dev = ConfigManager::inst()->value( "MidiAlsaRaw", "device" );
if( dev == "" )
{
if( getenv( "MIDIDEV" ) != NULL )
Expand Down Expand Up @@ -173,36 +170,5 @@ void MidiAlsaRaw::run()

}




MidiAlsaRaw::setupWidget::setupWidget( QWidget * _parent ) :
MidiClientRaw::setupWidget( MidiAlsaRaw::name(), _parent )
{
m_device = new QLineEdit( MidiAlsaRaw::probeDevice(), this );
m_device->setGeometry( 10, 20, 160, 20 );

QLabel * dev_lbl = new QLabel( tr( "DEVICE" ), this );
dev_lbl->setFont( pointSize<7>( dev_lbl->font() ) );
dev_lbl->setGeometry( 10, 40, 160, 10 );
}




MidiAlsaRaw::setupWidget::~setupWidget()
{
}




void MidiAlsaRaw::setupWidget::saveSettings()
{
ConfigManager::inst()->setValue( "MidiAlsaRaw", "Device",
m_device->text() );
}


#endif

Loading

0 comments on commit 697aebc

Please sign in to comment.