/[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 1264 by persson, Sun Jul 22 15:07:08 2007 UTC revision 1265 by persson, Sun Jul 29 13:44:59 2007 UTC
# Line 834  void DimRegionEdit::updateLoopElements() Line 834  void DimRegionEdit::updateLoopElements()
834          // sample loop shall never be longer than the actual sample size          // sample loop shall never be longer than the actual sample size
835          eSampleLoopStart.set_upper(          eSampleLoopStart.set_upper(
836              (dimregion->pSample)              (dimregion->pSample)
837                  ? dimregion->pSample->GetSize() -                  ? dimregion->pSample->SamplesTotal -
838                    dimregion->pSampleLoops[0].LoopLength                    dimregion->pSampleLoops[0].LoopLength
839                  : 0                  : 0
840          );          );
841          eSampleLoopLength.set_upper(          eSampleLoopLength.set_upper(
842              (dimregion->pSample)              (dimregion->pSample)
843                  ? dimregion->pSample->GetSize() -                  ? dimregion->pSample->SamplesTotal -
844                    dimregion->pSampleLoops[0].LoopStart                    dimregion->pSampleLoops[0].LoopStart
845                  : 0                  : 0
846          );          );
# Line 861  void DimRegionEdit::loop_infinite_toggle Line 861  void DimRegionEdit::loop_infinite_toggle
861      else if (!eSampleLoopPlayCount.get_value())      else if (!eSampleLoopPlayCount.get_value())
862          eSampleLoopPlayCount.set_value(1);          eSampleLoopPlayCount.set_value(1);
863  }  }
864    
865    bool DimRegionEdit::set_sample(gig::Sample* sample)
866    {
867        if (dimregion) {
868            dimregion->pSample = sample;
869    
870            // copy sample information from Sample to DimensionRegion
871    
872            dimregion->UnityNote = sample->MIDIUnityNote;
873            dimregion->FineTune = sample->FineTune;
874    
875            int loops = sample->Loops ? 1 : 0;
876            while (dimregion->SampleLoops > loops) {
877                dimregion->DeleteSampleLoop(&dimregion->pSampleLoops[0]);
878            }
879            while (dimregion->SampleLoops < sample->Loops) {
880                DLS::sample_loop_t loop;
881                dimregion->AddSampleLoop(&loop);
882            }
883            if (loops) {
884                dimregion->pSampleLoops[0].Size = sizeof(DLS::sample_loop_t);
885                dimregion->pSampleLoops[0].LoopType = sample->LoopType;
886                dimregion->pSampleLoops[0].LoopStart = sample->LoopStart;
887                dimregion->pSampleLoops[0].LoopLength = sample->LoopEnd - sample->LoopStart + 1;
888            }
889    
890            // update ui
891            wSample->set_text(dimregion->pSample->pInfo->Name);
892            eUnityNote.set_ptr(&dimregion->UnityNote);
893            eFineTune.set_ptr(&dimregion->FineTune);
894            eSampleLoopEnabled.set_active(dimregion->SampleLoops);
895            updateLoopElements();
896    
897            dimreg_changed_signal();
898            return true;
899        }
900        return false;
901    }

Legend:
Removed from v.1264  
changed lines
  Added in v.1265

  ViewVC Help
Powered by ViewVC