/[svn]/gigedit/trunk/src/gigedit/dimregionedit.cpp
ViewVC logotype

Diff of /gigedit/trunk/src/gigedit/dimregionedit.cpp

Parent Directory Parent Directory | Revision Log Revision Log | View Patch Patch

revision 1260 by schoenebeck, Sun Jun 10 10:56:11 2007 UTC revision 1261 by persson, Thu Jul 5 17:12:20 2007 UTC
# Line 413  DimRegionEdit::DimRegionEdit() : Line 413  DimRegionEdit::DimRegionEdit() :
413      eVCFResonanceController.signal_changed().connect(      eVCFResonanceController.signal_changed().connect(
414          sigc::mem_fun(*this, &DimRegionEdit::VCFResonanceController_changed) );          sigc::mem_fun(*this, &DimRegionEdit::VCFResonanceController_changed) );
415    
416      eCrossfade_in_start.signal_value_changed().connect(      eCrossfade_in_start.signal_changed_by_user().connect(
417          sigc::mem_fun(*this, &DimRegionEdit::crossfade1_changed));          sigc::mem_fun(*this, &DimRegionEdit::crossfade1_changed));
418      eCrossfade_in_end.signal_value_changed().connect(      eCrossfade_in_end.signal_changed_by_user().connect(
419          sigc::mem_fun(*this, &DimRegionEdit::crossfade2_changed));          sigc::mem_fun(*this, &DimRegionEdit::crossfade2_changed));
420      eCrossfade_out_start.signal_value_changed().connect(      eCrossfade_out_start.signal_changed_by_user().connect(
421          sigc::mem_fun(*this, &DimRegionEdit::crossfade3_changed));          sigc::mem_fun(*this, &DimRegionEdit::crossfade3_changed));
422      eCrossfade_out_end.signal_value_changed().connect(      eCrossfade_out_end.signal_changed_by_user().connect(
423          sigc::mem_fun(*this, &DimRegionEdit::crossfade4_changed));          sigc::mem_fun(*this, &DimRegionEdit::crossfade4_changed));
424    
425      eSampleLoopEnabled.signal_toggled().connect(      eSampleLoopEnabled.signal_toggled().connect(
426          sigc::mem_fun(*this, &DimRegionEdit::loop_enabled_toggled));          sigc::mem_fun(*this, &DimRegionEdit::loop_enabled_toggled));
427      eSampleLoopStart.signal_value_changed().connect(      eSampleLoopStart.signal_changed_by_user().connect(
428          sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements));          sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements));
429      eSampleLoopLength.signal_value_changed().connect(      eSampleLoopLength.signal_changed_by_user().connect(
430          sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements));          sigc::mem_fun(*this, &DimRegionEdit::updateLoopElements));
431      eSampleLoopInfinite.signal_toggled().connect(      eSampleLoopInfinite.signal_toggled().connect(
432          sigc::mem_fun(*this, &DimRegionEdit::loop_infinite_toggled));          sigc::mem_fun(*this, &DimRegionEdit::loop_infinite_toggled));
# Line 499  void DimRegionEdit::addProp(BoolEntry& b Line 499  void DimRegionEdit::addProp(BoolEntry& b
499      table[pageno]->attach(boolentry.widget, 1, 3, rowno, rowno + 1,      table[pageno]->attach(boolentry.widget, 1, 3, rowno, rowno + 1,
500                            Gtk::FILL, Gtk::SHRINK);                            Gtk::FILL, Gtk::SHRINK);
501      rowno++;      rowno++;
502        boolentry.signal_changed_by_user().connect(dimreg_changed_signal.make_slot());
503  }  }
504    
505  void DimRegionEdit::addProp(LabelWidget& prop)  void DimRegionEdit::addProp(LabelWidget& prop)
# Line 508  void DimRegionEdit::addProp(LabelWidget& Line 509  void DimRegionEdit::addProp(LabelWidget&
509      table[pageno]->attach(prop.widget, 2, 3, rowno, rowno + 1,      table[pageno]->attach(prop.widget, 2, 3, rowno, rowno + 1,
510                            Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK);                            Gtk::EXPAND | Gtk::FILL, Gtk::SHRINK);
511      rowno++;      rowno++;
512        prop.signal_changed_by_user().connect(dimreg_changed_signal.make_slot());
513  }  }
514    
515    
# Line 518  void DimRegionEdit::set_dim_region(gig:: Line 520  void DimRegionEdit::set_dim_region(gig::
520      set_sensitive(d);      set_sensitive(d);
521      if (!d) return;      if (!d) return;
522    
     update_gui = false;  
