ocarina/gui/controls.cpp

38 lines
729 B
C++

/*
* Copyright 2014 (c) Anna Schumaker.
*/
#include <lib/lib.h>
#include <core/audio.h>
#include <gui/ocarina.h>
static Gtk::Label *o_position;
static Glib::RefPtr<Gtk::Adjustment> o_pos_bar;
/*
* Timeout function is called every half-second.
*/
static bool on_timeout()
{
o_position->set_text(audio :: position_str());
o_pos_bar->set_upper(audio :: duration());
o_pos_bar->set_value(audio :: position());
return true;
}
void o_toggle()
{
if (audio :: get_driver()->is_playing())
audio :: pause();
else
audio :: play();
}
void controls_init()
{
o_position = lib :: get_widget<Gtk::Label>("o_cur_position");
o_pos_bar = lib :: get_object<Gtk::Adjustment>("o_progress");
lib :: schedule(on_timeout, 500);
}