blob: de8a3220a2cc5170fdc532567a7d4f2a4f72fe77 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
use gtk;
use gtk::prelude::*;
pub fn start_gui() -> Result<(), String> {
try!(gtk::init().map_err(|_| "Failed to initialize GTK."));
// Create the main window.
let window = gtk::Window::new(gtk::WindowType::Toplevel);
window.set_title("Musician Training");
let pa = ::audio::init().expect("Could not init portaudio");
let audio_devices = try!(::audio::get_device_list(&pa).map_err(|e| e.to_string()));
let dropdown = gtk::ComboBoxText::new();
for (index, name) in audio_devices {
dropdown.append(Some(format!("{}", index).as_ref()), name.as_ref());
}
window.add(&dropdown);
window.set_default_size(300, 300);
window.show_all();
window.connect_delete_event(|_, _| {
gtk::main_quit();
gtk::prelude::Inhibit(false)
});
gtk::main();
Ok(())
}
|