Changeset 213:3ef58e537359 in mediastreamer2


Ignore:
Timestamp:
Jan 3, 2009 4:34:55 PM (4 years ago)
Author:
smorlat <smorlat@…>
Branch:
default
Message:

set icon and title on video window too.

git-svn-id: svn+ssh://svn.savannah.nongnu.org/linphone/trunk@216 3f6dc0c8-ddfe-455d-9043-3cd528dc4637

Location:
linphone
Files:
8 edited

Legend:

Unmodified
Added
Removed
  • linphone/coreapi/linphonecore.c

    r199 r213  
    20352035} 
    20362036 
     2037unsigned long linphone_core_get_native_video_window_id(const LinphoneCore *lc){ 
     2038        if (lc->videostream) 
     2039                return video_stream_get_native_window_id(lc->videostream); 
     2040        if (lc->previewstream) 
     2041                return video_stream_get_native_window_id(lc->previewstream); 
     2042        return 0; 
     2043} 
     2044 
    20372045static MSVideoSizeDef supported_resolutions[]={ 
    20382046        {       MS_VIDEO_SIZE_SVGA      ,       "svga"  }, 
  • linphone/coreapi/linphonecore.h

    r190 r213  
    703703const char *linphone_core_get_video_device(const LinphoneCore *lc); 
    704704 
    705  
     705/*function to be used for eventually setting window decorations (icons, title...)*/ 
     706unsigned long linphone_core_get_native_video_window_id(const LinphoneCore *lc); 
    706707 
    707708 
  • linphone/gtk-glade/main.c

    r211 r213  
    247247} 
    248248 
     249static void set_video_window_decorations(GdkWindow *w){ 
     250        const char *title=linphone_gtk_get_ui_config("title","Linphone"); 
     251        const char *icon_path=linphone_gtk_get_ui_config("icon","linphone2.png"); 
     252        char video_title[256]; 
     253        GdkPixbuf *pbuf=create_pixbuf(icon_path); 
     254        snprintf(video_title,sizeof(video_title),"%s video",title); 
     255        gdk_window_set_title(w,video_title); 
     256        if (pbuf){ 
     257                GList *l=NULL; 
     258                l=g_list_append(l,pbuf); 
     259                gdk_window_set_icon_list(w,l); 
     260                g_list_free(l); 
     261                g_object_unref(G_OBJECT(pbuf)); 
     262        } 
     263} 
     264 
    249265static gboolean linphone_gtk_iterate(LinphoneCore *lc){ 
     266        unsigned long id; 
     267        static unsigned long previd=0; 
    250268        linphone_core_iterate(lc); 
     269        id=linphone_core_get_native_video_window_id(lc); 
     270        if (id!=previd){ 
     271                GdkWindow *w; 
     272                previd=id; 
     273                if (id!=0){ 
     274                        w=gdk_window_foreign_new(id); 
     275                        if (w) { 
     276                                set_video_window_decorations(w); 
     277                                g_object_unref(G_OBJECT(w)); 
     278                        } 
     279                        else ms_error("gdk_window_foreign_new() failed"); 
     280                } 
     281        } 
    251282        return TRUE; 
    252283} 
     
    694725        static gboolean config_loaded=FALSE; 
    695726        static gboolean show_digits=1; 
     727        static gboolean show_identities=1; 
    696728        static const char *title; 
    697729        static const char *home; 
     
    700732        if (!config_loaded){ 
    701733                show_digits=linphone_gtk_get_ui_config_int("show_digits",1); 
     734                show_identities=linphone_gtk_get_ui_config_int("identity_frame",1); 
    702735                title=linphone_gtk_get_ui_config("title",NULL); 
    703736                home=linphone_gtk_get_ui_config("home","http://www.linphone.org"); 
     
    705738                config_loaded=TRUE; 
    706739        } 
    707         if (show_digits==0) gtk_widget_hide(linphone_gtk_get_widget(w,"dialpad")); 
     740        if (show_digits==FALSE) gtk_widget_hide(linphone_gtk_get_widget(w,"dialpad")); 
     741        if (show_identities==FALSE) gtk_widget_hide(linphone_gtk_get_widget(w,"identity_frame")); 
    708742        if (title) gtk_window_set_title(GTK_WINDOW(w),title); 
    709743        if (icon_path) { 
  • linphone/gtk-glade/main.glade

    r210 r213  
    11<?xml version="1.0" encoding="UTF-8" standalone="no"?> 
    22<!DOCTYPE glade-interface SYSTEM "glade-2.0.dtd"> 
    3 <!--Generated with glade3 3.4.5 on Sun Dec 28 23:41:16 2008 --> 
     3<!--Generated with glade3 3.4.5 on Tue Dec 30 16:01:16 2008 --> 
    44<glade-interface> 
    55  <widget class="GtkWindow" id="main"> 
     
    427427                                <property name="homogeneous">True</property> 
    428428                                <child> 
    429                                   <widget class="GtkButton" id="dtmf_1"> 
    430                                     <property name="visible">True</property> 
    431                                     <property name="can_focus">True</property> 
    432                                     <property name="receives_default">True</property> 
    433                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    434                                     <property name="label" translatable="yes">1</property> 
    435                                     <property name="response_id">0</property> 
    436                                   </widget> 
    437                                   <packing> 
    438                                     <property name="x_options"></property> 
    439                                     <property name="y_options"></property> 
    440                                   </packing> 
    441                                 </child> 
    442                                 <child> 
    443                                   <widget class="GtkButton" id="dtmf_2"> 
    444                                     <property name="visible">True</property> 
    445                                     <property name="can_focus">True</property> 
    446                                     <property name="receives_default">True</property> 
    447                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    448                                     <property name="label" translatable="yes">2</property> 
     429                                  <widget class="GtkButton" id="dtmf_D"> 
     430                                    <property name="visible">True</property> 
     431                                    <property name="can_focus">True</property> 
     432                                    <property name="receives_default">True</property> 
     433                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     434                                    <property name="label" translatable="yes">D</property> 
     435                                    <property name="response_id">0</property> 
     436                                  </widget> 
     437                                  <packing> 
     438                                    <property name="left_attach">3</property> 
     439                                    <property name="right_attach">4</property> 
     440                                    <property name="top_attach">3</property> 
     441                                    <property name="bottom_attach">4</property> 
     442                                    <property name="x_options"></property> 
     443                                    <property name="y_options"></property> 
     444                                  </packing> 
     445                                </child> 
     446                                <child> 
     447                                  <widget class="GtkButton" id="dtmf_hash"> 
     448                                    <property name="visible">True</property> 
     449                                    <property name="can_focus">True</property> 
     450                                    <property name="receives_default">True</property> 
     451                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     452                                    <property name="label" translatable="yes">#</property> 
     453                                    <property name="response_id">0</property> 
     454                                  </widget> 
     455                                  <packing> 
     456                                    <property name="left_attach">2</property> 
     457                                    <property name="right_attach">3</property> 
     458                                    <property name="top_attach">3</property> 
     459                                    <property name="bottom_attach">4</property> 
     460                                    <property name="x_options"></property> 
     461                                    <property name="y_options"></property> 
     462                                  </packing> 
     463                                </child> 
     464                                <child> 
     465                                  <widget class="GtkButton" id="dtmf_0"> 
     466                                    <property name="visible">True</property> 
     467                                    <property name="can_focus">True</property> 
     468                                    <property name="receives_default">True</property> 
     469                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     470                                    <property name="label" translatable="yes">0</property> 
    449471                                    <property name="response_id">0</property> 
    450472                                  </widget> 
     
    452474                                    <property name="left_attach">1</property> 
    453475                                    <property name="right_attach">2</property> 
    454                                     <property name="x_options"></property> 
    455                                     <property name="y_options"></property> 
    456                                   </packing> 
    457                                 </child> 
    458                                 <child> 
    459                                   <widget class="GtkButton" id="dtmf_3"> 
    460                                     <property name="visible">True</property> 
    461                                     <property name="can_focus">True</property> 
    462                                     <property name="receives_default">True</property> 
    463                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    464                                     <property name="label" translatable="yes">3</property> 
     476                                    <property name="top_attach">3</property> 
     477                                    <property name="bottom_attach">4</property> 
     478                                    <property name="x_options"></property> 
     479                                    <property name="y_options"></property> 
     480                                  </packing> 
     481                                </child> 
     482                                <child> 
     483                                  <widget class="GtkButton" id="dtmf_star"> 
     484                                    <property name="visible">True</property> 
     485                                    <property name="can_focus">True</property> 
     486                                    <property name="receives_default">True</property> 
     487                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     488                                    <property name="label" translatable="yes">*</property> 
     489                                    <property name="response_id">0</property> 
     490                                  </widget> 
     491                                  <packing> 
     492                                    <property name="top_attach">3</property> 
     493                                    <property name="bottom_attach">4</property> 
     494                                    <property name="x_options"></property> 
     495                                    <property name="y_options"></property> 
     496                                  </packing> 
     497                                </child> 
     498                                <child> 
     499                                  <widget class="GtkButton" id="dtmf_C"> 
     500                                    <property name="visible">True</property> 
     501                                    <property name="can_focus">True</property> 
     502                                    <property name="receives_default">True</property> 
     503                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     504                                    <property name="label" translatable="yes">C</property> 
     505                                    <property name="response_id">0</property> 
     506                                  </widget> 
     507                                  <packing> 
     508                                    <property name="left_attach">3</property> 
     509                                    <property name="right_attach">4</property> 
     510                                    <property name="top_attach">2</property> 
     511                                    <property name="bottom_attach">3</property> 
     512                                    <property name="x_options"></property> 
     513                                    <property name="y_options"></property> 
     514                                  </packing> 
     515                                </child> 
     516                                <child> 
     517                                  <widget class="GtkButton" id="dtmf_9"> 
     518                                    <property name="visible">True</property> 
     519                                    <property name="can_focus">True</property> 
     520                                    <property name="receives_default">True</property> 
     521                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     522                                    <property name="label" translatable="yes">9</property> 
    465523                                    <property name="response_id">0</property> 
    466524                                  </widget> 
     
    468526                                    <property name="left_attach">2</property> 
    469527                                    <property name="right_attach">3</property> 
    470                                     <property name="x_options"></property> 
    471                                     <property name="y_options"></property> 
    472                                   </packing> 
    473                                 </child> 
    474                                 <child> 
    475                                   <widget class="GtkButton" id="dtmf_A"> 
    476                                     <property name="visible">True</property> 
    477                                     <property name="can_focus">True</property> 
    478                                     <property name="receives_default">True</property> 
    479                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    480                                     <property name="label" translatable="yes">A</property> 
     528                                    <property name="top_attach">2</property> 
     529                                    <property name="bottom_attach">3</property> 
     530                                    <property name="x_options"></property> 
     531                                    <property name="y_options"></property> 
     532                                  </packing> 
     533                                </child> 
     534                                <child> 
     535                                  <widget class="GtkButton" id="dtmf_8"> 
     536                                    <property name="visible">True</property> 
     537                                    <property name="can_focus">True</property> 
     538                                    <property name="receives_default">True</property> 
     539                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     540                                    <property name="label" translatable="yes">8</property> 
     541                                    <property name="response_id">0</property> 
     542                                  </widget> 
     543                                  <packing> 
     544                                    <property name="left_attach">1</property> 
     545                                    <property name="right_attach">2</property> 
     546                                    <property name="top_attach">2</property> 
     547                                    <property name="bottom_attach">3</property> 
     548                                    <property name="x_options"></property> 
     549                                    <property name="y_options"></property> 
     550                                  </packing> 
     551                                </child> 
     552                                <child> 
     553                                  <widget class="GtkButton" id="dtmf_7"> 
     554                                    <property name="visible">True</property> 
     555                                    <property name="can_focus">True</property> 
     556                                    <property name="receives_default">True</property> 
     557                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     558                                    <property name="label" translatable="yes">7</property> 
     559                                    <property name="response_id">0</property> 
     560                                  </widget> 
     561                                  <packing> 
     562                                    <property name="top_attach">2</property> 
     563                                    <property name="bottom_attach">3</property> 
     564                                    <property name="x_options"></property> 
     565                                    <property name="y_options"></property> 
     566                                  </packing> 
     567                                </child> 
     568                                <child> 
     569                                  <widget class="GtkButton" id="dtmf_B"> 
     570                                    <property name="visible">True</property> 
     571                                    <property name="can_focus">True</property> 
     572                                    <property name="receives_default">True</property> 
     573                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     574                                    <property name="label" translatable="yes">B</property> 
    481575                                    <property name="response_id">0</property> 
    482576                                  </widget> 
     
    484578                                    <property name="left_attach">3</property> 
    485579                                    <property name="right_attach">4</property> 
    486                                     <property name="x_options"></property> 
    487                                     <property name="y_options"></property> 
    488                                   </packing> 
    489                                 </child> 
    490                                 <child> 
    491                                   <widget class="GtkButton" id="dtmf_4"> 
    492                                     <property name="visible">True</property> 
    493                                     <property name="can_focus">True</property> 
    494                                     <property name="receives_default">True</property> 
    495                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    496                                     <property name="label" translatable="yes">4</property> 
    497                                     <property name="response_id">0</property> 
    498                                   </widget> 
    499                                   <packing> 
     580                                    <property name="top_attach">1</property> 
     581                                    <property name="bottom_attach">2</property> 
     582                                    <property name="x_options"></property> 
     583                                    <property name="y_options"></property> 
     584                                  </packing> 
     585                                </child> 
     586                                <child> 
     587                                  <widget class="GtkButton" id="dtmf_6"> 
     588                                    <property name="visible">True</property> 
     589                                    <property name="can_focus">True</property> 
     590                                    <property name="receives_default">True</property> 
     591                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     592                                    <property name="label" translatable="yes">6</property> 
     593                                    <property name="response_id">0</property> 
     594                                  </widget> 
     595                                  <packing> 
     596                                    <property name="left_attach">2</property> 
     597                                    <property name="right_attach">3</property> 
    500598                                    <property name="top_attach">1</property> 
    501599                                    <property name="bottom_attach">2</property> 
     
    523621                                </child> 
    524622                                <child> 
    525                                   <widget class="GtkButton" id="dtmf_6"> 
    526                                     <property name="visible">True</property> 
    527                                     <property name="can_focus">True</property> 
    528                                     <property name="receives_default">True</property> 
    529                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    530                                     <property name="label" translatable="yes">6</property> 
     623                                  <widget class="GtkButton" id="dtmf_4"> 
     624                                    <property name="visible">True</property> 
     625                                    <property name="can_focus">True</property> 
     626                                    <property name="receives_default">True</property> 
     627                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     628                                    <property name="label" translatable="yes">4</property> 
     629                                    <property name="response_id">0</property> 
     630                                  </widget> 
     631                                  <packing> 
     632                                    <property name="top_attach">1</property> 
     633                                    <property name="bottom_attach">2</property> 
     634                                    <property name="x_options"></property> 
     635                                    <property name="y_options"></property> 
     636                                  </packing> 
     637                                </child> 
     638                                <child> 
     639                                  <widget class="GtkButton" id="dtmf_A"> 
     640                                    <property name="visible">True</property> 
     641                                    <property name="can_focus">True</property> 
     642                                    <property name="receives_default">True</property> 
     643                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     644                                    <property name="label" translatable="yes">A</property> 
     645                                    <property name="response_id">0</property> 
     646                                  </widget> 
     647                                  <packing> 
     648                                    <property name="left_attach">3</property> 
     649                                    <property name="right_attach">4</property> 
     650                                    <property name="x_options"></property> 
     651                                    <property name="y_options"></property> 
     652                                  </packing> 
     653                                </child> 
     654                                <child> 
     655                                  <widget class="GtkButton" id="dtmf_3"> 
     656                                    <property name="visible">True</property> 
     657                                    <property name="can_focus">True</property> 
     658                                    <property name="receives_default">True</property> 
     659                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     660                                    <property name="label" translatable="yes">3</property> 
    531661                                    <property name="response_id">0</property> 
    532662                                  </widget> 
     
    534664                                    <property name="left_attach">2</property> 
    535665                                    <property name="right_attach">3</property> 
    536                                     <property name="top_attach">1</property> 
    537                                     <property name="bottom_attach">2</property> 
    538                                     <property name="x_options"></property> 
    539                                     <property name="y_options"></property> 
    540                                   </packing> 
    541                                 </child> 
    542                                 <child> 
    543                                   <widget class="GtkButton" id="dtmf_B"> 
    544                                     <property name="visible">True</property> 
    545                                     <property name="can_focus">True</property> 
    546                                     <property name="receives_default">True</property> 
    547                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    548                                     <property name="label" translatable="yes">B</property> 
    549                                     <property name="response_id">0</property> 
    550                                   </widget> 
    551                                   <packing> 
    552                                     <property name="left_attach">3</property> 
    553                                     <property name="right_attach">4</property> 
    554                                     <property name="top_attach">1</property> 
    555                                     <property name="bottom_attach">2</property> 
    556                                     <property name="x_options"></property> 
    557                                     <property name="y_options"></property> 
    558                                   </packing> 
    559                                 </child> 
    560                                 <child> 
    561                                   <widget class="GtkButton" id="dtmf_7"> 
    562                                     <property name="visible">True</property> 
    563                                     <property name="can_focus">True</property> 
    564                                     <property name="receives_default">True</property> 
    565                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    566                                     <property name="label" translatable="yes">7</property> 
    567                                     <property name="response_id">0</property> 
    568                                   </widget> 
    569                                   <packing> 
    570                                     <property name="top_attach">2</property> 
    571                                     <property name="bottom_attach">3</property> 
    572                                     <property name="x_options"></property> 
    573                                     <property name="y_options"></property> 
    574                                   </packing> 
    575                                 </child> 
    576                                 <child> 
    577                                   <widget class="GtkButton" id="dtmf_8"> 
    578                                     <property name="visible">True</property> 
    579                                     <property name="can_focus">True</property> 
    580                                     <property name="receives_default">True</property> 
    581                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    582                                     <property name="label" translatable="yes">8</property> 
     666                                    <property name="x_options"></property> 
     667                                    <property name="y_options"></property> 
     668                                  </packing> 
     669                                </child> 
     670                                <child> 
     671                                  <widget class="GtkButton" id="dtmf_2"> 
     672                                    <property name="visible">True</property> 
     673                                    <property name="can_focus">True</property> 
     674                                    <property name="receives_default">True</property> 
     675                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     676                                    <property name="label" translatable="yes">2</property> 
    583677                                    <property name="response_id">0</property> 
    584678                                  </widget> 
     
    586680                                    <property name="left_attach">1</property> 
    587681                                    <property name="right_attach">2</property> 
    588                                     <property name="top_attach">2</property> 
    589                                     <property name="bottom_attach">3</property> 
    590                                     <property name="x_options"></property> 
    591                                     <property name="y_options"></property> 
    592                                   </packing> 
    593                                 </child> 
    594                                 <child> 
    595                                   <widget class="GtkButton" id="dtmf_9"> 
    596                                     <property name="visible">True</property> 
    597                                     <property name="can_focus">True</property> 
    598                                     <property name="receives_default">True</property> 
    599                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    600                                     <property name="label" translatable="yes">9</property> 
    601                                     <property name="response_id">0</property> 
    602                                   </widget> 
    603                                   <packing> 
    604                                     <property name="left_attach">2</property> 
    605                                     <property name="right_attach">3</property> 
    606                                     <property name="top_attach">2</property> 
    607                                     <property name="bottom_attach">3</property> 
    608                                     <property name="x_options"></property> 
    609                                     <property name="y_options"></property> 
    610                                   </packing> 
    611                                 </child> 
    612                                 <child> 
    613                                   <widget class="GtkButton" id="dtmf_C"> 
    614                                     <property name="visible">True</property> 
    615                                     <property name="can_focus">True</property> 
    616                                     <property name="receives_default">True</property> 
    617                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    618                                     <property name="label" translatable="yes">C</property> 
    619                                     <property name="response_id">0</property> 
    620                                   </widget> 
    621                                   <packing> 
    622                                     <property name="left_attach">3</property> 
    623                                     <property name="right_attach">4</property> 
    624                                     <property name="top_attach">2</property> 
    625                                     <property name="bottom_attach">3</property> 
    626                                     <property name="x_options"></property> 
    627                                     <property name="y_options"></property> 
    628                                   </packing> 
    629                                 </child> 
    630                                 <child> 
    631                                   <widget class="GtkButton" id="dtmf_star"> 
    632                                     <property name="visible">True</property> 
    633                                     <property name="can_focus">True</property> 
    634                                     <property name="receives_default">True</property> 
    635                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    636                                     <property name="label" translatable="yes">*</property> 
    637                                     <property name="response_id">0</property> 
    638                                   </widget> 
    639                                   <packing> 
    640                                     <property name="top_attach">3</property> 
    641                                     <property name="bottom_attach">4</property> 
    642                                     <property name="x_options"></property> 
    643                                     <property name="y_options"></property> 
    644                                   </packing> 
    645                                 </child> 
    646                                 <child> 
    647                                   <widget class="GtkButton" id="dtmf_0"> 
    648                                     <property name="visible">True</property> 
    649                                     <property name="can_focus">True</property> 
    650                                     <property name="receives_default">True</property> 
    651                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    652                                     <property name="label" translatable="yes">0</property> 
    653                                     <property name="response_id">0</property> 
    654                                   </widget> 
    655                                   <packing> 
    656                                     <property name="left_attach">1</property> 
    657                                     <property name="right_attach">2</property> 
    658                                     <property name="top_attach">3</property> 
    659                                     <property name="bottom_attach">4</property> 
    660                                     <property name="x_options"></property> 
    661                                     <property name="y_options"></property> 
    662                                   </packing> 
    663                                 </child> 
    664                                 <child> 
    665                                   <widget class="GtkButton" id="dtmf_hash"> 
    666                                     <property name="visible">True</property> 
    667                                     <property name="can_focus">True</property> 
    668                                     <property name="receives_default">True</property> 
    669                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    670                                     <property name="label" translatable="yes">#</property> 
    671                                     <property name="response_id">0</property> 
    672                                   </widget> 
    673                                   <packing> 
    674                                     <property name="left_attach">2</property> 
    675                                     <property name="right_attach">3</property> 
    676                                     <property name="top_attach">3</property> 
    677                                     <property name="bottom_attach">4</property> 
    678                                     <property name="x_options"></property> 
    679                                     <property name="y_options"></property> 
    680                                   </packing> 
    681                                 </child> 
    682                                 <child> 
    683                                   <widget class="GtkButton" id="dtmf_D"> 
    684                                     <property name="visible">True</property> 
    685                                     <property name="can_focus">True</property> 
    686                                     <property name="receives_default">True</property> 
    687                                     <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
    688                                     <property name="label" translatable="yes">D</property> 
    689                                     <property name="response_id">0</property> 
    690                                   </widget> 
    691                                   <packing> 
    692                                     <property name="left_attach">3</property> 
    693                                     <property name="right_attach">4</property> 
    694                                     <property name="top_attach">3</property> 
    695                                     <property name="bottom_attach">4</property> 
     682                                    <property name="x_options"></property> 
     683                                    <property name="y_options"></property> 
     684                                  </packing> 
     685                                </child> 
     686                                <child> 
     687                                  <widget class="GtkButton" id="dtmf_1"> 
     688                                    <property name="visible">True</property> 
     689                                    <property name="can_focus">True</property> 
     690                                    <property name="receives_default">True</property> 
     691                                    <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
     692                                    <property name="label" translatable="yes">1</property> 
     693                                    <property name="response_id">0</property> 
     694                                  </widget> 
     695                                  <packing> 
    696696                                    <property name="x_options"></property> 
    697697                                    <property name="y_options"></property> 
     
    730730            </child> 
    731731            <child> 
    732               <widget class="GtkFrame" id="frame8"> 
     732              <widget class="GtkFrame" id="identity_frame"> 
    733733                <property name="visible">True</property> 
    734734                <property name="events">GDK_POINTER_MOTION_MASK | GDK_POINTER_MOTION_HINT_MASK | GDK_BUTTON_PRESS_MASK | GDK_BUTTON_RELEASE_MASK</property> 
  • linphone/mediastreamer2/include/mediastreamer2/mediastream.h

    r190 r213  
    143143void video_stream_set_sent_video_size(VideoStream *stream, MSVideoSize vsize); 
    144144void video_stream_enable_self_view(VideoStream *stream, bool_t val); 
     145unsigned long video_stream_get_native_window_id(VideoStream *stream); 
     146 
    145147 
    146148VideoStream * video_preview_start(MSWebCam *device, MSVideoSize vsize); 
  • linphone/mediastreamer2/include/mediastreamer2/msvideoout.h

    r162 r213  
    5353        long window_id; /*window id if the display should use an existing window*/ 
    5454        void *data; 
     55        bool_t use_external_window; 
    5556} MSDisplay; 
    5657 
     
    9596#define MS_VIDEO_OUT_AUTO_FIT           MS_FILTER_METHOD(MS_VIDEO_OUT_ID,3,int) 
    9697#define MS_VIDEO_OUT_ENABLE_MIRRORING   MS_FILTER_METHOD(MS_VIDEO_OUT_ID,4,int) 
     98#define MS_VIDEO_OUT_GET_NATIVE_WINDOW_ID MS_FILTER_METHOD(MS_VIDEO_OUT_ID,5,unsigned long) 
    9799 
    98100#ifdef __cplusplus 
  • linphone/mediastreamer2/src/videoout.c

    r209 r213  
    5353 
    5454#include <SDL/SDL_syswm.h> 
     55 
     56static long sdl_get_native_window_id(){ 
     57        SDL_SysWMinfo info; 
     58        SDL_VERSION(&info.version); 
     59        if ( SDL_GetWMInfo(&info) ) { 
     60                if ( info.subsystem == SDL_SYSWM_X11 ) { 
     61                        return (long) info.info.x11.wmwindow; 
     62                } 
     63        } 
     64        return 0; 
     65} 
    5566 
    5667static void sdl_show_window(bool_t show){ 
     
    8091} 
    8192 
     93static long sdl_get_native_window_id(){ 
     94        ms_warning("sdl_get_native_window_id not implemented"); 
     95        return 0; 
     96} 
     97 
    8298#endif 
    8399 
     
    93109        } 
    94110        if (sdl_screen->flags & SDL_HWSURFACE) ms_message("SDL surface created in hardware"); 
    95         SDL_WM_SetCaption("Linphone Video", NULL); 
     111        SDL_WM_SetCaption("Video window", NULL); 
    96112        ms_message("Using yuv overlay."); 
    97113        lay=SDL_CreateYUVOverlay(w , h ,SDL_YV12_OVERLAY,sdl_screen); 
     
    138154                obj->data=lay; 
    139155                sdl_show_window(TRUE); 
     156                obj->window_id=sdl_get_native_window_id(); 
    140157                return TRUE; 
    141158        } 
     
    208225        .update=sdl_display_update, 
    209226        .uninit=sdl_display_uninit, 
    210         .pollevent=sdl_poll_event 
     227        .pollevent=sdl_poll_event, 
    211228}; 
    212229 
     
    326343         
    327344        if (wd->window==NULL){ 
    328                 if (obj->window_id!=0){ 
     345                if (obj->use_external_window && obj->window_id!=0){ 
    329346                        void *p; 
    330347                        wd->window=(HWND)obj->window_id; 
     
    336353                }else{ 
    337354                        wd->window=create_window(wd->fb.w,wd->fb.h); 
     355                        obj->window_id=wd->window; 
    338356                        if (wd->window!=NULL) SetWindowLongPtr(wd->window,GWLP_USERDATA,(LONG_PTR)obj); 
    339357                        else return FALSE; 
    340358                } 
    341         }else if (obj->window_id==0){ 
     359        }else if (!obj->use_external_window){ 
    342360                /* the window might need to be resized*/ 
    343361                RECT cur; 
     
    489507void ms_display_set_window_id(MSDisplay *d, long id){ 
    490508        d->window_id=id; 
     509        d->use_external_window=TRUE; 
    491510} 
    492511 
     
    828847} 
    829848 
     849static int video_out_get_native_window_id(MSFilter *f, void*arg){ 
     850        VideoOut *s=(VideoOut*)f->data; 
     851        unsigned long *id=(unsigned long*)arg; 
     852        *id=0; 
     853        if (s->display){ 
     854                *id=s->display->window_id; 
     855                return 0; 
     856        } 
     857        return -1; 
     858} 
     859 
    830860static MSFilterMethod methods[]={ 
    831861        {       MS_FILTER_SET_VIDEO_SIZE        ,       video_out_set_vsize }, 
     
    835865        {       MS_VIDEO_OUT_HANDLE_RESIZING    ,       video_out_handle_resizing}, 
    836866        {       MS_VIDEO_OUT_ENABLE_MIRRORING   ,       video_out_enable_mirroring}, 
     867        {       MS_VIDEO_OUT_GET_NATIVE_WINDOW_ID,      video_out_get_native_window_id}, 
    837868        {       0       ,NULL} 
    838869}; 
  • linphone/mediastreamer2/src/videostream.c

    r190 r213  
    346346} 
    347347 
     348unsigned long video_stream_get_native_window_id(VideoStream *stream){ 
     349        unsigned long id; 
     350        if (stream->output){ 
     351                if (ms_filter_call_method(stream->output,MS_VIDEO_OUT_GET_NATIVE_WINDOW_ID,&id)==0) 
     352                        return id; 
     353        } 
     354        return 0; 
     355} 
    348356 
    349357 
Note: See TracChangeset for help on using the changeset viewer.