@@ -36,7 +36,7 @@ FullTimeline::FullTimeline(FileReader* fr)
3636
3737 fileReader = fr;
3838
39- startTimer (200 );
39+ startTimer (50 );
4040}
4141
4242FullTimeline::~FullTimeline () {}
@@ -151,16 +151,8 @@ void FullTimeline::mouseUp(const MouseEvent& event)
151151
152152 static_cast <FileReaderEditor*>(fileReader->getEditor ())->updatePlaybackTimes ();
153153
154- fileReader->loopPlayback = false ;
155-
156- if ( fileReader->playbackIsActive () )
154+ if (CoreServices::getAcquisitionStatus ())
157155 {
158- fileReader->stopAcquisition ();
159- fileReader->startAcquisition ();
160- }
161- else
162- {
163- static_cast <FileReaderEditor*>(fileReader->getEditor ())->playbackButton ->triggerClick ();
164156 fileReader->startAcquisition ();
165157 }
166158
@@ -182,7 +174,7 @@ ZoomTimeline::ZoomTimeline(FileReader* fr)
182174 sliderWidth = 8 ;
183175 widthInSeconds = 30 ;
184176
185- startTimer (200 );
177+ startTimer (50 );
186178}
187179
188180ZoomTimeline::~ZoomTimeline () {}
@@ -294,7 +286,7 @@ void ZoomTimeline::paint(Graphics& g)
294286 /* Draw the current playback position */
295287 float timelinePos = (float )(fileReader->getCurrentSample () - startTimestamp) / (stopTimestamp - startTimestamp) * getWidth ();
296288
297- if (timelinePos < getWidth ( ))
289+ if (timelinePos < rightSliderPosition + sliderWidth || (timelinePos < rightSliderPosition + sliderWidth && !fileReader-> loopPlayback ))
298290 {
299291 g.setOpacity (1 .0f );
300292 g.fillRoundedRectangle (timelinePos, 0 , 1 , this ->getHeight (), 0.2 );
@@ -370,36 +362,40 @@ void ZoomTimeline::mouseUp(const MouseEvent& event)
370362 rightSliderIsSelected = false ;
371363 playbackRegionIsSelected = false ;
372364
373- static_cast <FileReaderEditor*>( fileReader->getEditor ())-> updatePlaybackTimes () ;
365+ // fileReader->loopPlayback = false ;
374366
375- fileReader->loopPlayback = false ;
367+ static_cast <FileReaderEditor*>( fileReader->getEditor ())-> updatePlaybackTimes () ;
376368
377- if ( fileReader->playbackIsActive () )
378- {
379- fileReader->stopAcquisition ();
380- fileReader->startAcquisition ();
381- }
382- else
383- {
384- static_cast <FileReaderEditor*>(fileReader->getEditor ())->playbackButton ->triggerClick ();
369+ if (CoreServices::getAcquisitionStatus ())
385370 fileReader->startAcquisition ();
386- }
387371
388372}
389373
390- PlaybackButton::PlaybackButton (FileReader* fr) : Button (" Playback" ), Timer()
374+ PlaybackButton::PlaybackButton (FileReader* fr) : Button (" Playback" )
391375{
392376 fileReader = fr;
393377 isActive = true ;
394378}
395379
396380PlaybackButton::~PlaybackButton () {}
397381
398- void PlaybackButton::timerCallback ( )
382+ void PlaybackButton::setState ( bool isActive )
399383{
400- isActive = false ;
401- repaint ();
402- stopTimer ();
384+
385+ this ->isActive = isActive;
386+
387+ if (isActive && !fileReader->playbackIsActive ())
388+ {
389+ static_cast <FileReaderEditor*>(fileReader->getEditor ())->updatePlaybackTimes ();
390+ fileReader->startAcquisition ();
391+ }
392+ else if (!isActive)
393+ fileReader->stopAcquisition ();
394+ }
395+
396+ bool PlaybackButton::getState ()
397+ {
398+ return isActive;
403399}
404400
405401void PlaybackButton::paintButton (Graphics &g, bool isMouseOver, bool isButtonDown)
@@ -418,7 +414,7 @@ void PlaybackButton::paintButton(Graphics &g, bool isMouseOver, bool isButtonDow
418414 int width = getWidth ();
419415 int height = getHeight ();
420416
421- if (fileReader-> playbackIsActive () )
417+ if (isActive )
422418 {
423419 /* Draw pause button */
424420 int padding = 0.3 *width;
@@ -498,6 +494,7 @@ FileReaderEditor::FileReaderEditor (GenericProcessor* parentNode)
498494
499495 int buttonSize = 24 ;
500496 playbackButton = new PlaybackButton (fileReader);
497+ playbackButton->setState (true );
501498 playbackButton->setBounds (scrubInterfaceWidth / 2 - buttonSize / 2 , 103 , buttonSize, buttonSize);
502499 playbackButton->addListener (this );
503500 addChildComponent (playbackButton);
@@ -731,9 +728,10 @@ void FileReaderEditor::buttonClicked (Button* button)
731728
732729 } else if (button == playbackButton) {
733730
734- fileReader->togglePlayback ();
735- if (fileReader->playbackIsActive ())
736- playbackButton->startTimer (zoomTimeline->getIntervalDurationInSeconds ()*1000 + 100 );
731+ playbackButton->setState (!playbackButton->getState ());
732+
733+ if (playbackButton->getState ())
734+ acquisitionIsActive = true ;
737735
738736 }
739737
0 commit comments