mirror of
				https://github.com/RGBCube/serenity
				synced 2025-10-31 08:52:44 +00:00 
			
		
		
		
	SoundPlayer: Fix playback slider page stepping
Fixes a bug that was preventing the playback slider from changing value when clicking ahead/behind the current position.
This commit is contained in:
		
							parent
							
								
									15b69eef66
								
							
						
					
					
						commit
						f02d976ed7
					
				
					 2 changed files with 22 additions and 3 deletions
				
			
		|  | @ -47,10 +47,15 @@ SoundPlayerWidgetAdvancedView::SoundPlayerWidgetAdvancedView(GUI::Window& window | |||
| 
 | ||||
|     m_visualization = m_player_view->add<BarsVisualizationWidget>(); | ||||
| 
 | ||||
|     // Set a temporary value for total samples.
 | ||||
|     // This value will be set properly when we load a new file.
 | ||||
|     const int total_samples = this->manager().total_length() * 44100; | ||||
| 
 | ||||
|     m_playback_progress_slider = m_player_view->add<AutoSlider>(Orientation::Horizontal); | ||||
|     m_playback_progress_slider->set_fixed_height(20); | ||||
|     m_playback_progress_slider->set_min(0); | ||||
|     m_playback_progress_slider->set_max(this->manager().total_length() * 44100); //this value should be set when we load a new file
 | ||||
|     m_playback_progress_slider->set_max(total_samples); | ||||
|     m_playback_progress_slider->set_page_step(total_samples / 10); | ||||
|     m_playback_progress_slider->on_knob_released = [&](int value) { | ||||
|         this->manager().seek(value); | ||||
|     }; | ||||
|  | @ -139,7 +144,9 @@ SoundPlayerWidgetAdvancedView::SoundPlayerWidgetAdvancedView(GUI::Window& window | |||
|         int samples_played = client_connection().get_played_samples() + this->manager().last_seek(); | ||||
|         int current_second = samples_played / 44100; | ||||
|         timestamp_label.set_text(String::formatted("Elapsed: {:02}:{:02}:{:02}", current_second / 3600, current_second / 60, current_second % 60)); | ||||
|         m_playback_progress_slider->set_value(samples_played); | ||||
|         if (!m_playback_progress_slider->mouse_is_down()) { | ||||
|             m_playback_progress_slider->set_value(samples_played); | ||||
|         } | ||||
| 
 | ||||
|         dynamic_cast<Visualization*>(m_visualization.ptr())->set_buffer(this->manager().current_buffer()); | ||||
|         dynamic_cast<Visualization*>(m_visualization.ptr())->set_samplerate(loaded_file_samplerate()); | ||||
|  | @ -191,11 +198,11 @@ void SoundPlayerWidgetAdvancedView::open_file(StringView path) | |||
|     } | ||||
|     m_window.set_title(String::formatted("{} - Sound Player", loader->file()->filename())); | ||||
|     m_playback_progress_slider->set_max(loader->total_samples()); | ||||
|     m_playback_progress_slider->set_page_step(loader->total_samples() / 10); | ||||
|     m_playback_progress_slider->set_enabled(true); | ||||
|     m_play_button->set_enabled(true); | ||||
|     m_play_button->set_icon(*m_pause_icon); | ||||
|     m_stop_button->set_enabled(true); | ||||
|     m_playback_progress_slider->set_max(loader->total_samples()); | ||||
|     manager().set_loader(move(loader)); | ||||
|     set_has_loaded_file(true); | ||||
|     set_loaded_file_samplerate(loader->sample_rate()); | ||||
|  |  | |||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Nick Miller
						Nick Miller