mirror of
https://git.jami.net/savoirfairelinux/jami-daemon.git
synced 2025-08-07 22:02:12 +08:00
[#2518] Functionnal on the client side
This commit is contained in:
@ -89,7 +89,7 @@ gchar* call_get_audio_codec (callable_obj_t *obj)
|
||||
if (obj)
|
||||
{
|
||||
audio_codec = dbus_get_current_codec_name (obj);
|
||||
codec = codec_list_get_by_name (audio_codec);
|
||||
codec = codec_list_get_by_name (audio_codec, NULL);
|
||||
if (codec){
|
||||
samplerate = codec->sample_rate;
|
||||
format = g_markup_printf_escaped ("%s/%i", audio_codec, samplerate);
|
||||
|
@ -177,19 +177,21 @@ void codec_list_add(codec_t * c, GQueue **queue) {
|
||||
g_queue_push_tail (*queue, (gpointer *) c);
|
||||
}
|
||||
|
||||
void codec_set_active (codec_t * c) {
|
||||
void codec_set_active (codec_t **c) {
|
||||
|
||||
if(c)
|
||||
{
|
||||
DEBUG("%s set active", c->name);
|
||||
c->is_active = TRUE;
|
||||
DEBUG("%s set active", (*c)->name);
|
||||
(*c)->is_active = TRUE;
|
||||
}
|
||||
}
|
||||
|
||||
void codec_set_inactive (codec_t * c) {
|
||||
void codec_set_inactive (codec_t **c) {
|
||||
|
||||
if(c)
|
||||
c->is_active = FALSE;
|
||||
if(c){
|
||||
DEBUG("%s set active", (*c)->name);
|
||||
(*c)->is_active = FALSE;
|
||||
}
|
||||
}
|
||||
|
||||
guint codec_list_get_size () {
|
||||
@ -199,9 +201,13 @@ guint codec_list_get_size () {
|
||||
return g_queue_get_length (codecsCapabilities);
|
||||
}
|
||||
|
||||
codec_t* codec_list_get_by_name (const gchar* name) {
|
||||
codec_t* codec_list_get_by_name (gconstpointer name, GQueue *q) {
|
||||
|
||||
GList * c = g_queue_find_custom (codecsCapabilities, name, is_name_codecstruct);
|
||||
// If NULL is passed as argument, we look into the global capabilities
|
||||
if (q == NULL)
|
||||
q = codecsCapabilities;
|
||||
|
||||
GList * c = g_queue_find_custom (q, name, is_name_codecstruct);
|
||||
if(c)
|
||||
return (codec_t *)c->data;
|
||||
else
|
||||
|
@ -77,13 +77,13 @@ void codec_list_add (codec_t * c, GQueue **q);
|
||||
* Set a codec active. An active codec will be used for codec negociation
|
||||
* @param name The string description of the codec
|
||||
*/
|
||||
void codec_set_active (codec_t * c);
|
||||
void codec_set_active (codec_t **c);
|
||||
|
||||
/**
|
||||
* Set a codec inactive. An active codec won't be used for codec negociation
|
||||
* @param name The string description of the codec
|
||||
*/
|
||||
void codec_set_inactive(codec_t * c);
|
||||
void codec_set_inactive(codec_t **c);
|
||||
|
||||
/**
|
||||
* Return the number of codecs in the list
|
||||
@ -96,7 +96,7 @@ guint codec_list_get_size();
|
||||
* @param name The string description of the codec
|
||||
* @return codec_t* A codec or NULL
|
||||
*/
|
||||
codec_t * codec_list_get_by_name(const gchar * name);
|
||||
codec_t * codec_list_get_by_name(gconstpointer name, GQueue *q);
|
||||
|
||||
/**
|
||||
* Return the codec at the nth position in the list
|
||||
|
@ -408,16 +408,17 @@ codec_active_toggled (GtkCellRendererToggle *renderer UNUSED, gchar *path, gpoin
|
||||
-1);
|
||||
|
||||
printf("%s, %s\n", name, srate);
|
||||
printf("%i\n", g_queue_get_length (acc->codecs));
|
||||
|
||||
// codec_list_get_by_name(name);
|
||||
if ((g_strcasecmp(name,"speex")==0) && (g_strcasecmp(srate,"8 kHz")==0))
|
||||
codec = codec_list_get_by_payload((gconstpointer) 110, NULL);
|
||||
codec = codec_list_get_by_payload((gconstpointer) 110, acc->codecs);
|
||||
else if ((g_strcasecmp(name,"speex")==0) && (g_strcasecmp(srate,"16 kHz")==0))
|
||||
codec = codec_list_get_by_payload((gconstpointer) 111, NULL);
|
||||
codec = codec_list_get_by_payload((gconstpointer) 111, acc->codecs);
|
||||
else if ((g_strcasecmp(name,"speex")==0) && (g_strcasecmp(srate,"32 kHz")==0))
|
||||
codec = codec_list_get_by_payload((gconstpointer) 112, NULL);
|
||||
codec = codec_list_get_by_payload((gconstpointer) 112, acc->codecs);
|
||||
else
|
||||
codec = codec_list_get_by_name(name);
|
||||
codec = codec_list_get_by_name ((gconstpointer) name, acc->codecs);
|
||||
|
||||
// Toggle active value
|
||||
active = !active;
|
||||
@ -431,9 +432,9 @@ codec_active_toggled (GtkCellRendererToggle *renderer UNUSED, gchar *path, gpoin
|
||||
|
||||
// Modify codec queue to represent change
|
||||
if (active)
|
||||
codec_set_active (codec);
|
||||
codec_set_active (&codec);
|
||||
else
|
||||
codec_set_inactive (codec);
|
||||
codec_set_inactive (&codec);
|
||||
|
||||
// Perpetuate changes to the deamon
|
||||
// codec_list_update_to_daemon (acc);
|
||||
@ -587,7 +588,7 @@ GtkWidget* codecs_box (account_t **a)
|
||||
gtk_tree_view_append_column(GTK_TREE_VIEW(codecTreeView), treeViewColumn);
|
||||
|
||||
// Toggle codec active property on clicked
|
||||
g_signal_connect(G_OBJECT(renderer), "toggled", G_CALLBACK (codec_active_toggled), (gpointer) codecTreeView);
|
||||
g_signal_connect(G_OBJECT(renderer), "toggled", G_CALLBACK (codec_active_toggled), (gpointer) *a);
|
||||
|
||||
// Name column
|
||||
renderer = gtk_cell_renderer_text_new();
|
||||
|
Reference in New Issue
Block a user