+32
-9
@@ -132,7 +132,16 @@ auto preview(vamp_zero::app_state const &state, std::string const &name, vamp_pi
|
||||
std::filesystem::create_directories(directory);
|
||||
auto context = image_context{};
|
||||
vamp_zero::draw_header(context, {0.0F, 0.0F, 1024.0F, 600.0F}, state);
|
||||
vamp_zero::draw_menu(context, {0.0F, 80.0F, 1024.0F, 520.0F}, state);
|
||||
if (state.mode == vamp_zero::app_mode::PERFORMANCE_SCORE) {
|
||||
auto source = boost::json::parse(read_bytes(std::filesystem::path{VAMP_TEST_ASSETS_DIR} / "songs/autumn_leaves_electric.json"));
|
||||
auto path = std::filesystem::path{VAMP_TEST_ASSETS_DIR} / "songs" / std::string{source.at("presentation").at("pages").as_array().front().at("path").as_string()};
|
||||
auto sheet = LoadImage(path.c_str());
|
||||
BOOST_REQUIRE(sheet.data);
|
||||
ImageDraw(&context.image, sheet, {0, 0, 976, 484}, {24, 98, 976, 484}, WHITE);
|
||||
UnloadImage(sheet);
|
||||
} else {
|
||||
vamp_zero::draw_menu(context, {0.0F, 80.0F, 1024.0F, 520.0F}, state);
|
||||
}
|
||||
BOOST_REQUIRE(ExportImage(context.image, (directory / ("zero_" + name + ".png")).c_str()));
|
||||
auto remote = vamp_pico::remote_display_state{};
|
||||
BOOST_REQUIRE(vamp_pico::parse_remote_display_body(vamp_zero::remote_display_text(state), remote));
|
||||
@@ -169,7 +178,18 @@ BOOST_AUTO_TEST_CASE(device_menu_rendering_uses_petaluma_and_fits_both_displays)
|
||||
preview(state, "busy", vamp_pico::link_status::CONNECTED, true);
|
||||
state.mode = vamp_zero::app_mode::SETTINGS_MENU;
|
||||
state.pico_connected = true;
|
||||
state.audio.playback_enabled = true;
|
||||
preview(state, "backing_unavailable");
|
||||
state.mode = vamp_zero::app_mode::PERFORMANCE_SONG_MENU;
|
||||
preview(state, "empty");
|
||||
auto catalog = std::make_shared<vamp_zero::catalog>();
|
||||
auto score = boost::json::parse(read_bytes(std::filesystem::path{VAMP_TEST_ASSETS_DIR} / "songs/autumn_leaves_electric.json"));
|
||||
auto title = std::string{score.at("presentation").at("title_image").as_string()};
|
||||
catalog->parts.push_back({.id = "electric", .title = "Autumn Leaves", .composer = "Joseph Kosma", .part = "Electric", .total_pages = score.at("presentation").at("pages").as_array().size(), .title_image = title, .song_id = "autumn_leaves"});
|
||||
catalog->groups.push_back({"Autumn Leaves", "Joseph Kosma", {0U}});
|
||||
catalog->audio_assets.push_back({.path = "backing/autumn_leaves_120.wav", .song_id = "autumn_leaves", .bpm = 120});
|
||||
state.catalog = catalog;
|
||||
state.mode = vamp_zero::app_mode::SETTINGS_MENU;
|
||||
state.audio.backing_enabled = true;
|
||||
state.audio.metronome_enabled = true;
|
||||
preview(state, "settings");
|
||||
state.selected_settings_index = 3U;
|
||||
@@ -177,18 +197,21 @@ BOOST_AUTO_TEST_CASE(device_menu_rendering_uses_petaluma_and_fits_both_displays)
|
||||
preview(state, "tempo");
|
||||
state.audio.tempo_editing = false;
|
||||
state.mode = vamp_zero::app_mode::PERFORMANCE_SONG_MENU;
|
||||
preview(state, "empty");
|
||||
auto catalog = std::make_shared<vamp_zero::catalog>();
|
||||
auto score = boost::json::parse(read_bytes(std::filesystem::path{VAMP_TEST_ASSETS_DIR} / "songs/autumn_leaves_electric.json"));
|
||||
auto title = std::string{score.at("presentation").at("title_image").as_string()};
|
||||
catalog->parts.push_back({.id = "electric", .title = "Autumn Leaves", .composer = "Joseph Kosma", .part = "Electric", .total_pages = 32U, .title_image = title});
|
||||
catalog->groups.push_back({"Autumn Leaves", "Joseph Kosma", {0U}});
|
||||
state.catalog = catalog;
|
||||
state.selected_song_index = 1U;
|
||||
preview(state, "songs");
|
||||
state.mode = vamp_zero::app_mode::PERFORMANCE_PART_MENU;
|
||||
state.selected_part_index = 1U;
|
||||
preview(state, "parts");
|
||||
state.mode = vamp_zero::app_mode::PERFORMANCE_SCORE;
|
||||
state.active_part_id = "electric";
|
||||
for (auto phase : {"Manual", "Preparing", "Count-in", "Playing", "Sustain"}) {
|
||||
state.audio.phase = phase;
|
||||
preview(state, phase);
|
||||
}
|
||||
state.audio.phase = "Error";
|
||||
state.audio.playback_error = "Recording unavailable";
|
||||
preview(state, "audio_error");
|
||||
state.mode = vamp_zero::app_mode::PERFORMANCE_PART_MENU;
|
||||
catalog->groups[0].title = std::string(200U, 'M');
|
||||
catalog->groups[0].composer = std::string(200U, 'W');
|
||||
preview(state, "long_title");
|
||||
|
||||
Reference in New Issue
Block a user