]> sjero.net Git - linphone/commitdiff
implement modifying of codecs fmtp within property box
authorSimon Morlat <simon.morlat@linphone.org>
Tue, 20 Apr 2010 20:21:13 +0000 (22:21 +0200)
committerSimon Morlat <simon.morlat@linphone.org>
Tue, 20 Apr 2010 20:21:13 +0000 (22:21 +0200)
coreapi/linphonecore.c
gtk-glade/parameters.glade
gtk-glade/propertybox.c

index 2ada417af3db2b925ad9b8a825ab5b00eb28e69d..3ada9e8c97d1b2137c8e7779a9ed84e9b54485dd 100644 (file)
@@ -716,13 +716,21 @@ static PayloadType * find_payload(RtpProfile *prof, const char *mime_type, int c
                it=rtp_profile_get_payload(prof,i);
                if (it!=NULL && strcasecmp(mime_type,it->mime_type)==0
                        && (clock_rate==it->clock_rate || clock_rate<=0) ){
-                       if ( (recv_fmtp && it->recv_fmtp && strcasecmp(recv_fmtp,it->recv_fmtp)==0) ||
+                       if ( (recv_fmtp && it->recv_fmtp && strstr(recv_fmtp,it->recv_fmtp)!=NULL) ||
                                (recv_fmtp==NULL && it->recv_fmtp==NULL) ){
                                /*exact match*/
+                               if (recv_fmtp) payload_type_set_recv_fmtp(it,recv_fmtp);
                                return it;
-                       }else candidate=it;
+                       }else {
+                               if (candidate){
+                                       if (it->recv_fmtp==NULL) candidate=it;
+                               }else candidate=it;
+                       }
                }
        }
+       if (candidate && recv_fmtp){
+               payload_type_set_recv_fmtp(candidate,recv_fmtp);
+       }
        return candidate;
 }
 
index 14e07514fc370b6698ffcddd13766b4ce0ca8ba5..3f3671330d8e2c89c3f02851426230f3f5eb4418 100644 (file)
@@ -10,6 +10,7 @@
       <widget class="GtkVBox" id="vbox1">
         <property name="visible">True</property>
         <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+        <property name="orientation">vertical</property>
         <child>
           <widget class="GtkNotebook" id="notebook1">
             <property name="visible">True</property>
@@ -19,6 +20,7 @@
               <widget class="GtkVBox" id="network_tab">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <widget class="GtkFrame" id="transport_frame">
                     <property name="visible">True</property>
@@ -32,6 +34,7 @@
                         <child>
                           <widget class="GtkVBox" id="vbox3">
                             <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
                             <child>
                               <widget class="GtkHBox" id="hbox2">
                                 <property name="visible">True</property>
                     <child>
                       <widget class="GtkVButtonBox" id="vbuttonbox3">
                         <property name="visible">True</property>
+                        <property name="orientation">vertical</property>
                         <child>
                           <widget class="GtkRadioButton" id="no_nat">
                             <property name="label" translatable="yes">Direct connection to the Internet</property>
                         <child>
                           <widget class="GtkVBox" id="vbox4">
                             <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
                             <child>
                               <widget class="GtkRadioButton" id="use_nat_address">
                                 <property name="label" translatable="yes">Behind NAT / Firewall (specify gateway IP below)</property>
                         <child>
                           <widget class="GtkVBox" id="vbox5">
                             <property name="visible">True</property>
+                            <property name="orientation">vertical</property>
                             <child>
                               <widget class="GtkRadioButton" id="use_stun">
                                 <property name="label" translatable="yes">Behind NAT / Firewall (use STUN to resolve)</property>
               <widget class="GtkVBox" id="multimedia_tab">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <widget class="GtkFrame" id="frame14">
                     <property name="visible">True</property>
                                 </child>
                                 <child>
                                   <widget class="GtkButton" id="play_ring">
