Changeset 546

Show
Ignore:
Timestamp:
10/05/08 04:37:29 (2 months ago)
Author:
wolke
Message:

add a new checkbox to set automatic velocity if a new layer will create

Files:

Legend:

Unmodified
Added
Removed
Modified
Copied
Moved
  • branches/audiofilebrowser/gui/src/AudioFileBrowser/AudioFileBrowser.cpp

    r524 r546  
    7171        pathLineEdit->setText( Preferences::getInstance()->__lastsampleDirectory ); 
    7272        m_psamplefilename = "";  
    73         m_pselectedFile = ""; 
     73        m_pselectedFile << "false" << "false" << ""; 
    7474 
    7575        sEmptySampleFilename = DataPath::get_data_path() + "/emptySample.wav"; 
     
    225225{ 
    226226        Preferences::getInstance()->__lastsampleDirectory = pathLineEdit->text(); 
    227         m_pselectedFile = ""; 
     227        m_pselectedFile << "false" << "false" << ""; 
    228228        reject(); 
    229229 
     
    245245                ( QFile( filelineedit->text() ).exists() == true ) 
    246246                ) {              
    247                         m_pselectedFile = filelineedit->text(); 
     247                        m_pselectedFile[2] = filelineedit->text(); 
    248248                         
    249249                }else 
    250250                { 
    251                         m_pselectedFile = ""; 
     251                        m_pselectedFile << "false" << "false" << ""; 
    252252                } 
    253253        Preferences::getInstance()->__lastsampleDirectory = pathLineEdit->text(); 
     
    264264 
    265265 
    266 QString AudioFileBrowser::selectedFile() 
     266QStringList AudioFileBrowser::selectedFile() 
    267267{ 
    268268        if ( useNameCheckBox->isChecked() ){ 
    269                  m_pselectedFile.append( "___trUe" ); 
     269                 m_pselectedFile[0] = "true"; 
     270        } 
     271        if ( autoVelCheckBox->isChecked() ){ 
     272                 m_pselectedFile[1] = "true"; 
    270273        } 
    271274        return m_pselectedFile; 
  • branches/audiofilebrowser/gui/src/AudioFileBrowser/AudioFileBrowser.h

    r524 r546  
    4747                AudioFileBrowser( QWidget* pParent ); 
    4848                ~AudioFileBrowser(); 
    49                 QString selectedFile(); 
     49                QStringList selectedFile(); 
    5050                QString setDir( QString dir ); 
    5151 
     
    6767                InstrumentEditor* m_pInstrumentEditor; 
    6868                QString m_psamplefilename; 
    69                 QString m_pselectedFile; 
     69                QStringList m_pselectedFile; 
    7070                QDirModel *model; 
    7171                QTreeView *tree; 
  • branches/audiofilebrowser/gui/src/AudioFileBrowser/AudioFileBrowser_UI.ui

    r524 r546  
    210210   <property name="text" > 
    211211    <string>&amp;Stop</string> 
     212   </property> 
     213  </widget> 
     214  <widget class="QCheckBox" name="autoVelCheckBox" > 
     215   <property name="geometry" > 
     216    <rect> 
     217     <x>360</x> 
     218     <y>530</y> 
     219     <width>171</width> 
     220     <height>21</height> 
     221    </rect> 
     222   </property> 
     223   <property name="toolTip" > 
     224    <string>Be careful, this change all Layer velocity settings </string> 
     225   </property> 
     226   <property name="text" > 
     227    <string>Set automatic velocity</string> 
    212228   </property> 
    213229  </widget> 
  • branches/audiofilebrowser/gui/src/InstrumentEditor/InstrumentEditor.cpp

    r501 r546  
    486486 
    487487        Hydrogen *engine = Hydrogen::get_instance(); 
    488 //      MainForm *pMainForm = HydrogenApp::getInstance()->getMainForm(); 
    489  
    490488 
    491489        AudioFileBrowser *fb = new AudioFileBrowser( NULL ); 
    492         QString filename = ""; 
     490        QStringList filename; 
     491        filename << "false" << "false" << ""; 
    493492 
    494493        if (fb->exec() == QDialog::Accepted) { 
     
    499498 
    500499        bool fnc = false;        
    501         if ( filename.endsWith( "___trUe" )){ 
     500        if ( filename[0] ==  "true" ){ 
    502501                fnc = true; 
    503                 filename.replace( "___trUe", "" ); 
    504         } 
    505  
    506         if (filename != "") { 
    507 //              lastUsedDir = fd->directory().absolutePath(); 
    508                 Sample *newSample = Sample::load( filename ); 
     502        } 
     503 
     504        if (filename[2] != "") { 
     505 
     506                Sample *newSample = Sample::load( filename[2] ); 
    509507 
    510508                H2Core::Instrument *pInstr = NULL; 
     
    530528 
    531529                if ( fnc ){ 
    532                         QString newfilename = filename.section( '/', -1 ); 
     530                        QString newfilename = filename[2].section( '/', -1 ); 
    533531                                newfilename.replace( "." + newfilename.section( '.', -1 ), ""); 
    534532                        m_pInstrument->set_name( newfilename ); 
    535533                } 
    536534 
     535                //set automatic velocity 
     536                if ( filename[1] ==  "true" ){ 
     537                        setAutoVelocity(); 
     538                } 
     539 
    537540                pInstr->set_drumkit_name( "" );   // external sample, no drumkit info 
    538541 
     
    542545        selectedInstrumentChangedEvent();    // update all 
    543546        m_pLayerPreview->updateAll(); 
     547} 
     548 
     549 
     550void InstrumentEditor::setAutoVelocity() 
     551{ 
     552        int layerinuse[ MAX_LAYERS - 1 ] = {0}; 
     553        int layers = 0; 
     554        for ( int i = 0; i < MAX_LAYERS - 1; i++ ) { 
     555                InstrumentLayer *pLayers = m_pInstrument->get_layer( i ); 
     556                if ( pLayers ) { 
     557                        layers++; 
     558                        layerinuse[i] = i; 
     559                } 
     560        } 
     561 
     562        float velocityrange = 1.0 / layers; 
     563 
     564        for ( int i = 0; i < MAX_LAYERS - 1; i++ ) { 
     565                if ( layerinuse[i] == i ){ 
     566                        layers--; 
     567                        InstrumentLayer *pLayer = m_pInstrument->get_layer( i ); 
     568                        if ( pLayer ) { 
     569                                pLayer->set_start_velocity( layers * velocityrange); 
     570                                pLayer->set_end_velocity( layers * velocityrange + velocityrange ); 
     571                        } 
     572                } 
     573        } 
    544574} 
    545575 
  • branches/audiofilebrowser/gui/src/InstrumentEditor/InstrumentEditor.h

    r480 r546  
    128128 
    129129                void loadLayer(); 
     130                void setAutoVelocity(); 
    130131}; 
    131132