Changeset 632
- Timestamp:
- 11/06/08 21:54:48 (2 months ago)
- Files:
-
- branches/new_fx_rack_and_sample_fun/data/img/gray/waveDisplay/targetsamplewavedisplay.png (modified) (previous)
- branches/new_fx_rack_and_sample_fun/gui/src/HydrogenApp.cpp (modified) (2 diffs)
- branches/new_fx_rack_and_sample_fun/gui/src/MainForm.cpp (modified) (5 diffs)
- branches/new_fx_rack_and_sample_fun/gui/src/MainForm.h (modified) (1 diff)
- branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/MainSampleWaveDisplay.cpp (modified) (3 diffs)
- branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/SampleEditor.cpp (modified) (13 diffs)
- branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/SampleEditor.h (modified) (3 diffs)
- branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/SampleEditor_UI.ui (modified) (7 diffs)
- branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/TargetWaveDisplay.cpp (modified) (5 diffs)
- branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/TargetWaveDisplay.h (modified) (3 diffs)
- branches/new_fx_rack_and_sample_fun/libs/hydrogen/include/hydrogen/LocalFileMng.h (modified) (1 diff)
- branches/new_fx_rack_and_sample_fun/libs/hydrogen/include/hydrogen/sample.h (modified) (1 diff)
- branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/local_file_mgr.cpp (modified) (2 diffs)
- branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/sample.cpp (modified) (2 diffs)
- branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/song.cpp (modified) (1 diff)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/new_fx_rack_and_sample_fun/gui/src/HydrogenApp.cpp
r623 r632 328 328 bool close = m_pSampleEditor->getCloseQuestion(); 329 329 if ( close ){ 330 m_pSampleEditor->close(); 330 331 delete m_pSampleEditor; 331 332 }else … … 335 336 }else 336 337 { 338 m_pSampleEditor->close(); 337 339 delete m_pSampleEditor; 338 340 } branches/new_fx_rack_and_sample_fun/gui/src/MainForm.cpp
r625 r632 377 377 bool MainForm::action_file_exit() 378 378 { 379 if ( Hydrogen::get_instance()->getSong()->__is_modified ) { 380 int res = QMessageBox::information( 381 this, 382 "Hydrogen", 383 trUtf8("\nThe song has unsaved changes\n Do you want to save the changes before exiting?\n"), 384 trUtf8("&Save"), 385 trUtf8("&Discard"), 386 trUtf8("&Cancel"), 387 0, // Enter == button 0 388 2 // Escape == button 2 389 ); 390 switch( res ) { 391 case 0: 392 // Save clicked or Alt+S pressed or Enter pressed. 393 if ( Hydrogen::get_instance()->getSong()->get_filename() != "") { 394 action_file_save(); 395 } else { 396 action_file_save_as(); 397 } 398 // save 399 break; 400 case 1: 401 // Discard clicked or Alt+D pressed 402 // don't save but exit 403 break; 404 case 2: 405 // Cancel clicked or Alt+C pressed or Escape pressed 406 // don't exit 407 return false; 408 break; 409 default: 410 ERRORLOG( "Unknown return code: " + to_string( res ) ); 411 } 379 bool proceed = handleUnsavedChanges(); 380 if(!proceed) { 381 return false; 412 382 } 413 383 closeAll(); … … 423 393 } 424 394 425 if ( Hydrogen::get_instance()->getSong()->__is_modified ) { 426 switch( 427 QMessageBox::information( this, "Hydrogen", 428 trUtf8("\nThe document contains unsaved changes\n" 429 "Do you want to save the changes before exiting?\n"), 430 trUtf8("&Save"), trUtf8("&Discard"), trUtf8("&Cancel"), 431 0, // Enter == button 0 432 2 ) ) { // Escape == button 2 433 case 0: // Save clicked or Alt+S pressed or Enter pressed. 434 if ( Hydrogen::get_instance()->getSong()->get_filename() != "") { 435 action_file_save(); 436 } else { 437 // never been saved 438 action_file_save_as(); 439 } 440 // save 441 break; 442 case 1: // Discard clicked or Alt+D pressed 443 // don't save but exit 444 break; 445 case 2: // Cancel clicked or Alt+C pressed or Escape pressed 446 // don't exit 447 return; 448 break; 449 } 395 bool proceed = handleUnsavedChanges(); 396 if(!proceed) { 397 return; 450 398 } 451 399 … … 641 589 } 642 590 643 if ( Hydrogen::get_instance()->getSong()->__is_modified ) { 644 switch( 645 QMessageBox::information( this, "Hydrogen", 646 trUtf8("\nThe document contains unsaved changes\n" 647 "Do you want to save the changes before exiting?\n"), 648 trUtf8("&Save"), trUtf8("&Discard"), trUtf8("&Cancel"), 649 0, // Enter == button 0 650 2 ) ) { // Escape == button 2 651 case 0: // Save clicked or Alt+S pressed or Enter pressed. 652 if ( Hydrogen::get_instance()->getSong()->get_filename() != "") { 653 action_file_save(); 654 } 655 else { 656 action_file_save_as(); 657 } 658 // save 659 break; 660 case 1: // Discard clicked or Alt+D pressed 661 // don't save but exit 662 break; 663 case 2: // Cancel clicked or Alt+C pressed or Escape pressed 664 // don't exit 665 return; 666 break; 667 } 668 } 669 670 671 672 673 591 bool proceed = handleUnsavedChanges(); 592 if(!proceed) { 593 return; 594 } 674 595 675 596 static QString lastUsedDir = Preferences::getInstance()->getDataDirectory() + "/songs"; … … 756 677 } 757 678 758 if ( ( Hydrogen::get_instance()->getSong())->__is_modified ) { 759 switch( 760 QMessageBox::information( this, "Hydrogen", 761 trUtf8("\nThe document contains unsaved changes\n" 762 "Do you want to save the changes before exiting?\n"), 763 trUtf8("&Save"), trUtf8("&Discard"), trUtf8("&Cancel"), 764 0, // Enter == button 0 765 2 ) ) { // Escape == button 2 766 case 0: // Save clicked or Alt+S pressed or Enter pressed. 767 if ( Hydrogen::get_instance()->getSong()->get_filename() != "") { 768 action_file_save_as(); 769 } 770 else { 771 action_file_save_as(); 772 } 773 // save 774 break; 775 case 1: // Discard clicked or Alt+D pressed 776 // don't save but exit 777 break; 778 case 2: // Cancel clicked or Alt+C pressed or Escape pressed 779 // don't exit 780 return; 781 break; 782 } 783 } 784 679 bool proceed = handleUnsavedChanges(); 680 if(!proceed) { 681 return; 682 } 785 683 786 684 QFileDialog *fd = new QFileDialog(this); … … 1663 1561 HydrogenApp::getInstance()->setScrollStatusBarMessage( message, 2000 ); 1664 1562 } 1563 1564 // Returns true if unsaved changes are successfully handled (saved, discarded, etc.) 1565 // Returns false if not (i.e. Cancel) 1566 bool MainForm::handleUnsavedChanges() 1567 { 1568 bool done = false; 1569 bool rv = true; 1570 while ( !done && Hydrogen::get_instance()->getSong()->__is_modified ) { 1571 switch( 1572 QMessageBox::information( this, "Hydrogen", 1573 trUtf8("\nThe document contains unsaved changes.\n" 1574 "Do you want to save the changes?\n"), 1575 trUtf8("&Save"), trUtf8("&Discard"), trUtf8("&Cancel"), 1576 0, // Enter == button 0 1577 2 ) ) { // Escape == button 2 1578 case 0: // Save clicked or Alt+S pressed or Enter pressed. 1579 // If the save fails, the __is_modified flag will still be true 1580 if ( Hydrogen::get_instance()->getSong()->get_filename() != "") { 1581 action_file_save(); 1582 } else { 1583 // never been saved 1584 action_file_save_as(); 1585 } 1586 // save 1587 break; 1588 case 1: // Discard clicked or Alt+D pressed 1589 // don't save but exit 1590 done = true; 1591 break; 1592 case 2: // Cancel clicked or Alt+C pressed or Escape pressed 1593 // don't exit 1594 done = true; 1595 rv = false; 1596 break; 1597 } 1598 } 1599 return rv; 1600 } branches/new_fx_rack_and_sample_fun/gui/src/MainForm.h
r377 r632 106 106 void onPlaylistDisplayTimer(); 107 107 108 protected: 109 // Returns true if handled, false if aborted. 110 bool handleUnsavedChanges(); 111 108 112 private: 109 113 HydrogenApp* h2app; branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/MainSampleWaveDisplay.cpp
r617 r632 222 222 { 223 223 //startframepointer 224 if (ev->y()>=2 40 ) {224 if (ev->y()>=200 ) { 225 225 m_pStartFramePosition = ev->x() ; 226 226 if ( m_pStartFramePosition > m_pLoopFramePosition ) … … 233 233 234 234 //loopframeposition 235 else if (ev->y()<= 40) {235 else if (ev->y()<=65 ) { 236 236 m_pLoopFramePosition = ev->x() ; 237 237 if ( m_pLoopFramePosition < m_pStartFramePosition ) … … 240 240 } 241 241 //endframeposition 242 else if ( ev->y() >= 90 && ev->y() <= 160) {242 else if ( ev->y() >= 86 && ev->y() <= 179 ) { 243 243 m_pEndFramePosition = ev->x() ; 244 244 if ( m_pEndFramePosition < m_pLoopFramePosition ){ branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/SampleEditor.cpp
r630 r632 68 68 QString newfilename = mSamplefilename.section( '/', -1 ); 69 69 70 setWindowTitle ( QString( "SampleEditor " + newfilename) );70 setWindowTitle ( QString( "SampleEditor " + newfilename) ); 71 71 setFixedSize ( width(), height() ); 72 72 installEventFilter( this ); … … 88 88 // mainSampleview = 624(575) x 265 :-) 89 89 // mainSampleAdjustView = 180 x 265 :-( 90 // targetSampleView = 451 x 91 :-( will removed90 // targetSampleView = 841 x 91 :-( will removed 91 91 // StartFrameSpinBox :-) 92 92 // LoopFrameSpinBox :-) … … 95 95 // EndFrameSpinBox :-) 96 96 // FadeOutFrameSpinBox :-( 97 // FadeOutTypeComboBox: lin, log :-(97 // FadeOutTypeComboBox: off, lin, log :-( 98 98 // ApplyChangesPushButton :-() 99 99 // PlayPushButton :-) … … 101 101 // ClosePushButton :-() 102 102 // verticalzoomSlider 103 // newlengthLabel 103 104 104 105 connect( StartFrameSpinBox, SIGNAL( valueChanged( int ) ), this, SLOT( valueChangedStartFrameSpinBox(int) ) ); … … 184 185 m_pMainSampleWaveDisplay->updateDisplayPointer(); 185 186 187 float divider = pSample->get_n_frames() / 841.0F; 188 m_pTargetSampleView->m_pFadeOutFramePosition = FadeOutFrameSpinBox->value() / divider; 189 186 190 } 187 191 } … … 194 198 m_repeats = LoopCountSpinBox->value(); 195 199 m_end_frame = EndFrameSpinBox->value(); 196 200 m_fade_out_startframe = FadeOutFrameSpinBox->value(); 201 m_fade_out_type = FadeOutTypeComboBox->currentIndex(); 197 202 } 198 203 … … 370 375 m_ponewayLoop = true; 371 376 m_ponewayEnd = true; 377 setSamplelengthFrames(); 378 } 379 380 381 void SampleEditor::returnAllTargetDisplayValues() 382 { 383 setSamplelengthFrames(); 384 float divider = m_pslframes / 841.0F; 385 // QMessageBox::information ( this, "Hydrogen", trUtf8 ( "jep %1" ).arg(m_pSample->get_n_frames())); 386 m_sample_is_modified = true; 387 m_fade_out_startframe = m_pTargetSampleView->m_pFadeOutFramePosition * divider; 388 FadeOutFrameSpinBox->setValue( m_fade_out_startframe ); 389 390 } 391 392 393 void SampleEditor::on_FadeOutFrameSpinBox_valueChanged( int ) 394 { 395 setSamplelengthFrames(); 396 float divider = m_pslframes / 841.0F; 397 m_pTargetSampleView->m_pFadeOutFramePosition = FadeOutFrameSpinBox->value() / divider; 398 m_pTargetSampleView->updateDisplayPointer(); 399 m_pSampleEditorStatus = false; 372 400 } 373 401 … … 393 421 m_pSampleEditorStatus = false; 394 422 //QMessageBox::information ( this, "Hydrogen", trUtf8 ( "jep %1" ).arg(StartFrameSpinBox->value() / m_divider + 25 )); 423 setSamplelengthFrames(); 395 424 } 396 425 … … 413 442 testPositionsSpinBoxes(); 414 443 m_pSampleEditorStatus = false; 444 setSamplelengthFrames(); 415 445 } 416 446 … … 433 463 testPositionsSpinBoxes(); 434 464 m_pSampleEditorStatus = false; 465 setSamplelengthFrames(); 435 466 } 436 467 … … 601 632 } 602 633 m_pslframes = newlength; 634 newlengthLabel->setText(QString("new sample length: %1 frames").arg(newlength)); 635 FadeOutFrameSpinBox->setMaximum( newlength ); 603 636 } 604 637 … … 609 642 m_repeats = LoopCountSpinBox->value() ; 610 643 m_pSampleEditorStatus = false; 644 setSamplelengthFrames(); 611 645 } 612 646 … … 653 687 EndFrameSpinBox->setValue( m_end_frame ); 654 688 } 689 690 691 692 693 void SampleEditor::on_FadeOutTypeComboBox_currentIndexChanged( int ) 694 { 695 m_pSampleEditorStatus = false; 696 } 697 branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/SampleEditor.h
r629 r632 57 57 bool m_pSampleEditorStatus; 58 58 void returnAllMainWaveDisplayValues(); 59 void returnAllTargetDisplayValues(); 59 60 60 61 //this values come from the real sample to restore a frm song loaded sample … … 62 63 QString m_sample_mode; ///< loop mode 63 64 unsigned m_fade_out_startframe; ///< start frame for fade out 64 int m_fade_out_type; ///< fade out type 0= lin, 1=log65 int m_fade_out_type; ///< fade out type 0=off, 1=lin , 2=log 65 66 int m_repeats; ///< repats from the loop section 66 67 unsigned m_start_frame; ///< start frame … … 82 83 void on_verticalzoomSlider_valueChanged ( int value ); 83 84 void updateMainsamplePostionRuler(); 85 void on_FadeOutFrameSpinBox_valueChanged( int ); 86 void on_FadeOutTypeComboBox_currentIndexChanged( int ); 84 87 85 88 branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/SampleEditor_UI.ui
r623 r632 18 18 <x>10</x> 19 19 <y>385</y> 20 <width> 451</width>20 <width>841</width> 21 21 <height>91</height> 22 22 </rect> … … 58 58 <property name="geometry" > 59 59 <rect> 60 <x>7 40</x>61 <y> 450</y>60 <x>775</x> 61 <y>295</y> 62 62 <width>81</width> 63 63 <height>26</height> … … 72 72 <rect> 73 73 <x>5</x> 74 <y> 305</y>75 <width> 846</width>74 <y>295</y> 75 <width>621</width> 76 76 <height>24</height> 77 77 </rect> … … 173 173 </widget> 174 174 </item> 175 <item>176 <widget class="QSpinBox" name="FadeOutFrameSpinBox" >177 <property name="minimumSize" >178 <size>179 <width>140</width>180 <height>0</height>181 </size>182 </property>183 <property name="toolTip" >184 <string>Adjust fade-out start frame</string>185 </property>186 <property name="maximum" >187 <number>1000000000</number>188 </property>189 </widget>190 </item>191 <item>192 <widget class="QComboBox" name="FadeOutTypeComboBox" >193 <property name="toolTip" >194 <string>fade-out type</string>195 </property>196 <item>197 <property name="text" >198 <string>lin</string>199 </property>200 </item>201 <item>202 <property name="text" >203 <string>log</string>204 </property>205 </item>206 </widget>207 </item>208 175 </layout> 209 176 </widget> … … 211 178 <property name="geometry" > 212 179 <rect> 213 <x> 7</x>214 <y>1 8</y>180 <x>5</x> 181 <y>10</y> 215 182 <width>843</width> 216 183 <height>276</height> … … 286 253 <string>&Play</string> 287 254 </property> 255 </widget> 256 <widget class="QLabel" name="newlengthLabel" > 257 <property name="geometry" > 258 <rect> 259 <x>400</x> 260 <y>350</y> 261 <width>236</width> 262 <height>21</height> 263 </rect> 264 </property> 265 <property name="text" > 266 <string>new sample length:</string> 267 </property> 268 </widget> 269 <widget class="QWidget" name="" > 270 <property name="geometry" > 271 <rect> 272 <x>640</x> 273 <y>350</y> 274 <width>209</width> 275 <height>24</height> 276 </rect> 277 </property> 278 <layout class="QHBoxLayout" name="horizontalLayout_3" > 279 <item> 280 <widget class="QComboBox" name="FadeOutTypeComboBox" > 281 <property name="minimumSize" > 282 <size> 283 <width>60</width> 284 <height>0</height> 285 </size> 286 </property> 287 <property name="toolTip" > 288 <string>fade-out type</string> 289 </property> 290 <item> 291 <property name="text" > 292 <string>off</string> 293 </property> 294 </item> 295 <item> 296 <property name="text" > 297 <string>lin</string> 298 </property> 299 </item> 300 </widget> 301 </item> 302 <item> 303 <widget class="QSpinBox" name="FadeOutFrameSpinBox" > 304 <property name="minimumSize" > 305 <size> 306 <width>140</width> 307 <height>0</height> 308 </size> 309 </property> 310 <property name="toolTip" > 311 <string>Adjust fade-out start frame</string> 312 </property> 313 <property name="maximum" > 314 <number>1000000000</number> 315 </property> 316 </widget> 317 </item> 318 </layout> 288 319 </widget> 289 320 </widget> … … 294 325 <tabstop>LoopCountSpinBox</tabstop> 295 326 <tabstop>EndFrameSpinBox</tabstop> 296 <tabstop>FadeOutFrameSpinBox</tabstop>297 <tabstop>FadeOutTypeComboBox</tabstop>298 327 <tabstop>PrevChangesPushButton</tabstop> 299 328 <tabstop>PlayOrigPushButton</tabstop> branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/TargetWaveDisplay.cpp
r619 r632 25 25 #include <hydrogen/Song.h> 26 26 #include <hydrogen/instrument.h> 27 28 #include "HydrogenApp.h" 29 #include "SampleEditor.h" 30 27 31 using namespace H2Core; 28 32 … … 39 43 40 44 //INFOLOG( "INIT" ); 41 int w = 451;45 int w = 841; 42 46 int h = 91; 43 47 resize( w, h ); … … 67 71 { 68 72 QPainter painter( this ); 69 painter.setRenderHint( QPainter:: Antialiasing );73 painter.setRenderHint( QPainter::HighQualityAntialiasing ); 70 74 painter.drawPixmap( ev->rect(), m_background, ev->rect() ); 71 75 72 painter.setPen( QColor( 102, 150, 205 ) );76 painter.setPen( QColor( 255 , 255, 255 ) ); 73 77 int VCenter = height() / 2; 74 78 for ( int x = 0; x < width(); x++ ) { … … 79 83 font.setWeight( 63 ); 80 84 painter.setFont( font ); 81 painter.setPen( QColor( 255 , 255, 255, 200 ) ); 82 painter.drawText( 0, 0, width(), 20, Qt::AlignCenter, m_sSampleName ); 85 //start frame pointer 86 painter.setPen( QColor( 99, 175, 254, 200 ) ); 87 painter.drawLine( m_pFadeOutFramePosition, 4, m_pFadeOutFramePosition, height() -4 ); 88 painter.drawText( m_pFadeOutFramePosition , 1, 10,20, Qt::AlignRight, "F" ); 89 83 90 } 84 91 85 92 86 93 void TargetWaveDisplay::updateDisplayPointer() 94 { 95 update(); 96 } 87 97 88 98 void TargetWaveDisplay::updateDisplay( H2Core::InstrumentLayer *pLayer ) … … 115 125 116 126 } 127 128 129 void TargetWaveDisplay::mouseMoveEvent(QMouseEvent *ev) 130 { 131 testPosition( ev ); 132 update(); 133 } 134 135 136 137 void TargetWaveDisplay::mousePressEvent(QMouseEvent *ev) 138 { 139 testPosition( ev ); 140 update(); 141 } 142 143 144 void TargetWaveDisplay::testPosition( QMouseEvent *ev ) 145 { 146 m_pFadeOutFramePosition = ev->x() ; 147 } 148 149 150 void TargetWaveDisplay::mouseReleaseEvent(QMouseEvent *ev) 151 { 152 update(); 153 HydrogenApp::getInstance()->getSampleEditor()->returnAllTargetDisplayValues(); 154 } branches/new_fx_rack_and_sample_fun/gui/src/SampleEditor/TargetWaveDisplay.h
r619 r632 28 28 #include <hydrogen/sample.h> 29 29 30 class SampleEditor; 31 30 32 namespace H2Core 31 33 { … … 42 44 43 45 void updateDisplay( H2Core::InstrumentLayer *pLayer ); 46 void updateDisplayPointer(); 44 47 45 48 void paintEvent(QPaintEvent *ev); 49 int m_pFadeOutFramePosition; 46 50 47 51 private: … … 50 54 int *m_pPeakData; 51 55 unsigned m_pSampleLenght; 56 virtual void mouseMoveEvent(QMouseEvent *ev); 57 virtual void mousePressEvent(QMouseEvent *ev); 58 virtual void mouseReleaseEvent(QMouseEvent *ev); 59 void testPosition( QMouseEvent *ev ); 52 60 53 61 }; branches/new_fx_rack_and_sample_fun/libs/hydrogen/include/hydrogen/LocalFileMng.h
r362 r632 107 107 ~SongWriter(); 108 108 109 void writeSong( Song *song, const QString& filename ); 109 // Returns 0 on success. 110 int writeSong( Song *song, const QString& filename ); 110 111 }; 111 112 branches/new_fx_rack_and_sample_fun/libs/hydrogen/include/hydrogen/sample.h
r629 r632 169 169 unsigned __end_frame; ///< sample end frame 170 170 unsigned __fade_out_startframe; ///< start frame for fade out 171 int __fade_out_type; ///< fade out type 0= lin, 1=log171 int __fade_out_type; ///< fade out type 0=off, 1=lin , 2=log 172 172 173 173 branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/local_file_mgr.cpp
r625 r632 1088 1088 1089 1089 1090 1091 voidSongWriter::writeSong( Song *song, const QString& filename )1090 // Returns 0 on success, passes the TinyXml error code otherwise. 1091 int SongWriter::writeSong( Song *song, const QString& filename ) 1092 1092 { 1093 1093 INFOLOG( "Saving song " + filename ); 1094 int rv = 0; // return value 1094 1095 1095 1096 // FIXME: has the file write-permssion? … … 1304 1305 1305 1306 doc.InsertEndChild( songNode ); 1306 doc.SaveFile(); 1307 1308 song->__is_modified = false; 1307 rv = ( doc.SaveFile() ? 0 : doc.ErrorId() ); 1308 1309 if( rv ) { 1310 WARNINGLOG("File save reported an error."); 1311 } else { 1312 song->__is_modified = false; 1313 INFOLOG("Save was successful."); 1314 } 1309 1315 song->set_filename( filename ); 1316 1317 return rv; 1310 1318 } 1311 1319 branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/sample.cpp
r629 r632 164 164 const int fadeouttype) 165 165 { 166 _INFOLOG( QString( "mode: " + loopmode) );167 _INFOLOG( QString( "loops: %1" ).arg( loops ) );166 // _INFOLOG( QString( "mode: " + loopmode) ); 167 // _INFOLOG( QString( "loops: %1" ).arg( loops ) ); 168 168 // file exists? 169 169 if ( QFile( filename ).exists() == false ) { … … 274 274 } 275 275 276 277 ///fadeout 278 // fadeoutstartframe 279 // newlength 280 281 //lin fade out 282 283 // _INFOLOG( QString( "type: %1" ).arg( fadeouttype ) ); 284 // _INFOLOG( QString( "frames: %1" ).arg( fadeoutstartframe ) ); 285 286 if (fadeouttype == 1){ 287 double y = 1.0F; 288 unsigned differ = newlength - fadeoutstartframe; 289 if ( differ <= 0 ) differ = 1; 290 double subtract = (double)1.0F / differ; 291 for ( unsigned i = fadeoutstartframe; i< newlength; i++, y = y - subtract){ 292 tempdata_l[i] = tempdata_l[i] * y; 293 tempdata_r[i] = tempdata_r[i] * y; 294 //_INFOLOG( QString( "y: %1" ).arg( y ) ); 295 } 296 } 276 297 277 298 Sample *pSample = new Sample( newlength, filename ); branches/new_fx_rack_and_sample_fun/libs/hydrogen/src/song.cpp
r602 r632 118 118 { 119 119 SongWriter writer; 120 writer.writeSong( this, filename ); 121 120 int err; 121 err = writer.writeSong( this, filename ); 122 123 if( err ) { 124 return false; 125 } 122 126 return QFile::exists( filename ); 123 127 }
