Changeset 42429315c5e0fc08b65a7fd8c942ec869de639ae
- Timestamp:
- 02/19/10 01:28:51 (3 years ago)
- Children:
- 0f5da82ae8555ee792aae824333798de930e1f68
- Parents:
- efb242bf1ef618330ff5b035a01a25d1c85e8562
- git-committer:
- Nedko Arnaudov <nedko@arnaudov.name> / 2010-02-19T01:28:51Z+0200
- Location:
- gui
- Files:
-
- 2 modified
-
gladish.ui (modified) (2 diffs)
-
main.c (modified) (9 diffs)
Legend:
- Unmodified
- Added
- Removed
-
gui/gladish.ui
rfbc1bb5 r4242931 263 263 </object> 264 264 </child> 265 <child> 266 <object class="GtkMenuItem" id="menu_item_jack_latency"> 267 <property name="visible">True</property> 268 <property name="label" translatable="yes">JACK _Latency</property> 269 <property name="use_underline">True</property> 270 <child type="submenu"> 271 <object class="GtkMenu" id="menu_jack_latencies"> 272 <property name="visible">True</property> 273 <child> 274 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_32"> 275 <property name="visible">True</property> 276 <property name="label" translatable="yes">32</property> 277 <property name="draw_as_radio">True</property> 278 </object> 279 </child> 280 <child> 281 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_64"> 282 <property name="visible">True</property> 283 <property name="label" translatable="yes">64</property> 284 <property name="draw_as_radio">True</property> 285 <property name="group">menu_item_jack_latency_32</property> 286 </object> 287 </child> 288 <child> 289 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_128"> 290 <property name="visible">True</property> 291 <property name="label" translatable="yes">128</property> 292 <property name="draw_as_radio">True</property> 293 <property name="group">menu_item_jack_latency_32</property> 294 </object> 295 </child> 296 <child> 297 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_256"> 298 <property name="visible">True</property> 299 <property name="label" translatable="yes">256</property> 300 <property name="draw_as_radio">True</property> 301 <property name="group">menu_item_jack_latency_32</property> 302 </object> 303 </child> 304 <child> 305 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_512"> 306 <property name="visible">True</property> 307 <property name="label" translatable="yes">512</property> 308 <property name="draw_as_radio">True</property> 309 <property name="group">menu_item_jack_latency_32</property> 310 </object> 311 </child> 312 <child> 313 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_1024"> 314 <property name="visible">True</property> 315 <property name="label" translatable="yes">1024</property> 316 <property name="draw_as_radio">True</property> 317 <property name="group">menu_item_jack_latency_32</property> 318 </object> 319 </child> 320 <child> 321 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_2048"> 322 <property name="visible">True</property> 323 <property name="label" translatable="yes">2048</property> 324 <property name="draw_as_radio">True</property> 325 <property name="group">menu_item_jack_latency_32</property> 326 </object> 327 </child> 328 <child> 329 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_4096"> 330 <property name="visible">True</property> 331 <property name="label" translatable="yes">4096</property> 332 <property name="draw_as_radio">True</property> 333 <property name="group">menu_item_jack_latency_32</property> 334 </object> 335 </child> 336 <child> 337 <object class="GtkRadioMenuItem" id="menu_item_jack_latency_8192"> 338 <property name="visible">True</property> 339 <property name="label" translatable="yes">8192</property> 340 <property name="draw_as_radio">True</property> 341 <property name="group">menu_item_jack_latency_32</property> 342 </object> 343 </child> 344 </object> 345 </child> 346 </object> 347 </child> 265 348 </object> 266 349 </child> … … 306 389 <property name="visible_vertical">False</property> 307 390 <child> 308 <object class="GtkAlignment" id="alignment2"> 309 <property name="visible">True</property> 310 <property name="yscale">0</property> 311 <child> 312 <object class="GtkHBox" id="hbox4"> 313 <property name="visible">True</property> 314 <child> 315 <object class="GtkLabel" id="label10"> 316 <property name="visible">True</property> 317 <property name="label" translatable="yes"> Latency: </property> 318 </object> 319 <packing> 320 <property name="expand">False</property> 321 <property name="fill">False</property> 322 <property name="position">0</property> 323 </packing> 324 </child> 325 <child> 326 <object class="GtkComboBoxEntry" id="buffer_size_combo"> 327 <property name="visible">True</property> 328 <property name="sensitive">False</property> 329 <property name="border_width">1</property> 330 </object> 331 <packing> 332 <property name="padding">1</property> 333 <property name="position">1</property> 334 </packing> 335 </child> 336 <child> 337 <object class="GtkLabel" id="sample_rate_label"> 338 <property name="label" translatable="yes">48</property> 339 </object> 340 <packing> 341 <property name="expand">False</property> 342 <property name="fill">False</property> 343 <property name="padding">1</property> 344 <property name="position">2</property> 345 </packing> 346 </child> 347 <child> 348 <object class="GtkLabel" id="label9"> 349 <property name="xpad">1</property> 350 <property name="label" translatable="yes">kHz</property> 351 </object> 352 <packing> 353 <property name="expand">False</property> 354 <property name="fill">False</property> 355 <property name="position">3</property> 356 </packing> 357 </child> 358 </object> 391 <object class="GtkHBox" id="hbox4"> 392 <property name="visible">True</property> 393 <child> 394 <object class="GtkLabel" id="sample_rate_label"> 395 <property name="visible">True</property> 396 <property name="label" translatable="yes">48</property> 397 </object> 398 <packing> 399 <property name="expand">False</property> 400 <property name="fill">False</property> 401 <property name="padding">1</property> 402 <property name="position">0</property> 403 </packing> 404 </child> 405 <child> 406 <object class="GtkLabel" id="label9"> 407 <property name="visible">True</property> 408 <property name="xpad">1</property> 409 <property name="label" translatable="yes">kHz</property> 410 </object> 411 <packing> 412 <property name="expand">False</property> 413 <property name="fill">False</property> 414 <property name="position">1</property> 415 </packing> 359 416 </child> 360 417 </object> -
gui/main.c
r1cb3b47 r4242931 55 55 GtkWidget * g_clear_load_button; 56 56 GtkWidget * g_xrun_progress_bar; 57 GtkWidget * g_buffer_size_combo;58 57 59 58 GtkWidget * g_menu_item_new_studio; … … 69 68 GtkWidget * g_menu_item_daemon_exit; 70 69 GtkWidget * g_menu_item_jack_configure; 70 GtkCheckMenuItem * g_menu_item_jack_latency_32; 71 GtkCheckMenuItem * g_menu_item_jack_latency_64; 72 GtkCheckMenuItem * g_menu_item_jack_latency_128; 73 GtkCheckMenuItem * g_menu_item_jack_latency_256; 74 GtkCheckMenuItem * g_menu_item_jack_latency_512; 75 GtkCheckMenuItem * g_menu_item_jack_latency_1024; 76 GtkCheckMenuItem * g_menu_item_jack_latency_2048; 77 GtkCheckMenuItem * g_menu_item_jack_latency_4096; 78 GtkCheckMenuItem * g_menu_item_jack_latency_8192; 71 79 GtkWidget * g_studio_status_label; 72 80 GtkWidget * g_menu_item_view_toolbar; … … 143 151 #endif 144 152 145 static void set_buffer_size_combo_width(void) 146 { 147 //gtkmm_set_width_for_given_text(*_buffer_size_combo, "4096 frames", 40); 148 } 149 150 static void buffer_size_clear() 151 { 152 //gtk_entry_set_text(GTK_ENTRY(get_gtk_builder_widget("comboboxentry")), ""); 153 } 153 void set_latency_items_sensivity(bool sensitive) 154 { 155 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_32), sensitive); 156 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_64), sensitive); 157 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_128), sensitive); 158 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_256), sensitive); 159 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_512), sensitive); 160 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_1024), sensitive); 161 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_2048), sensitive); 162 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_4096), sensitive); 163 gtk_widget_set_sensitive(GTK_WIDGET(g_menu_item_jack_latency_8192), sensitive); 164 } 165 166 static void buffer_size_clear(void) 167 { 168 set_latency_items_sensivity(false); 169 } 170 171 static bool latency_changing = false; 154 172 155 173 static void buffer_size_set(uint32_t size) 156 174 { 157 gtk_combo_box_set_active(GTK_COMBO_BOX(g_buffer_size_combo), (int)log2f(size) - 5); 158 } 159 160 static void buffer_size_change_request(void) 161 { 162 const int selected = gtk_combo_box_get_active(GTK_COMBO_BOX(g_buffer_size_combo)); 163 164 if (selected < 0 || !jack_proxy_set_buffer_size(1 << (selected + 5))) 175 GtkCheckMenuItem * item_ptr; 176 177 switch (size) 178 { 179 case 32: 180 item_ptr = g_menu_item_jack_latency_32; 181 break; 182 case 64: 183 item_ptr = g_menu_item_jack_latency_64; 184 break; 185 case 128: 186 item_ptr = g_menu_item_jack_latency_128; 187 break; 188 case 256: 189 item_ptr = g_menu_item_jack_latency_256; 190 break; 191 case 512: 192 item_ptr = g_menu_item_jack_latency_512; 193 break; 194 case 1024: 195 item_ptr = g_menu_item_jack_latency_1024; 196 break; 197 case 2048: 198 item_ptr = g_menu_item_jack_latency_2048; 199 break; 200 case 4096: 201 item_ptr = g_menu_item_jack_latency_4096; 202 break; 203 case 8192: 204 item_ptr = g_menu_item_jack_latency_8192; 205 break; 206 default: 207 //log_error("unknown jack buffer size %"PRIu32, size); 208 buffer_size_clear(); 209 return; 210 } 211 212 if (!item_ptr->active) 213 { 214 log_info("JACK latency changed: %"PRIu32" samples", size); 215 latency_changing = true; 216 gtk_check_menu_item_set_active(item_ptr, TRUE); 217 latency_changing = false; 218 } 219 } 220 221 static void buffer_size_change_request(GtkCheckMenuItem * item_ptr, gpointer user_data) 222 { 223 uint32_t size; 224 225 if (latency_changing) 226 { /* skip activations because of gtk_check_menu_item_set_active() called from buffer_size_set() */ 227 return; 228 } 229 230 if (!item_ptr->active) 231 { /* skip radio button deactivations, we are interested only in activations */ 232 return; 233 } 234 235 size = (uint32_t)(guintptr)user_data; 236 237 log_info("JACK latency change request: %"PRIu32" samples", size); 238 239 if (!jack_proxy_set_buffer_size(size)) 165 240 { 166 241 log_error("cannot set JACK buffer size"); 167 buffer_size_clear();168 242 } 169 243 } … … 808 882 studio_state_changed(NULL); 809 883 810 gtk_widget_set_sensitive(g_buffer_size_combo,true);884 set_latency_items_sensivity(true); 811 885 gtk_widget_set_sensitive(g_clear_load_button, true); 812 886 … … 826 900 studio_state_changed(NULL); 827 901 828 gtk_widget_set_sensitive(g_buffer_size_combo,false);902 set_latency_items_sensivity(false); 829 903 buffer_size_clear(); 830 904 gtk_widget_set_sensitive(g_clear_load_button, false); … … 1039 1113 g_clear_load_button = get_gtk_builder_widget("clear_load_button"); 1040 1114 g_xrun_progress_bar = get_gtk_builder_widget("xrun_progress_bar"); 1041 g_buffer_size_combo = get_gtk_builder_widget("buffer_size_combo");1042 1115 g_menu_item_new_studio = get_gtk_builder_widget("menu_item_new_studio"); 1043 1116 g_menu_item_start_app = get_gtk_builder_widget("menu_item_start_app"); … … 1065 1138 init_studio_list(&g_delete_studio_list, "menu_item_delete_studio", "delete_studio_menu", on_delete_studio); 1066 1139 1140 g_menu_item_jack_latency_32 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_32")); 1141 g_menu_item_jack_latency_64 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_64")); 1142 g_menu_item_jack_latency_128 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_128")); 1143 g_menu_item_jack_latency_256 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_256")); 1144 g_menu_item_jack_latency_512 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_512")); 1145 g_menu_item_jack_latency_1024 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_1024")); 1146 g_menu_item_jack_latency_2048 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_2048")); 1147 g_menu_item_jack_latency_4096 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_4096")); 1148 g_menu_item_jack_latency_8192 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_8192")); 1149 1150 buffer_size_clear(); 1151 1067 1152 world_tree_init(); 1068 1153 view_init(); … … 1089 1174 studio_proxy_set_renamed_callback(on_studio_renamed); 1090 1175 1091 set_buffer_size_combo_width();1092 1093 1176 g_signal_connect(G_OBJECT(g_main_win), "destroy", G_CALLBACK(gtk_main_quit), NULL); 1094 1177 g_signal_connect(G_OBJECT(get_gtk_builder_widget("menu_item_quit")), "activate", G_CALLBACK(gtk_main_quit), NULL); 1095 g_signal_connect(G_OBJECT(g_buffer_size_combo), "changed", G_CALLBACK(buffer_size_change_request), NULL);1096 1178 g_signal_connect(G_OBJECT(g_clear_load_button), "clicked", G_CALLBACK(clear_load), NULL); 1097 1179 g_signal_connect(G_OBJECT(get_gtk_builder_widget("menu_item_view_arrange")), "activate", G_CALLBACK(arrange), NULL); … … 1109 1191 g_signal_connect(G_OBJECT(g_menu_item_start_app), "activate", G_CALLBACK(start_app), NULL); 1110 1192 1193 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_32), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)32); 1194 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_64), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)64); 1195 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_128), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)128); 1196 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_256), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)256); 1197 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_512), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)512); 1198 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_1024), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)1024); 1199 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_2048), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)2048); 1200 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_4096), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)4096); 1201 g_signal_connect(G_OBJECT(g_menu_item_jack_latency_8192), "toggled", G_CALLBACK(buffer_size_change_request), (gpointer)8192); 1202 1111 1203 gtk_widget_show(g_main_win); 1112 1204
