Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions src/command/video.cpp
Original file line number Diff line number Diff line change
Expand Up @@ -33,6 +33,7 @@

#include "../ass_dialogue.h"
#include "../async_video_provider.h"
#include "../audio_controller.h"
#include "../compat.h"
#include "../dialog_detached_video.h"
#include "../dialog_manager.h"
Expand All @@ -45,6 +46,7 @@
#include "../options.h"
#include "../project.h"
#include "../selection_controller.h"
#include "../time_range.h"
#include "../utils.h"
#include "../video_controller.h"
#include "../video_display.h"
Expand Down Expand Up @@ -580,6 +582,32 @@ struct video_jump_start final : public validator_video_loaded {
}
};

struct video_jump_audio_selection_start final : public validator_video_loaded {
CMD_NAME("video/jump/audio_selection/start")
STR_MENU("Jump Video to Audio Selection S&tart")
STR_DISP("Jump Video to Audio Selection Start")
STR_HELP("Jump the video to the start of the current audio selection")

void operator()(agi::Context *c) override {
if (c->project->AudioProvider())
c->videoController->JumpToTime(
c->audioController->GetPrimaryPlaybackRange().begin());
}
};

struct video_jump_audio_selection_end final : public validator_video_loaded {
CMD_NAME("video/jump/audio_selection/end")
STR_MENU("Jump Video to Audio Selection E&nd")
STR_DISP("Jump Video to Audio Selection End")
STR_HELP("Jump the video to the end of the current audio selection")

void operator()(agi::Context *c) override {
if (c->project->AudioProvider())
c->videoController->JumpToTime(
c->audioController->GetPrimaryPlaybackRange().end());
}
};

struct video_open final : public Command {
CMD_NAME("video/open")
CMD_ICON(open_video_menu)
Expand Down Expand Up @@ -801,6 +829,8 @@ namespace cmd {
reg(std::make_unique<video_jump>());
reg(std::make_unique<video_jump_end>());
reg(std::make_unique<video_jump_start>());
reg(std::make_unique<video_jump_audio_selection_start>());
reg(std::make_unique<video_jump_audio_selection_end>());
reg(std::make_unique<video_open>());
reg(std::make_unique<video_open_dummy>());
reg(std::make_unique<video_opt_autoscroll>());
Expand Down
5 changes: 4 additions & 1 deletion src/libresrc/default_menu.json
Original file line number Diff line number Diff line change
Expand Up @@ -99,7 +99,10 @@
{},
{ "command" : "video/jump" },
{ "command" : "video/jump/start" },
{ "command" : "video/jump/end" }
{ "command" : "video/jump/end" },
{},
{ "command" : "video/jump/audio_selection/start" },
{ "command" : "video/jump/audio_selection/end" }
],
"main/video/set zoom" : [
{ "command" : "video/zoom/50" },
Expand Down