Changeset 0f5da82ae8555ee792aae824333798de930e1f68

Show
Ignore:
Timestamp:
02/20/10 01:52:49 (3 years ago)
Author:
Nedko Arnaudov <nedko@…>
Children:
97f4150664c833e181971788d8f58962f4b5e66d
Parents:
42429315c5e0fc08b65a7fd8c942ec869de639ae
git-committer:
Nedko Arnaudov <nedko@arnaudov.name> / 2010-02-20T01:52:49Z+0200
Message:

sample rate and latency display in statusbar

Location:
gui
Files:
2 modified

Legend:

Unmodified
Added
Removed
  • gui/gladish.ui

    r4242931 r0f5da82  
    385385            <property name="icon_size_set">True</property> 
    386386            <child> 
    387               <object class="GtkToolItem" id="toolitem28"> 
    388                 <property name="visible">True</property> 
    389                 <property name="visible_vertical">False</property> 
    390                 <child> 
    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> 
    416                     </child> 
    417                   </object> 
    418                 </child> 
    419               </object> 
    420               <packing> 
    421                 <property name="expand">False</property> 
    422               </packing> 
    423             </child> 
    424             <child> 
    425               <object class="GtkSeparatorToolItem" id="separatortoolitem3"> 
    426                 <property name="visible">True</property> 
    427                 <property name="border_width">8</property> 
    428               </object> 
    429               <packing> 
    430                 <property name="expand">False</property> 
    431               </packing> 
    432             </child> 
    433             <child> 
    434387              <object class="GtkToolButton" id="clear_load_button"> 
    435388                <property name="visible">True</property> 
  • gui/main.c

    r4242931 r0f5da82  
    5555GtkWidget * g_clear_load_button; 
    5656GtkWidget * g_xrun_progress_bar; 
     57GtkStatusbar * g_statusbar; 
    5758 
    5859GtkWidget * g_menu_item_new_studio; 
     
    8788GtkWidget * g_app_dialog; 
    8889 
     90GtkWidget * g_sample_rate_label; 
     91uint32_t g_sample_rate; 
     92 
     93GtkWidget * g_latency_label; 
     94 
    8995graph_view_handle g_jack_view = NULL; 
    9096graph_view_handle g_studio_view = NULL; 
     
    167173{ 
    168174  set_latency_items_sensivity(false); 
     175  gtk_label_set_text(GTK_LABEL(g_latency_label), ""); 
    169176} 
    170177 
    171178static bool latency_changing = false; 
    172179 
    173 static void buffer_size_set(uint32_t size) 
     180static void buffer_size_set(uint32_t size, bool force) 
    174181{ 
    175182  GtkCheckMenuItem * item_ptr; 
     
    210217  } 
    211218 
    212   if (!item_ptr->active) 
     219  if (force || !item_ptr->active) 
    213220  { 
    214221    log_info("JACK latency changed: %"PRIu32" samples", size); 
     
    216223    gtk_check_menu_item_set_active(item_ptr, TRUE); 
    217224    latency_changing = false; 
     225 
     226    { 
     227      char buf[100]; 
     228      snprintf(buf, sizeof(buf), "Latency: %4.1f ms (%"PRIu32")", (float)size / (float)g_sample_rate * 1000.0f, size); 
     229      gtk_label_set_text(GTK_LABEL(g_latency_label), buf); 
     230    } 
    218231  } 
    219232} 
     
    243256} 
    244257 
    245 static void update_buffer_size(void) 
     258static void update_buffer_size(bool force) 
    246259{ 
    247260  uint32_t size; 
     
    249262  if (jack_proxy_get_buffer_size(&size)) 
    250263  { 
    251     buffer_size_set(size); 
     264    buffer_size_set(size, force); 
    252265  } 
    253266  else 
     
    632645{ 
    633646  update_load(); 
    634   update_buffer_size(); 
     647  update_buffer_size(false); 
    635648 
    636649  return TRUE; 
     
    739752  gtk_tool_item_set_tooltip_text(GTK_TOOL_ITEM(g_status_tool_item), tooltip); 
    740753 
     754  if (g_jack_state == JACK_STATE_STARTED && jack_proxy_sample_rate(&g_sample_rate)) 
     755  { 
     756    char buf[100]; 
     757 
     758    if (fmod(g_sample_rate, 1000.0) != 0.0) 
     759    { 
     760      snprintf(buf, sizeof(buf), "Sample rate: %.1f kHz", (float)g_sample_rate / 1000.0f); 
     761    } 
     762    else 
     763    { 
     764      snprintf(buf, sizeof(buf), "Sample rate: %u kHz", g_sample_rate / 1000); 
     765    } 
     766 
     767    gtk_label_set_text(GTK_LABEL(g_sample_rate_label), buf); 
     768  } 
     769  else 
     770  { 
     771    gtk_label_set_text(GTK_LABEL(g_sample_rate_label), ""); 
     772  } 
     773 
    741774  if (buffer == NULL) 
    742775  { 
     
    883916 
    884917  set_latency_items_sensivity(true); 
     918  update_buffer_size(true); 
    885919  gtk_widget_set_sensitive(g_clear_load_button, true); 
    886920 
     
    11311165  g_status_image = get_gtk_builder_widget("startstop"); 
    11321166  g_status_tool_item = get_gtk_builder_widget("startstop_item"); 
     1167  g_statusbar = GTK_STATUSBAR(get_gtk_builder_widget("statusbar")); 
    11331168 
    11341169  g_name_dialog = get_gtk_builder_widget("name_dialog"); 
     
    11471182  g_menu_item_jack_latency_4096 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_4096")); 
    11481183  g_menu_item_jack_latency_8192 = GTK_CHECK_MENU_ITEM(get_gtk_builder_widget("menu_item_jack_latency_8192")); 
     1184 
     1185  g_sample_rate_label = gtk_label_new("srate"); 
     1186  gtk_widget_show(g_sample_rate_label); 
     1187  gtk_box_pack_start(GTK_BOX(g_statusbar), g_sample_rate_label, FALSE, TRUE, 10); 
     1188  gtk_box_reorder_child(GTK_BOX(g_statusbar), g_sample_rate_label, 0); 
     1189 
     1190  g_latency_label = gtk_label_new("latency"); 
     1191  gtk_widget_show(g_latency_label); 
     1192  gtk_box_pack_start(GTK_BOX(g_statusbar), g_latency_label, FALSE, TRUE, 10); 
     1193  gtk_box_reorder_child(GTK_BOX(g_statusbar), g_latency_label, 1); 
    11491194 
    11501195  buffer_size_clear();