-                                    <property name="label" translatable="yes">gtk-media-play</property>
+                                    <property name="label">gtk-media-play</property>
                                     <property name="visible">True</property>
                                     <property name="can_focus">True</property>
                                     <property name="receives_default">True</property>
               <widget class="GtkVBox" id="sip_tab">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <widget class="GtkFrame" id="frame11">
                     <property name="visible">True</property>
                               <widget class="GtkVButtonBox" id="vbuttonbox2">
                                 <property name="visible">True</property>
                                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                <property name="orientation">vertical</property>
                                 <child>
                                   <widget class="GtkButton" id="add_proxy">
                                     <property name="visible">True</property>
@@ -1189,6 +1198,7 @@ virtual network !</property>
               <widget class="GtkVBox" id="codec_tab">
                 <property name="visible">True</property>
                 <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                <property name="orientation">vertical</property>
                 <child>
                   <widget class="GtkFrame" id="frame9">
                     <property name="visible">True</property>
@@ -1203,6 +1213,7 @@ virtual network !</property>
                           <widget class="GtkVBox" id="vbox8">
                             <property name="visible">True</property>
                             <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                            <property name="orientation">vertical</property>
                             <child>
                               <widget class="GtkComboBox" id="codec_view">
                                 <property name="visible">True</property>
@@ -1246,9 +1257,10 @@ Video codecs</property>
                                   <widget class="GtkVButtonBox" id="vbuttonbox1">
                                     <property name="visible">True</property>
                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property>
+                                    <property name="orientation">vertical</property>
                                     <child>
                                       <widget class="GtkButton" id="button4">
-                                        <property name="label" translatable="yes">gtk-go-up</property>
+                                        <property name="label">gtk-go-up</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
@@ -1264,7 +1276,7 @@ Video codecs</property>
                                     </child>
                                     <child>
                                       <widget class="GtkButton" id="up_codec">
-                                        <property name="label" translatable="yes">gtk-go-down</property>
+                                        <property name="label">gtk-go-down</property>
                                         <property name="visible">True</property>
                                         <property name="can_focus">True</property>
                                         <property name="receives_default">True</property>
@@ -1642,7 +1654,6 @@ Video codecs</property>
                       <widget class="GtkImage" id="image12">
                         <property name="visible">True</property>
                         <property name="stock">gtk-apply</property>
-                        <property name="icon-size">4</property>
                       </widget>
                       <packing>
                         <property name="position">0</property>
index 4ed3f2f0eff44ec314ca08c8397b76975e2977b6..85ebdbb8dad2d8bf294ff3e135a4d00fa75430f3 100644 (file)
@@ -227,6 +227,17 @@ enum {
        CODEC_NCOLUMNS
 };
 
+static void fmtp_edited(GtkCellRendererText *renderer, gchar *path, gchar *new_text, gpointer userdata){
+       GtkListStore *store=(GtkListStore*)userdata;
+       GtkTreeIter iter;
+       if (gtk_tree_model_get_iter_from_string(GTK_TREE_MODEL(store),&iter,path)){
+               PayloadType *pt;
+               gtk_list_store_set(store,&iter,CODEC_PARAMS,new_text,-1);
+               gtk_tree_model_get(GTK_TREE_MODEL(store),&iter,CODEC_PRIVDATA,&pt,-1);
+               payload_type_set_recv_fmtp(pt,new_text);
+       }
+}
+
 static void linphone_gtk_init_codec_list(GtkTreeView *listview){
        GtkCellRenderer *renderer;
        GtkTreeViewColumn *column;
@@ -268,11 +279,14 @@ static void linphone_gtk_init_codec_list(GtkTreeView *listview){
                                                "foreground",CODEC_COLOR,
                                                    NULL);
        gtk_tree_view_append_column (listview, column);
+       renderer = gtk_cell_renderer_text_new ();
        column = gtk_tree_view_column_new_with_attributes (_("Parameters"),
                                                    renderer,
                                                    "text", CODEC_PARAMS,
                                                "foreground",CODEC_COLOR,
+                                       "editable",TRUE,
                                                    NULL);
+       g_signal_connect(G_OBJECT(renderer),"edited",G_CALLBACK(fmtp_edited),store);
        gtk_tree_view_append_column (listview, column);
        /* Setup the selection handler */
        select = gtk_tree_view_get_selection (listview);