duplicated input device entries in sound recorder
Bug #42022 reported by
Miguel Gaspar
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
GNOME media utilities |
Fix Released
|
Medium
|
|||
gnome-media (Ubuntu) |
Fix Released
|
Medium
|
Ubuntu Desktop Bugs | ||
Dapper |
Fix Released
|
Low
|
Ubuntu Desktop Bugs |
Bug Description
Steps to reproduce:
1- launch Sound Recorder (gnome-
2- check the available input sources in "Record from Input" drop-down list;
3- start a recording, then stop the recording;
4- check the input list again: all items are repeated.
This behavior was observed in Sound Recorder 2.14.0, provided by gnome-media-
Changed in gnome-media: | |
status: | Confirmed → Fix Released |
Changed in gnome-media: | |
status: | Fix Released → Confirmed |
Changed in gnome-media: | |
status: | Confirmed → Fix Released |
Changed in gnome-media (Ubuntu Dapper): | |
status: | Confirmed → Fix Released |
Changed in gnome-media: | |
importance: | Unknown → Medium |
To post a comment you must log in.
I looked at the source for grecord, in gsr-window.c the callback for the record action calls fill_record_ input() :
static void
record_cb (GtkAction *action,
GSRWindow *window)
{
GSRWindowPrivate *priv = window->priv;
if (priv->record) { record_ source (window)) exit (1);
shutdown_pipeline (priv->record);
if (!make_
fill_record_input (window);
}
if ((priv->record = make_record_ pipeline (window))) { >priv-> len_secs = 0; >priv-> saved = FALSE;
window-
window-
g_object_set (G_OBJECT (priv-> record- >sink),
"location" , priv->record_ filename,
NULL);
gst_element_ set_state (priv-> record- >pipeline, GST_STATE_PLAYING);
}
}
But fill_record_input() appends to the combo-box:
static void
fill_record_input (GSRWindow *window)
{
GstElement *e;
const GList *l;
int i = 0;
g_return_if_fail (GST_IS_MIXER (window- >priv-> mixer)) ;
for (l = gst_mixer_ list_tracks (window- >priv-> mixer); l != NULL; l = l->next) { TRACK_INPUT) { combo_box_ append_ text (GTK_COMBO_BOX (window- >priv-> input), t->label); TRACK_RECORD) { combo_box_ set_active (GTK_COMBO_BOX (window- >priv-> input), i - 1);
GstMixerTrack *t = l->data;
if (t->flags & GST_MIXER_
gtk_
++i;
}
if (t->flags & GST_MIXER_
gtk_
}
}
}
I don't know why fill_record_input() is called in record_cb(), but either by removing that call or by changing fill_record_ input() , this should be easy to correct.