2 Copyright 2009 by Hans Baier
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) {
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
;
32 // this one redraws the panel
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");
45 Timeout
.add (100, show_state
);
52 client_name
= "jackpanel-applet";
54 display
= new
MiniDisplay ();
56 display
.sample_rate_changed
+= (display
, new_rate
) => {
57 config
.sample_rate
= (int)new_rate
;
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
;
74 display
.reset_xruns_requested
+= (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
;
85 window
.set_deletable (false);
86 window
.allow_grow
= false;
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 () {
110 } //namespace Jackpanel