remove debianization from main repo
[jackpanel.git] / jackpanel / JackpanelApplet.vala
blobf6cb42a75ba664da8605a01c39907f7ec3895dbf
1 /*
2 Copyright 2009 by Hans Baier
3 License: GPLv2+
4 */
6 using GLib;
7 using Panel;
9 namespace Jackpanel {
11 public class JackpanelApplet : JackpanelBase {
12 private MiniDisplay display;
13 private Jackpanel panel;
14 private new Gtk.Window window;
16 private bool show_state () {
17 if ((!initialized) || client == null) {
18 display.off = true;
19 return false;
22 display.realtime = client.is_realtime();
24 display.sample_rate = client.get_sample_rate ();
26 display.buffer_size = client.get_buffer_size ();
28 if (display.xruns != no_xruns) display.xruns = no_xruns;
30 display.off = false;
32 // this one redraws the panel
33 show_time (display);
35 return true;
38 protected override void on_transport_stopped () {}
40 protected override void on_transport_rolling () {}
42 protected void post_jack_init_function () {
43 debug ("PanelApplet: post_jack_init");
44 if (initialized) {
45 Timeout.add (100, show_state);
46 } else {
47 display.off = true;
51 construct {
52 client_name = "jackpanel-applet";
54 display = new MiniDisplay ();
56 display.sample_rate_changed += (display, new_rate) => {
57 config.sample_rate = (int)new_rate;
58 restart_jack ();
61 display.buffer_size_changed += (display, new_size) => {
62 client.set_buffer_size (new_size);
63 display.buffer_size = new_size;
64 config.buffer_size = (int)new_size;
67 display.toggle_realtime_requested += (display, should_be_realtime) => {
68 if (should_be_realtime != config.realtime) {
69 config.realtime = should_be_realtime;
70 restart_jack ();
74 display.reset_xruns_requested += (display) => {
75 no_xruns = 0;
77 add (display);
79 window = new Gtk.Window (Gtk.WindowType.TOPLEVEL);
80 window.set_default_icon_name ("jackpanel");
81 // JACK gets started here
82 panel = new Jackpanel ("jackpanel-applet");
83 panel.post_jack_init += post_jack_init_function;
84 window.add (panel);
85 window.set_deletable (false);
86 window.allow_grow = false;
87 window.show_all ();
88 window.visible = false;
90 post_jack_init += () => {
91 panel.post_jack_init ();
94 display.double_click += () => {
95 window.visible = !window.visible;
98 post_jack_init_function ();
101 public void toggle_transport_window () {
102 display.double_click ();
105 ~JackPanelApplet () {
106 stop_jack ();
110 } //namespace Jackpanel