| 77 | } |
| 78 | |
| 79 | void 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, |
nothing calls this directly
no test coverage detected