cde7e5d96c
Start on the collection page. I eventually want to display the first enable playqueue, though. Signed-off-by: Anna Schumaker <schumaker.anna@gmail.com>
269 lines
4.5 KiB
C++
269 lines
4.5 KiB
C++
/*
|
|
* Copyright 2013 (c) Anna Schumaker.
|
|
*/
|
|
#include <deck.h>
|
|
#include <idle.h>
|
|
#include <ocarina.h>
|
|
#include <print.h>
|
|
#include <stdlib.h>
|
|
|
|
static unsigned int i;
|
|
|
|
void schedule_test(bool (*func)())
|
|
{
|
|
i = 0;
|
|
Glib::signal_timeout().connect(sigc::ptr_fun(func), 500);
|
|
}
|
|
|
|
void end_test()
|
|
{
|
|
Gtk::Main::quit();
|
|
}
|
|
|
|
void click_button(const std::string &name)
|
|
{
|
|
print("Clicking button: %s\n", name.c_str());
|
|
get_button(name)->clicked();
|
|
}
|
|
|
|
void select_treeview_row(const std::string &tv_name, const std::string &path)
|
|
{
|
|
Gtk::TreeView *treeview;
|
|
get_builder()->get_widget(tv_name, treeview);
|
|
treeview->set_cursor(Gtk::TreePath(path));
|
|
}
|
|
|
|
void activate_treeview_row(const std::string &tv_name, const std::string &path)
|
|
{
|
|
Gtk::TreeView *treeview;
|
|
Gtk::TreeViewColumn col("2");
|
|
get_builder()->get_widget(tv_name, treeview);
|
|
treeview->row_activated(Gtk::TreePath(path), col);
|
|
}
|
|
|
|
void change_page(unsigned int page)
|
|
{
|
|
Gtk::Notebook *notebook;
|
|
get_builder()->get_widget("o_notebook", notebook);
|
|
notebook->set_current_page(page);
|
|
}
|
|
|
|
void pause_toggle()
|
|
{
|
|
Gtk::CheckButton *check;
|
|
get_builder()->get_widget("o_pause_enabled", check);
|
|
check->set_active(!check->get_active());
|
|
}
|
|
|
|
void inc_pause()
|
|
{
|
|
Gtk::SpinButton *spin;
|
|
get_builder()->get_widget("o_pause_count", spin);
|
|
spin->spin(Gtk::SPIN_STEP_FORWARD, 1);
|
|
}
|
|
|
|
void dec_pause()
|
|
{
|
|
Gtk::SpinButton *spin;
|
|
get_builder()->get_widget("o_pause_count", spin);
|
|
spin->spin(Gtk::SPIN_STEP_BACKWARD, 1);
|
|
}
|
|
|
|
void set_pause(unsigned int value)
|
|
{
|
|
Gtk::SpinButton *spin;
|
|
get_builder()->get_widget("o_pause_count", spin);
|
|
spin->set_value(value);
|
|
}
|
|
|
|
/* Library tab tests */
|
|
bool test_1()
|
|
{
|
|
switch (i) {
|
|
case 0:
|
|
print("Test 1\n");
|
|
change_page(0);
|
|
break;
|
|
case 1:
|
|
case 5:
|
|
on_collection_toggled("0");
|
|
break;
|
|
case 2:
|
|
case 6:
|
|
on_collection_toggled("1");
|
|
break;
|
|
case 3:
|
|
case 7:
|
|
on_collection_toggled("2");
|
|
break;
|
|
case 4:
|
|
case 8:
|
|
on_collection_toggled("3");
|
|
break;
|
|
case 9:
|
|
change_page(2);
|
|
break;
|
|
case 10:
|
|
change_page(0);
|
|
break;
|
|
case 11:
|
|
click_button("o_next");
|
|
break;
|
|
case 12:
|
|
click_button("o_play");
|
|
break;
|
|
case 13:
|
|
click_button("o_pause");
|
|
break;
|
|
case 14:
|
|
click_button("o_play");
|
|
break;
|
|
case 15:
|
|
click_button("o_stop");
|
|
break;
|
|
case 16:
|
|
click_button("o_next");
|
|
break;
|
|
case 17:
|
|
click_button("o_next");
|
|
break;
|
|
case 18:
|
|
click_button("o_prev");
|
|
break;
|
|
case 19:
|
|
click_button("o_play");
|
|
break;
|
|
case 20:
|
|
pause_toggle();
|
|
break;
|
|
case 21:
|
|
pause_toggle();
|
|
break;
|
|
case 22:
|
|
inc_pause();
|
|
break;
|
|
case 23:
|
|
inc_pause();
|
|
break;
|
|
case 24:
|
|
pause_toggle();
|
|
break;
|
|
case 25:
|
|
dec_pause();
|
|
break;
|
|
case 26:
|
|
dec_pause();
|
|
break;
|
|
case 27:
|
|
set_pause(3);
|
|
break;
|
|
case 28:
|
|
change_page(1);
|
|
break;
|
|
case 29:
|
|
change_page(0);
|
|
break;
|
|
case 30:
|
|
case 31:
|
|
case 32:
|
|
case 33:
|
|
case 34:
|
|
break;
|
|
default:
|
|
end_test();
|
|
return false;
|
|
};
|
|
i++;
|
|
return true;
|
|
}
|
|
|
|
/* Collection manager tests */
|
|
bool test_0()
|
|
{
|
|
switch (i) {
|
|
case 0:
|
|
print("Test 0\n");
|
|
click_button("o_collection_import");
|
|
break;
|
|
case 1:
|
|
case 4:
|
|
case 6:
|
|
/* Wait for idle queue to finish */
|
|
if (idle::get_progress() == 1)
|
|
break;
|
|
return true;
|
|
case 2:
|
|
/* Select filepath */
|
|
Gtk::FileChooserWidget *chooser;
|
|
get_builder()->get_widget("o_collection_chooser", chooser);
|
|
chooser->set_filename("/tmp/library/0");
|
|
break;
|
|
case 3:
|
|
click_button("o_collection_ok");
|
|
break;
|
|
case 5:
|
|
click_button("o_collection_update");
|
|
break;
|
|
case 7:
|
|
select_treeview_row("o_collection_treeview", "0");
|
|
activate_treeview_row("o_collection_treeview", "0");
|
|
break;
|
|
case 8:
|
|
select_treeview_row("o_collection_treeview", "1");
|
|
activate_treeview_row("o_collection_treeview", "1");
|
|
break;
|
|
case 9:
|
|
select_treeview_row("o_collection_treeview", "2");
|
|
activate_treeview_row("o_collection_treeview", "2");
|
|
break;
|
|
case 10:
|
|
case 12:
|
|
on_collection_toggled("0");
|
|
break;
|
|
case 11:
|
|
case 13:
|
|
on_collection_toggled("2");
|
|
break;
|
|
case 14:
|
|
select_treeview_row("o_collection_treeview", "1");
|
|
break;
|
|
case 15:
|
|
do_collection_delete();
|
|
break;
|
|
case 16:
|
|
select_treeview_row("o_collection_treeview", "2");
|
|
break;
|
|
case 17:
|
|
do_collection_delete();
|
|
break;
|
|
case 18:
|
|
click_button("o_collection_import");
|
|
break;
|
|
case 19:
|
|
break;
|
|
default:
|
|
schedule_test(test_1);
|
|
return false;
|
|
}
|
|
i++;
|
|
return true;
|
|
}
|
|
|
|
|
|
int main(int argc, char **argv)
|
|
{
|
|
Gtk::Main ocarina(argc, argv);
|
|
|
|
library::init();
|
|
library::reset();
|
|
|
|
Gtk::Window *window = ocarina_init(&argc, &argv);
|
|
|
|
change_page(2);
|
|
schedule_test(test_0);
|
|
|
|
Gtk::Main::run(*window);
|
|
cleanup_tabs();
|
|
return 0;
|
|
}
|