bug-fixes, compatibility-patches, ... see ChangeLog for details
git-svn-id: https://lmms.svn.sf.net/svnroot/lmms/trunk/lmms@9 0778d3d1-df1d-0410-868b-ea421aaaa00d
This commit is contained in:
@@ -48,6 +48,7 @@
|
||||
#include "buffer_allocator.h"
|
||||
#include "config_mgr.h"
|
||||
#include "lcd_spinbox.h"
|
||||
#include "gui_templates.h"
|
||||
#include "templates.h"
|
||||
|
||||
|
||||
|
||||
@@ -22,17 +22,17 @@
|
||||
*/
|
||||
|
||||
|
||||
|
||||
#include "audio_jack.h"
|
||||
|
||||
|
||||
#ifdef JACK_SUPPORT
|
||||
|
||||
#ifdef HAVE_UNISTD_H
|
||||
// for usleep
|
||||
#include <unistd.h>
|
||||
#endif
|
||||
|
||||
|
||||
#ifdef JACK_SUPPORT
|
||||
|
||||
#ifdef QT4
|
||||
|
||||
#include <QLineEdit>
|
||||
@@ -46,14 +46,15 @@
|
||||
#endif
|
||||
|
||||
|
||||
|
||||
#include "debug.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
#include "buffer_allocator.h"
|
||||
#include "config_mgr.h"
|
||||
#include "lcd_spinbox.h"
|
||||
|
||||
|
||||
|
||||
audioJACK::audioJACK( Uint32 _sample_rate, bool & _success_ful ) :
|
||||
audioDevice( _sample_rate, tLimit<int>( configManager::inst()->value(
|
||||
"audiojack", "channels" ).toInt(),
|
||||
@@ -240,7 +241,7 @@ void audioJACK::writeBufferToDev( surroundSampleFrame * _ab, Uint32 _frames,
|
||||
#ifdef HAVE_UNISTD_H
|
||||
#ifdef HAVE_USLEEP
|
||||
// just wait and give cpu-time to other processes
|
||||
usleep( 500 );
|
||||
usleep( 200 );
|
||||
#endif
|
||||
#endif
|
||||
}
|
||||
@@ -309,6 +310,21 @@ int audioJACK::processCallback( jack_nframes_t _nframes, void * _udata )
|
||||
done += todo;
|
||||
_this->m_frameSync -= todo;
|
||||
}
|
||||
|
||||
// we have to clear the part of the buffers, we could not fill because
|
||||
// no usable data is left, otherwise there's baaaaaad noise... ;-)
|
||||
if( done < _nframes )
|
||||
{
|
||||
for( Uint8 ch = 0; ch < _this->channels(); ++ch )
|
||||
{
|
||||
jack_default_audio_sample_t * b = outbufs[ch];
|
||||
for( Uint32 frame = done; frame < _nframes; ++frame )
|
||||
{
|
||||
b[frame] = 0.0f;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
_this->m_bufMutex.unlock();
|
||||
|
||||
return( 0 );
|
||||
|
||||
@@ -22,6 +22,11 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "audio_oss.h"
|
||||
|
||||
|
||||
#ifdef OSS_SUPPORT
|
||||
|
||||
#include "qt3support.h"
|
||||
|
||||
#ifdef QT4
|
||||
@@ -39,10 +44,10 @@
|
||||
#endif
|
||||
|
||||
|
||||
#include "audio_oss.h"
|
||||
#include "buffer_allocator.h"
|
||||
#include "endian_handling.h"
|
||||
#include "lcd_spinbox.h"
|
||||
#include "gui_templates.h"
|
||||
#include "templates.h"
|
||||
|
||||
|
||||
@@ -63,12 +68,12 @@
|
||||
#include <stdlib.h>
|
||||
#endif
|
||||
|
||||
#ifdef OSS_USE_SOUNDCARD_H
|
||||
/* This is installed on some systems */
|
||||
#include <soundcard.h>
|
||||
#else
|
||||
/* This is recommended by OSS */
|
||||
#ifdef HAVE_SYS_SOUNDCARD_H
|
||||
// This is recommended by OSS
|
||||
#include <sys/soundcard.h>
|
||||
#elif HAVE_SOUNDCARD_H
|
||||
// This is installed on some systems
|
||||
#include <soundcard.h>
|
||||
#endif
|
||||
|
||||
|
||||
@@ -327,3 +332,5 @@ void audioOSS::setupWidget::saveSettings( void )
|
||||
}
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -45,7 +45,7 @@ audioSampleRecorder::audioSampleRecorder( Uint32 _sample_rate, Uint32 _channels,
|
||||
|
||||
audioSampleRecorder::~audioSampleRecorder()
|
||||
{
|
||||
while( !m_buffers.isEmpty() )
|
||||
while( !m_buffers.empty() )
|
||||
{
|
||||
bufferAllocator::free( m_buffers.front().first );
|
||||
m_buffers.erase( m_buffers.begin() );
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
#include "buffer_allocator.h"
|
||||
#include "debug.h"
|
||||
#include "config_mgr.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
|
||||
@@ -58,7 +58,7 @@ audioSDL::audioSDL( Uint32 _sample_rate, bool & _success_ful ) :
|
||||
{
|
||||
_success_ful = FALSE;
|
||||
|
||||
// if device is set, we set AUDIODEV-environment-variable, so that
|
||||
/* // if device is set, we set AUDIODEV-environment-variable, so that
|
||||
// SDL can evaluate and use it
|
||||
QString dev = configManager::inst()->value( "audiosdl", "device" );
|
||||
if( dev != "" )
|
||||
@@ -69,7 +69,7 @@ audioSDL::audioSDL( Uint32 _sample_rate, bool & _success_ful ) :
|
||||
#else
|
||||
ascii() ) );
|
||||
#endif
|
||||
}
|
||||
}*/
|
||||
|
||||
|
||||
if( SDL_Init( SDL_INIT_AUDIO | SDL_INIT_NOPARACHUTE ) < 0 )
|
||||
|
||||
@@ -52,6 +52,7 @@
|
||||
#include "pixmap_button.h"
|
||||
#include "knob.h"
|
||||
#include "tooltip.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
#ifdef HAVE_STDLIB_H
|
||||
@@ -324,28 +325,6 @@ arpAndChordsTabWidget::arpAndChordsTabWidget( channelTrack * _channel_track,
|
||||
m_arpDirectionLbl->setFont( pointSize<6>( m_arpDirectionLbl->font() ) );
|
||||
|
||||
|
||||
/* m_arpOffBtn = new pixmapButton( m_arpGroupBox );
|
||||
m_arpOffBtn->move( 10, 87 );
|
||||
m_arpOffBtn->setActiveGraphic( embed::getIconPixmap( "arp_off_on" ) );
|
||||
m_arpOffBtn->setInactiveGraphic( embed::getIconPixmap(
|
||||
"arp_off_off" ) );
|
||||
#ifdef QT4
|
||||
m_arpOffBtn->setChecked( TRUE );
|
||||
#else
|
||||
m_arpOffBtn->setOn( TRUE );
|
||||
#endif
|
||||
#ifndef QT4
|
||||
m_arpOffBtn->setBackgroundMode( Qt::PaletteBackground );
|
||||
#endif
|
||||
#ifdef QT4
|
||||
m_arpOffBtn->setToolTip(
|
||||
#else
|
||||
toolTip::add( m_arpOffBtn,
|
||||
#endif
|
||||
tr( "arpeggio direction = none = no arpeggio" ) );
|
||||
connect( m_arpOffBtn, SIGNAL( toggled( bool ) ), this,
|
||||
SLOT( arpOffToggled( bool ) ) );*/
|
||||
|
||||
|
||||
m_arpUpBtn = new pixmapButton( m_arpGroupBox );
|
||||
m_arpUpBtn->move( 80, 70 );
|
||||
@@ -403,7 +382,6 @@ arpAndChordsTabWidget::arpAndChordsTabWidget( channelTrack * _channel_track,
|
||||
SLOT( arpRandomToggled( bool ) ) );
|
||||
|
||||
QButtonGroup * m_arpDirections_group = new QButtonGroup( this );
|
||||
// m_arpDirections_group->addButton( m_arpOffBtn );
|
||||
m_arpDirections_group->addButton( m_arpUpBtn );
|
||||
m_arpDirections_group->addButton( m_arpDownBtn );
|
||||
m_arpDirections_group->addButton( m_arpUpAndDownBtn );
|
||||
|
||||
@@ -256,24 +256,17 @@ void bbEditor::closeEvent( QCloseEvent * _ce )
|
||||
|
||||
|
||||
|
||||
/*void bbEditor::paintEvent( QPaintEvent * )
|
||||
{
|
||||
}*/
|
||||
|
||||
|
||||
|
||||
|
||||
void bbEditor::keyPressEvent( QKeyEvent * _ke )
|
||||
{
|
||||
if ( _ke->key() == Qt::Key_Space )
|
||||
{
|
||||
if( songEditor::inst()->playing() )
|
||||
{
|
||||
stop ();
|
||||
stop();
|
||||
}
|
||||
else
|
||||
{
|
||||
play ();
|
||||
play();
|
||||
}
|
||||
}
|
||||
else if ( _ke->key() == Qt::Key_Plus )
|
||||
@@ -347,6 +340,7 @@ void bbEditor::updateBackground( void )
|
||||
|
||||
|
||||
|
||||
|
||||
void bbEditor::play( void )
|
||||
{
|
||||
if( songEditor::inst()->playing() )
|
||||
@@ -362,7 +356,7 @@ void bbEditor::play( void )
|
||||
{
|
||||
songEditor::inst()->pause();
|
||||
m_playButton->setInactiveGraphic(
|
||||
embed::getIconPixmap("play") );
|
||||
embed::getIconPixmap( "play" ) );
|
||||
}
|
||||
}
|
||||
else if( songEditor::inst()->paused() )
|
||||
@@ -428,7 +422,7 @@ void bbEditor::createTCOsForBB( csize _bb )
|
||||
trackVector tv = tracks();
|
||||
for( trackVector::iterator it = tv.begin(); it != tv.end(); ++it )
|
||||
{
|
||||
while( ( *it )->numOfTCOs() < _bb+1 )
|
||||
while( ( *it )->numOfTCOs() < _bb + 1 )
|
||||
{
|
||||
midiTime position = midiTime( ( *it )->numOfTCOs(), 0 );
|
||||
trackContentObject * tco = ( *it )->addTCO(
|
||||
|
||||
@@ -71,7 +71,7 @@
|
||||
|
||||
#include "config_mgr.h"
|
||||
#include "embed.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -57,6 +57,7 @@
|
||||
#include "oscillator.h"
|
||||
#include "debug.h"
|
||||
#include "tooltip.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
// how long should be each envelope-segment maximal (e.g. attack)?
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#include "group_box.h"
|
||||
#include "tab_widget.h"
|
||||
#include "embed.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
const int TARGETS_TABWIDGET_X = 4;
|
||||
@@ -71,7 +71,7 @@ const float RES_PRECISION = 1000.0f;
|
||||
|
||||
// names for env- and lfo-targets - first is name being displayed to user
|
||||
// and second one is used internally, e.g. for saving/restoring settings
|
||||
const QString targetNames[envelopeTabWidget::TARGET_COUNT][2] =
|
||||
const char * targetNames[envelopeTabWidget::TARGET_COUNT][2] =
|
||||
{
|
||||
{ envelopeTabWidget::tr( "VOLUME" ), "vol" },
|
||||
/* envelopeTabWidget::tr( "Pan" ),
|
||||
@@ -512,7 +512,8 @@ void envelopeTabWidget::saveSettings( QDomDocument & _doc,
|
||||
{
|
||||
QDomElement target_de = _doc.createElement(
|
||||
m_envLFOWidgets[i]->nodeName() +
|
||||
targetNames[i][1].toLower() );
|
||||
QString(
|
||||
targetNames[i][1] ).toLower() );
|
||||
m_envLFOWidgets[i]->saveSettings( _doc, target_de );
|
||||
etw_de.appendChild( target_de );
|
||||
}
|
||||
@@ -542,7 +543,7 @@ void envelopeTabWidget::loadSettings( const QDomElement & _this )
|
||||
{
|
||||
if( node.nodeName() ==
|
||||
m_envLFOWidgets[i]->nodeName() +
|
||||
targetNames[i][1].toLower() )
|
||||
QString( targetNames[i][1] ).toLower() )
|
||||
{
|
||||
m_envLFOWidgets[i]->loadSettings(
|
||||
node.toElement() );
|
||||
|
||||
@@ -45,7 +45,7 @@
|
||||
#include "config_mgr.h"
|
||||
#include "export_project_dialog.h"
|
||||
#include "song_editor.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
#if QT_VERSION >= 0x030100
|
||||
|
||||
@@ -111,9 +111,10 @@ mixer::mixer() :
|
||||
|
||||
m_silence = bufferAllocator::alloc<sampleFrame>(
|
||||
m_framesPerAudioBuffer );
|
||||
#ifndef DISABLE_SURROUND
|
||||
m_surroundSilence = bufferAllocator::alloc<surroundSampleFrame>(
|
||||
m_framesPerAudioBuffer );
|
||||
|
||||
#endif
|
||||
for( Uint32 frame = 0; frame < m_framesPerAudioBuffer; ++frame )
|
||||
{
|
||||
for( Uint8 chnl = 0; chnl < DEFAULT_CHANNELS; ++chnl )
|
||||
@@ -151,6 +152,11 @@ mixer::~mixer()
|
||||
bufferAllocator::free( m_samplePackets[i].m_buffer );
|
||||
}
|
||||
}
|
||||
|
||||
bufferAllocator::free( m_silence );
|
||||
#ifndef DISABLE_SURROUND
|
||||
bufferAllocator::free( m_surroundSilence );
|
||||
#endif
|
||||
}
|
||||
|
||||
|
||||
@@ -181,16 +187,16 @@ void mixer::run( void )
|
||||
// remove all play-handles that have to be deleted and delete
|
||||
// them if they still exist...
|
||||
// maybe this algorithm could be optimized...
|
||||
while( !m_playHandlesToRemove.isEmpty() )
|
||||
while( !m_playHandlesToRemove.empty() )
|
||||
{
|
||||
playHandleVector::iterator it = m_playHandles.begin();
|
||||
|
||||
while( it != m_playHandles.end() )
|
||||
{
|
||||
if( *it == m_playHandlesToRemove.first() )
|
||||
if( *it == m_playHandlesToRemove.front() )
|
||||
{
|
||||
m_playHandles.erase( it );
|
||||
delete m_playHandlesToRemove.first();
|
||||
delete m_playHandlesToRemove.front();
|
||||
break;
|
||||
}
|
||||
++it;
|
||||
|
||||
@@ -41,9 +41,8 @@
|
||||
#include "rename_dialog.h"
|
||||
#include "bb_editor.h"
|
||||
#include "bb_track.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
#include "name_label.moc"
|
||||
|
||||
|
||||
nameLabel::nameLabel( const QString & _initial_name, QWidget * _parent,
|
||||
@@ -151,3 +150,9 @@ void nameLabel::mouseDoubleClickEvent( QMouseEvent * _me )
|
||||
{
|
||||
rename();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#include "name_label.moc"
|
||||
|
||||
|
||||
@@ -51,7 +51,7 @@
|
||||
#include "crystal_button.h"
|
||||
#include "pixmap_button.h"
|
||||
#include "note_play_handle.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
#include "timeline.h"
|
||||
#include "channel_track.h"
|
||||
#include "tooltip.h"
|
||||
@@ -469,7 +469,7 @@ void pianoRoll::setCurrentPattern( pattern * _new_pattern )
|
||||
|
||||
noteVector & notes = m_pattern->notes();
|
||||
int central_key = 0;
|
||||
if( notes.isEmpty() == FALSE )
|
||||
if( notes.empty() == FALSE )
|
||||
{
|
||||
// determine the central key so that we can scroll to it
|
||||
int total_notes = 0;
|
||||
@@ -2202,15 +2202,15 @@ void pianoRoll::copySelectedNotes( void )
|
||||
noteVector selected_notes;
|
||||
getSelectedNotes( selected_notes );
|
||||
|
||||
if( selected_notes.isEmpty() == FALSE )
|
||||
if( selected_notes.empty() == FALSE )
|
||||
{
|
||||
midiTime start_pos( selected_notes.first()->pos().getTact(),
|
||||
midiTime start_pos( selected_notes.front()->pos().getTact(),
|
||||
0 );
|
||||
for( noteVector::iterator it = selected_notes.begin();
|
||||
it != selected_notes.end(); ++it )
|
||||
{
|
||||
m_notesToCopy.push_back( new note( **it ) );
|
||||
m_notesToCopy.last()->setPos( m_notesToCopy.last()->pos(
|
||||
m_notesToCopy.back()->setPos( m_notesToCopy.back()->pos(
|
||||
start_pos ) );
|
||||
}
|
||||
}
|
||||
@@ -2237,22 +2237,22 @@ void pianoRoll::cutSelectedNotes( void )
|
||||
noteVector selected_notes;
|
||||
getSelectedNotes( selected_notes );
|
||||
|
||||
if( selected_notes.isEmpty() == FALSE )
|
||||
if( selected_notes.empty() == FALSE )
|
||||
{
|
||||
songEditor::inst()->setModified();
|
||||
|
||||
midiTime start_pos( selected_notes.first()->pos().getTact(),
|
||||
midiTime start_pos( selected_notes.front()->pos().getTact(),
|
||||
0 );
|
||||
|
||||
while( selected_notes.isEmpty() == FALSE )
|
||||
while( selected_notes.empty() == FALSE )
|
||||
{
|
||||
note * new_note = new note( *selected_notes.first() );
|
||||
note * new_note = new note( *selected_notes.front() );
|
||||
new_note->setPos( new_note->pos( start_pos ) );
|
||||
m_notesToCopy.push_back( new_note );
|
||||
|
||||
// note (the memory of it) is also deleted by
|
||||
// pattern::removeNote(...) so we don't have to do that
|
||||
m_pattern->removeNote( selected_notes.first() );
|
||||
m_pattern->removeNote( selected_notes.front() );
|
||||
selected_notes.erase( selected_notes.begin() );
|
||||
}
|
||||
}
|
||||
@@ -2271,7 +2271,7 @@ void pianoRoll::pasteNotes( void )
|
||||
return;
|
||||
}
|
||||
|
||||
if( m_notesToCopy.isEmpty() == FALSE )
|
||||
if( m_notesToCopy.empty() == FALSE )
|
||||
{
|
||||
for( noteVector::iterator it = m_notesToCopy.begin();
|
||||
it != m_notesToCopy.end(); ++it )
|
||||
@@ -2302,11 +2302,11 @@ void pianoRoll::deleteSelectedNotes( void )
|
||||
noteVector selected_notes;
|
||||
getSelectedNotes( selected_notes );
|
||||
|
||||
const bool update_after_delete = !selected_notes.isEmpty();
|
||||
const bool update_after_delete = !selected_notes.empty();
|
||||
|
||||
while( selected_notes.isEmpty() == FALSE )
|
||||
while( selected_notes.empty() == FALSE )
|
||||
{
|
||||
m_pattern->removeNote( selected_notes.first() );
|
||||
m_pattern->removeNote( selected_notes.front() );
|
||||
selected_notes.erase( selected_notes.begin() );
|
||||
}
|
||||
|
||||
|
||||
@@ -49,7 +49,7 @@
|
||||
#include "tab_bar.h"
|
||||
#include "tab_button.h"
|
||||
#include "tab_widget.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
#include "mixer.h"
|
||||
#include "config_mgr.h"
|
||||
#include "embed.h"
|
||||
|
||||
@@ -736,13 +736,14 @@ int songEditor::masterPitch( void ) const
|
||||
|
||||
void songEditor::doActions( void )
|
||||
{
|
||||
while( !m_actions.isEmpty() )
|
||||
while( !m_actions.empty() )
|
||||
{
|
||||
timeLine * tl = m_playPos[m_playMode].m_timeLine;
|
||||
switch( m_actions.front() )
|
||||
{
|
||||
case ACT_STOP_PLAY:
|
||||
{
|
||||
timeLine * tl =
|
||||
m_playPos[m_playMode].m_timeLine;
|
||||
m_playing = FALSE;
|
||||
if( tl != NULL )
|
||||
{
|
||||
@@ -825,11 +826,15 @@ void songEditor::doActions( void )
|
||||
case ACT_PLAY_TRACK:
|
||||
case ACT_PLAY_BB:
|
||||
case ACT_PLAY_PATTERN:
|
||||
{
|
||||
timeLine * tl =
|
||||
m_playPos[m_playMode].m_timeLine;
|
||||
if( tl != NULL )
|
||||
{
|
||||
tl->savePos( m_playPos[m_playMode] );
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
// keep GCC happy...
|
||||
default:
|
||||
@@ -891,7 +896,7 @@ void songEditor::processNextBuffer( void )
|
||||
|
||||
}
|
||||
|
||||
if( tv.isEmpty() == TRUE )
|
||||
if( tv.empty() == TRUE )
|
||||
{
|
||||
return;
|
||||
}
|
||||
@@ -972,6 +977,7 @@ void songEditor::processNextBuffer( void )
|
||||
m_playPos[m_playMode].currentFrame();
|
||||
}
|
||||
|
||||
// loop through all tracks and play them if they're not muted
|
||||
for( trackVector::iterator it = tv.begin(); it != tv.end();
|
||||
++it )
|
||||
{
|
||||
|
||||
@@ -165,7 +165,7 @@ void timeLine::updatePosition( const midiTime & )
|
||||
#ifndef QT4
|
||||
qApp->lock();
|
||||
#endif
|
||||
update();
|
||||
paintEvent( NULL );
|
||||
#ifndef QT4
|
||||
qApp->unlock();
|
||||
#endif
|
||||
|
||||
@@ -420,9 +420,9 @@ void trackContentWidget::removeTCO( trackContentObject * _tco,
|
||||
|
||||
void trackContentWidget::removeAllTCOs( void )
|
||||
{
|
||||
while( !m_trackContentObjects.isEmpty() )
|
||||
while( !m_trackContentObjects.empty() )
|
||||
{
|
||||
delete m_trackContentObjects.first();
|
||||
delete m_trackContentObjects.front();
|
||||
m_trackContentObjects.erase( m_trackContentObjects.begin() );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -50,6 +50,7 @@
|
||||
#include "bb_track.h"
|
||||
#include "lmms_main_win.h"
|
||||
#include "mixer.h"
|
||||
#include "song_editor.h"
|
||||
|
||||
|
||||
|
||||
@@ -215,6 +216,7 @@ void trackContainer::removeTrack( track * _track )
|
||||
mixer::inst()->play();
|
||||
|
||||
realignTracks();
|
||||
songEditor::inst()->setModified();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -96,7 +96,11 @@ const int BUFFER_ALIGN_MASK = BUFFER_ALIGN - 1;
|
||||
void bufferAllocator::cleanUp( Uint16 _level )
|
||||
{
|
||||
// first insert all unused bufs into an array
|
||||
#if QT_VERSION >= 0x030100
|
||||
vvector<bufDesc> bufsToRemove;
|
||||
#else
|
||||
vlist<bufDesc> bufsToRemove;
|
||||
#endif
|
||||
for( bufIt it = s_buffers.begin(); it != s_buffers.end(); ++it )
|
||||
{
|
||||
if( ( *it ).free )
|
||||
|
||||
@@ -97,26 +97,31 @@ QString getText( const char * _name )
|
||||
|
||||
void loadTranslation( const QString & _tname )
|
||||
{
|
||||
#if QT_VERSION >= 0x030100
|
||||
QTranslator * t = new QTranslator( 0 );
|
||||
QString name = _tname + ".qm";
|
||||
|
||||
#if QT_VERSION >= 0x030100
|
||||
|
||||
#ifdef QT4
|
||||
const embedDesc & e = findEmbeddedData( name.toAscii().constData() );
|
||||
#else
|
||||
const embedDesc & e = findEmbeddedData( name.ascii() );
|
||||
#endif
|
||||
QTranslator * t = new QTranslator( 0 );
|
||||
// not found?
|
||||
if( QString( e.name ) != name )
|
||||
{
|
||||
#endif
|
||||
// then look whether translation is in data-dir
|
||||
t->load( name, configManager::inst()->localeDir() );
|
||||
#if QT_VERSION >= 0x030100
|
||||
}
|
||||
else
|
||||
{
|
||||
t->load( e.data, (int) e.size );
|
||||
}
|
||||
qApp->installTranslator( t );
|
||||
#endif
|
||||
|
||||
qApp->installTranslator( t );
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -40,7 +40,7 @@
|
||||
|
||||
#include "midi_alsa_raw.h"
|
||||
#include "config_mgr.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
#ifdef ALSA_SUPPORT
|
||||
|
||||
@@ -73,7 +73,14 @@ midiMapper::midiMapper( const QString & _map ) :
|
||||
continue;
|
||||
}
|
||||
QString line( buf );
|
||||
#if QT_VERSION >= 0x030100
|
||||
line.replace( '\n', "" );
|
||||
#else
|
||||
if( line.contains( '\n' ) )
|
||||
{
|
||||
line = line.left( line.length() - 1 );
|
||||
}
|
||||
#endif
|
||||
if( line.left( 6 ) == "DEFINE" )
|
||||
{
|
||||
if( line.section( ' ', 1, 1 ) == "PATCHMAP" )
|
||||
@@ -117,18 +124,28 @@ void midiMapper::readPatchMap( QFile & _f )
|
||||
continue;
|
||||
}
|
||||
QString line( buf );
|
||||
#if QT_VERSION >= 0x030100
|
||||
line.replace( '\n', "" );
|
||||
#else
|
||||
if( line.contains( '\n' ) )
|
||||
{
|
||||
line = line.left( line.length() - 1 );
|
||||
}
|
||||
#endif
|
||||
if( line.left( 3 ) == "END" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if( QString( line ).replace( ' ', "" )[0] == '#' )
|
||||
if( line[0] == '#' )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
m_patchMap[prog_idx].first = line.section( '=', 1, 1 ).toInt();
|
||||
m_patchMap[prog_idx].second = line.section( '=', 0, 0 ).
|
||||
replace( ' ', "" );
|
||||
m_patchMap[prog_idx].second = line.section( '=', 0, 0 )
|
||||
#if QT_VERSION >= 0x030100
|
||||
.replace( ' ', "" )
|
||||
#endif
|
||||
;
|
||||
++prog_idx;
|
||||
}
|
||||
}
|
||||
@@ -148,12 +165,19 @@ void midiMapper::readDrumsetKeyMap( QFile & _f )
|
||||
continue;
|
||||
}
|
||||
QString line( buf );
|
||||
#if QT_VERSION >= 0x030100
|
||||
line.replace( '\n', "" );
|
||||
#else
|
||||
if( line.contains( '\n' ) )
|
||||
{
|
||||
line = line.left( line.length() - 1 );
|
||||
}
|
||||
#endif
|
||||
if( line.left( 3 ) == "END" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if( QString( line ).replace( ' ', "" )[0] == '#' )
|
||||
if( line[0] == '#' )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
@@ -164,8 +188,11 @@ void midiMapper::readDrumsetKeyMap( QFile & _f )
|
||||
|
||||
m_drumsetKeyMap[key].second = line.mid( 4 ).
|
||||
section( '=', 0, 0 ).
|
||||
section( ' ', 1, 1 ).
|
||||
replace( ' ', "" );
|
||||
section( ' ', 1, 1 )
|
||||
#if QT_VERSION >= 0x030100
|
||||
.replace( ' ', "" )
|
||||
#endif
|
||||
;
|
||||
}
|
||||
++key;
|
||||
}
|
||||
@@ -185,12 +212,19 @@ void midiMapper::readChannelMap( QFile & _f )
|
||||
continue;
|
||||
}
|
||||
QString line( buf );
|
||||
#if QT_VERSION >= 0x030100
|
||||
line.replace( '\n', "" );
|
||||
#else
|
||||
if( line.contains( '\n' ) )
|
||||
{
|
||||
line = line.left( line.length() - 1 );
|
||||
}
|
||||
#endif
|
||||
if( line.left( 3 ) == "END" )
|
||||
{
|
||||
return;
|
||||
}
|
||||
if( QString( line ).replace( ' ', "" )[0] == '#' )
|
||||
if( line[0] == '#' )
|
||||
{
|
||||
continue;
|
||||
}
|
||||
|
||||
@@ -22,6 +22,11 @@
|
||||
*/
|
||||
|
||||
|
||||
#include "midi_oss.h"
|
||||
|
||||
#ifdef OSS_SUPPORT
|
||||
|
||||
|
||||
#include "qt3support.h"
|
||||
|
||||
#ifdef QT4
|
||||
@@ -38,9 +43,8 @@
|
||||
#endif
|
||||
|
||||
|
||||
#include "midi_oss.h"
|
||||
#include "config_mgr.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
|
||||
@@ -72,9 +76,12 @@ midiOSS::midiOSS( channelTrack * _ct ) :
|
||||
|
||||
midiOSS::~midiOSS()
|
||||
{
|
||||
m_quit = TRUE;
|
||||
wait( 500 );
|
||||
terminate();
|
||||
if( running() )
|
||||
{
|
||||
m_quit = TRUE;
|
||||
wait( 500 );
|
||||
terminate();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -162,3 +169,6 @@ void midiOSS::setupWidget::saveSettings( void )
|
||||
}
|
||||
|
||||
|
||||
|
||||
#endif
|
||||
|
||||
|
||||
@@ -44,12 +44,11 @@
|
||||
#include "bb_track.h"
|
||||
#include "song_editor.h"
|
||||
#include "bb_editor.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
#include "name_label.h"
|
||||
#include "embed.h"
|
||||
#include "rename_dialog.h"
|
||||
|
||||
#include "bb_track.moc"
|
||||
|
||||
|
||||
QMap<bbTrack *, bbTrack::bbInfoStruct> bbTrack::s_bbNums;
|
||||
@@ -164,10 +163,10 @@ void bbTCO::paintEvent( QPaintEvent * )
|
||||
QPainter p( &pm );
|
||||
|
||||
// COOL gradient ;-)
|
||||
for( int y = 0; y < height(); ++y )
|
||||
for( int y = 1; y < height() - 1; ++y )
|
||||
{
|
||||
p.setPen( col.light( 130 - y * 60 / height() ) );
|
||||
p.drawLine( 0, y, width(), y );
|
||||
p.drawLine( 1, y, width() - 1, y );
|
||||
}
|
||||
//pm.fill( col );
|
||||
#endif
|
||||
@@ -507,3 +506,9 @@ void bbTrack::clickedTrackLabel( void )
|
||||
bbEditor::inst()->setCurrentBB( s_bbNums[this].num );
|
||||
bbEditor::inst()->show();
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
#include "bb_track.moc"
|
||||
|
||||
|
||||
@@ -51,6 +51,7 @@
|
||||
#include "pattern.h"
|
||||
#include "channel_track.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
#include "embed.h"
|
||||
#include "piano_roll.h"
|
||||
#include "track_container.h"
|
||||
@@ -748,7 +749,7 @@ note * pattern::addNote( const note & _new_note )
|
||||
{
|
||||
note * new_note = new note( _new_note );
|
||||
|
||||
if( m_notes.size() == 0 || m_notes.last()->pos() <= new_note->pos() )
|
||||
if( m_notes.size() == 0 || m_notes.back()->pos() <= new_note->pos() )
|
||||
{
|
||||
m_notes.push_back( new_note );
|
||||
}
|
||||
|
||||
@@ -40,13 +40,17 @@
|
||||
|
||||
#endif
|
||||
|
||||
#ifndef __USE_XOPEN
|
||||
#define __USE_XOPEN
|
||||
#endif
|
||||
|
||||
#include <math.h>
|
||||
|
||||
|
||||
#include "group_box.h"
|
||||
#include "embed.h"
|
||||
#include "spc_bg_hndl_widget.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
QPixmap * groupBox::s_ledBg = NULL;
|
||||
|
||||
@@ -65,10 +65,11 @@
|
||||
#include "midi_device.h"
|
||||
#include "embed.h"
|
||||
#include "spc_bg_hndl_widget.h"
|
||||
//#include "tooltip.h"
|
||||
#include "config_mgr.h"
|
||||
#include "text_float.h"
|
||||
#include "mixer.h"
|
||||
#include "gui_templates.h"
|
||||
#include "templates.h"
|
||||
|
||||
|
||||
const int WHEEL_DELTA = 120;
|
||||
|
||||
@@ -41,10 +41,10 @@
|
||||
|
||||
|
||||
#include "lcd_spinbox.h"
|
||||
#include "gui_templates.h"
|
||||
#include "templates.h"
|
||||
|
||||
|
||||
|
||||
lcdSpinBox::lcdSpinBox( int _min, int _max, int _num_digits,
|
||||
QWidget * _parent ) :
|
||||
QWidget( _parent ),
|
||||
|
||||
@@ -43,7 +43,7 @@
|
||||
|
||||
#include "led_checkbox.h"
|
||||
#include "embed.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
#include "spc_bg_hndl_widget.h"
|
||||
|
||||
|
||||
|
||||
@@ -59,7 +59,7 @@ nStateButton::~nStateButton()
|
||||
{
|
||||
while( m_states.size() )
|
||||
{
|
||||
delete m_states.first().first;
|
||||
delete m_states.front().first;
|
||||
m_states.erase( m_states.begin() );
|
||||
}
|
||||
}
|
||||
|
||||
@@ -41,12 +41,12 @@
|
||||
|
||||
#include "side_bar_widget.h"
|
||||
#include "types.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
|
||||
sideBarWidget::sideBarWidget( const QString & _title, const QPixmap & _icon,
|
||||
QWidget * _parent ) :
|
||||
QWidget * _parent ) :
|
||||
QWidget( _parent ),
|
||||
m_title( _title ),
|
||||
m_icon( _icon )
|
||||
|
||||
@@ -24,7 +24,7 @@
|
||||
|
||||
#include "tab_bar.h"
|
||||
#include "tab_button.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
#include "tooltip.h"
|
||||
|
||||
#ifndef QT4
|
||||
@@ -68,7 +68,7 @@ tabButton * tabBar::addTab( QWidget * _w, const QString & _text, int _id,
|
||||
// then remove it
|
||||
removeTab( _id );
|
||||
}
|
||||
QString caption = ( _text_is_tooltip ) ? "" : _text;
|
||||
QString caption = ( _text_is_tooltip ) ? QString( "" ) : _text;
|
||||
// create tab-button
|
||||
tabButton * b = new tabButton( caption, _id, this );
|
||||
connect( b, SIGNAL( clicked( int ) ), this, SLOT( tabClicked( int ) ) );
|
||||
|
||||
@@ -39,7 +39,7 @@
|
||||
|
||||
|
||||
#include "tab_widget.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -41,7 +41,7 @@
|
||||
|
||||
|
||||
#include "text_float.h"
|
||||
#include "templates.h"
|
||||
#include "gui_templates.h"
|
||||
|
||||
|
||||
|
||||
|
||||
@@ -50,10 +50,3 @@ void toolTip::add( QWidget * _w, const QString & _txt )
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
/*
|
||||
void toolTip::remove( QWidget * _w )
|
||||
{
|
||||
QToolTip::remove( _w );
|
||||
}
|
||||
*/
|
||||
|
||||
Reference in New Issue
Block a user