523      wSample->set_text(d->pSample ? d->pSample->pInfo->Name.c_str() : "NULL");      wSample->set_text(d->pSample ? d->pSample->pInfo->Name.c_str() : "NULL");
524      eEG1PreAttack.set_ptr(&d->EG1PreAttack);      eEG1PreAttack.set_ptr(&d->EG1PreAttack);
525      eEG1Attack.set_ptr(&d->EG1Attack);      eEG1Attack.set_ptr(&d->EG1Attack);
# Line 583  void DimRegionEdit::set_dim_region(gig:: Line 584  void DimRegionEdit::set_dim_region(gig::
584      eReleaseVelocityResponseCurve.set_ptr(&d->ReleaseVelocityResponseCurve);      eReleaseVelocityResponseCurve.set_ptr(&d->ReleaseVelocityResponseCurve);
585      eReleaseVelocityResponseDepth.set_ptr(&d->ReleaseVelocityResponseDepth);      eReleaseVelocityResponseDepth.set_ptr(&d->ReleaseVelocityResponseDepth);
586      eReleaseTriggerDecay.set_ptr(&d->ReleaseTriggerDecay);      eReleaseTriggerDecay.set_ptr(&d->ReleaseTriggerDecay);
587    
588        eCrossfade_in_start.set_ptr(0);
589        eCrossfade_in_end.set_ptr(0);
590        eCrossfade_out_start.set_ptr(0);
591        eCrossfade_out_end.set_ptr(0);
592      eCrossfade_in_start.set_ptr(&d->Crossfade.in_start);      eCrossfade_in_start.set_ptr(&d->Crossfade.in_start);
593      eCrossfade_in_end.set_ptr(&d->Crossfade.in_end);      eCrossfade_in_end.set_ptr(&d->Crossfade.in_end);
594      eCrossfade_out_start.set_ptr(&d->Crossfade.out_start);      eCrossfade_out_start.set_ptr(&d->Crossfade.out_start);
595      eCrossfade_out_end.set_ptr(&d->Crossfade.out_end);      eCrossfade_out_end.set_ptr(&d->Crossfade.out_end);
596    
597      ePitchTrack.set_ptr(&d->PitchTrack);      ePitchTrack.set_ptr(&d->PitchTrack);
598      eDimensionBypass.set_ptr(&d->DimensionBypass);      eDimensionBypass.set_ptr(&d->DimensionBypass);
599      ePan.set_ptr(&d->Pan);      ePan.set_ptr(&d->Pan);
# Line 607  void DimRegionEdit::set_dim_region(gig:: Line 614  void DimRegionEdit::set_dim_region(gig::
614      updateLoopElements();      updateLoopElements();
615    
616      VCFEnabled_toggled();      VCFEnabled_toggled();
   
     update_gui = true;  
