mirror of
https://github.com/brunoherbelin/vimix.git
synced 2025-12-13 11:19:58 +01:00
Player slight improvements
tick marks count adapted to fps, clamped refresh frequency computation, listing of all sources playable from menu
This commit is contained in:
@@ -483,7 +483,7 @@ void ImGuiToolkit::RenderTimeline (ImGuiWindow* window, ImRect timeline_bbox, gu
|
|||||||
{
|
{
|
||||||
// try to put a label ticks every second
|
// try to put a label ticks every second
|
||||||
label_tick_step = (SECOND / step) * step;
|
label_tick_step = (SECOND / step) * step;
|
||||||
large_tick_step = 5 * step;
|
large_tick_step = label_tick_step % 5 ? (label_tick_step % 2 ? label_tick_step : label_tick_step / 2 ) : label_tick_step / 5;
|
||||||
tick_delta = SECOND - label_tick_step;
|
tick_delta = SECOND - label_tick_step;
|
||||||
|
|
||||||
// round to nearest
|
// round to nearest
|
||||||
|
|||||||
@@ -1250,6 +1250,6 @@ void MediaPlayer::TimeCounter::tic ()
|
|||||||
// calculate instantaneous framerate
|
// calculate instantaneous framerate
|
||||||
// Exponential moving averate with previous framerate to filter jitter
|
// Exponential moving averate with previous framerate to filter jitter
|
||||||
if (dt > 1.0)
|
if (dt > 1.0)
|
||||||
fps = 0.5 * fps + 500.0 / dt ;
|
fps = CLAMP( 0.5 * fps + 500.0 / dt, 0.0, 1000.0) ;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -1075,7 +1075,7 @@ void UserInterface::RenderPreview()
|
|||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
|
|
||||||
bool pinned = Settings::application.widget.preview_view == Settings::application.current_view;
|
bool pinned = Settings::application.widget.preview_view == Settings::application.current_view;
|
||||||
if ( ImGui::MenuItem( ICON_FA_MAP_PIN " Pin to current view", nullptr, &pinned) ){
|
if ( ImGui::MenuItem( ICON_FA_MAP_PIN " Pin window to view", nullptr, &pinned) ){
|
||||||
if (pinned)
|
if (pinned)
|
||||||
Settings::application.widget.preview_view = Settings::application.current_view;
|
Settings::application.widget.preview_view = Settings::application.current_view;
|
||||||
else
|
else
|
||||||
@@ -2048,6 +2048,13 @@ void SourceController::Render()
|
|||||||
}
|
}
|
||||||
if (ImGui::BeginMenu(IMGUI_TITLE_MEDIAPLAYER))
|
if (ImGui::BeginMenu(IMGUI_TITLE_MEDIAPLAYER))
|
||||||
{
|
{
|
||||||
|
if (ImGui::MenuItem( ICON_FA_TH " List all")) {
|
||||||
|
selection_.clear();
|
||||||
|
resetActiveSelection();
|
||||||
|
Mixer::manager().unsetCurrentSource();
|
||||||
|
Mixer::selection().clear();
|
||||||
|
selection_ = playable_only( Mixer::manager().session()->getDepthSortedList() );
|
||||||
|
}
|
||||||
if (ImGui::MenuItem( ICON_FA_WIND " Clear")) {
|
if (ImGui::MenuItem( ICON_FA_WIND " Clear")) {
|
||||||
selection_.clear();
|
selection_.clear();
|
||||||
resetActiveSelection();
|
resetActiveSelection();
|
||||||
@@ -2057,7 +2064,7 @@ void SourceController::Render()
|
|||||||
|
|
||||||
ImGui::Separator();
|
ImGui::Separator();
|
||||||
bool pinned = Settings::application.widget.media_player_view == Settings::application.current_view;
|
bool pinned = Settings::application.widget.media_player_view == Settings::application.current_view;
|
||||||
if ( ImGui::MenuItem( ICON_FA_MAP_PIN " Pin to current view", nullptr, &pinned) ){
|
if ( ImGui::MenuItem( ICON_FA_MAP_PIN " Pin window to view", nullptr, &pinned) ){
|
||||||
if (pinned)
|
if (pinned)
|
||||||
Settings::application.widget.media_player_view = Settings::application.current_view;
|
Settings::application.widget.media_player_view = Settings::application.current_view;
|
||||||
else
|
else
|
||||||
@@ -2163,6 +2170,10 @@ void SourceController::Render()
|
|||||||
ImGui::EndMenu();
|
ImGui::EndMenu();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
else {
|
||||||
|
ImGui::SameLine(0, 2.f * g.Style.ItemSpacing.x );
|
||||||
|
ImGui::TextDisabled(ICON_FA_FILM " Video");
|
||||||
|
}
|
||||||
|
|
||||||
ImGui::EndMenuBar();
|
ImGui::EndMenuBar();
|
||||||
}
|
}
|
||||||
@@ -2752,7 +2763,7 @@ void SourceController::RenderSelectedSources()
|
|||||||
if (ImGui::Button( label.c_str() )) {
|
if (ImGui::Button( label.c_str() )) {
|
||||||
active_selection_ = Mixer::manager().session()->numPlayGroups();
|
active_selection_ = Mixer::manager().session()->numPlayGroups();
|
||||||
active_label_ = std::string("Selection #") + std::to_string(active_selection_);
|
active_label_ = std::string("Selection #") + std::to_string(active_selection_);
|
||||||
Mixer::manager().session()->addPlayGroup( ids(playable_only(Mixer::selection().getCopy())) );
|
Mixer::manager().session()->addPlayGroup( ids(playable_only(selection_)) );
|
||||||
}
|
}
|
||||||
|
|
||||||
ImGui::PopStyleColor(2);
|
ImGui::PopStyleColor(2);
|
||||||
|
|||||||
Reference in New Issue
Block a user