MCPcopy Create free account
hub / github.com/Cpasjuste/pplay / onLoadEvent

Method onLoadEvent

src/player/player.cpp:79–146  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

77}
78
79void Player::onLoadEvent() {
80 // load/update media information
81 file.mediaInfo = mpv->getMediaInfo(file);
82 file.mediaInfo.save(file);
83
84 // TODO: is this really needed as it should be extracted from scrapper
85 // main->getFiler()->setMediaInfo(file, file.mediaInfo);
86
87 // build video track selection menu
88 if (!file.mediaInfo.videos.empty()) {
89 // videos menu options
90 std::vector<MenuItem> items;
91 for (auto &stream: file.mediaInfo.videos) {
92 items.emplace_back(stream.title + "\n" + stream.language + " " + stream.codec + " "
93 + std::to_string(stream.width) + "x" + std::to_string(stream.height),
94 "", MenuItem::Position::Top, stream.id);
95 }
96 menuVideoStreams = new MenuVideoSubmenu(
97 main, main->getMenuVideo()->getGlobalBounds(), "VIDEO", items, MENU_VIDEO_TYPE_VID);
98 menuVideoStreams->setVisibility(Visibility::Hidden, false);
99 menuVideoStreams->setLayer(3);
100 add(menuVideoStreams);
101 }
102
103 // build audio track selection menu
104 if (!file.mediaInfo.audios.empty()) {
105 // audios menu options
106 std::vector<MenuItem> items;
107 for (auto &stream: file.mediaInfo.audios) {
108 items.emplace_back(stream.title + "\n" + stream.language + " "
109 + stream.codec + " " + std::to_string(stream.channels) + "ch "
110 + std::to_string(stream.sample_rate / 1000) + " Khz",
111 "", MenuItem::Position::Top, stream.id);
112 }
113 menuAudioStreams = new MenuVideoSubmenu(
114 main, main->getMenuVideo()->getGlobalBounds(), "AUDIO", items, MENU_VIDEO_TYPE_AUD);
115 menuAudioStreams->setVisibility(Visibility::Hidden, false);
116 menuAudioStreams->setLayer(3);
117 add(menuAudioStreams);
118 }
119
120 // build subtitles track selection menu
121 if (!file.mediaInfo.subtitles.empty()) {
122 // subtitles menu options
123 std::vector<MenuItem> items;
124 items.emplace_back("None", "", MenuItem::Position::Top, -1);
125 for (auto &stream: file.mediaInfo.subtitles) {
126 items.emplace_back(stream.title + "\nLang: " + stream.language, "", MenuItem::Position::Top, stream.id);
127 }
128 menuSubtitlesStreams = new MenuVideoSubmenu(
129 main, main->getMenuVideo()->getGlobalBounds(), "SUBTITLES", items, MENU_VIDEO_TYPE_SUB);
130 menuSubtitlesStreams->setVisibility(Visibility::Hidden, false);
131 menuSubtitlesStreams->setLayer(3);
132 add(menuSubtitlesStreams);
133 }
134
135#ifdef FULL_TEXTURE_TEST
136 texture->resize({file.mediaInfo.videos.at(0).width,

Callers

nothing calls this directly

Calls 6

to_stringFunction · 0.85
getMediaInfoMethod · 0.80
getMenuVideoMethod · 0.80
resizeMethod · 0.80
saveMethod · 0.45
setVisibilityMethod · 0.45

Tested by

no test coverage detected