617  }  }
618    
619  void DimRegionEdit::VCFEnabled_toggled()  void DimRegionEdit::VCFEnabled_toggled()
# Line 779  void DimRegionEdit::loop_enabled_toggled Line 784  void DimRegionEdit::loop_enabled_toggled
784              loop.LoopLength =              loop.LoopLength =
785                  (dimregion->pSample) ? dimregion->pSample->GetSize() : 0;                  (dimregion->pSample) ? dimregion->pSample->GetSize() : 0;
786              dimregion->AddSampleLoop(&loop);              dimregion->AddSampleLoop(&loop);
787                dimreg_changed_signal();
788          }          }
789      } else {      } else {
790          // delete ALL existing sample loops          if (dimregion->SampleLoops) {
791          while (dimregion->SampleLoops)              // delete ALL existing sample loops
792              dimregion->DeleteSampleLoop(&dimregion->pSampleLoops[0]);              while (dimregion->SampleLoops) {
793                    dimregion->DeleteSampleLoop(&dimregion->pSampleLoops[0]);
794                }
795                dimreg_changed_signal();
796            }
797      }      }
798      updateLoopElements();      updateLoopElements();
799  }  }
# Line 795  void DimRegionEdit::updateLoopElements() Line 805  void DimRegionEdit::updateLoopElements()
805      eSampleLoopLength.set_sensitive(active);      eSampleLoopLength.set_sensitive(active);
806      eSampleLoopType.set_sensitive(active);      eSampleLoopType.set_sensitive(active);
807      eSampleLoopInfinite.set_sensitive(active);      eSampleLoopInfinite.set_sensitive(active);
808        eSampleLoopStart.set_ptr(0);
809        eSampleLoopLength.set_ptr(0);
810        eSampleLoopPlayCount.set_ptr(0);
811    
812      if (dimregion && dimregion->SampleLoops) {      if (dimregion && dimregion->SampleLoops) {
813          eSampleLoopStart.set_ptr(&dimregion->pSampleLoops[0].LoopStart);          eSampleLoopStart.set_ptr(&dimregion->pSampleLoops[0].LoopStart);
814          eSampleLoopLength.set_ptr(&dimregion->pSampleLoops[0].LoopLength);          eSampleLoopLength.set_ptr(&dimregion->pSampleLoops[0].LoopLength);
815          eSampleLoopType.set_ptr(&dimregion->pSampleLoops[0].LoopType);          eSampleLoopType.set_ptr(&dimregion->pSampleLoops[0].LoopType);
         eSampleLoopPlayCount.set_ptr(  
             (dimregion->pSample) ? &dimregion->pSample->LoopPlayCount : NULL  
         );  
816          eSampleLoopInfinite.set_active(          eSampleLoopInfinite.set_active(
817              dimregion->pSample && !dimregion->pSample->LoopPlayCount              dimregion->pSample && !dimregion->pSample->LoopPlayCount
818          );          );
819            // updated enabled state of loop play count widget
820            loop_infinite_toggled();
821    
822            eSampleLoopPlayCount.set_ptr(
823                (dimregion->pSample) ? &dimregion->pSample->LoopPlayCount : 0
824            );
825    
826          // sample loop shall never be longer than the actual sample size          // sample loop shall never be longer than the actual sample size
827          eSampleLoopStart.set_upper(          eSampleLoopStart.set_upper(
828              (dimregion->pSample)              (dimregion->pSample)
# Line 819  void DimRegionEdit::updateLoopElements() Line 837  void DimRegionEdit::updateLoopElements()
837                  : 0                  : 0
838          );          );
839      } else { // no sample loop(s)      } else { // no sample loop(s)
840          eSampleLoopStart.set_ptr(NULL);          eSampleLoopType.set_ptr(0);
841          eSampleLoopLength.set_ptr(NULL);          // updated enabled state of loop play count widget
842          eSampleLoopType.set_ptr(NULL);          loop_infinite_toggled();
         eSampleLoopPlayCount.set_ptr(NULL);  
843      }      }
     // updated enabled state of loop play count widget  
     loop_infinite_toggled();  
844  }  }
845    
846  void DimRegionEdit::loop_infinite_toggled() {  void DimRegionEdit::loop_infinite_toggled() {

Legend:
Removed from v.1260  
changed lines
  Added in v.1261

  ViewVC Help
Powered by ViewVC