]> git.sesse.net Git - vlc/blobdiff - modules/gui/wxwidgets/dialogs/infopanels.cpp
* Protect input item's meta through setters and getters. That allows tracking of...
[vlc] / modules / gui / wxwidgets / dialogs / infopanels.cpp
index 82c656f10a6ab6bc131402b3fd9241bc959f9210..20d6f6c94e27c4f504c6a9026ab724f55c542bac 100644 (file)
@@ -2,7 +2,7 @@
  * infopanels.cpp : Information panels (general info, stats, ...)
  *****************************************************************************
  * Copyright (C) 2000-2004 the VideoLAN team
- * $Id: iteminfo.cpp 13905 2006-01-12 23:10:04Z dionoea $
+ * $Id$
  *
  * Authors: ClĂ©ment Stenac <zorglub@videolan.org>
  *
@@ -98,6 +98,7 @@ MetaDataPanel::MetaDataPanel( intf_thread_t *_p_intf,
     ADD_META( VLC_META_LANGUAGE, language_text );
     ADD_META( VLC_META_NOW_PLAYING, nowplaying_text );
     ADD_META( VLC_META_PUBLISHER, publisher_text );
+    ADD_META( VLC_META_SETTING, setting_text );
 
     meta_sizer->Layout();
 
@@ -120,8 +121,7 @@ void MetaDataPanel::Update( input_item_t *p_item )
     name_text->SetValue( wxU( p_item->psz_name ) );
 
 #define UPDATE_META( meta, widget ) {                                       \
-    char *psz_meta = vlc_input_item_GetInfo( p_item, _(VLC_META_INFO_CAT),  \
-                                            _(meta) );                      \
+    const char *psz_meta = input_item_Get##meta( p_item );                  \
     if( psz_meta != NULL && *psz_meta)                                      \
     {                                                                       \
         widget->SetLabel( wxU( psz_meta ) );                                \
@@ -129,29 +129,30 @@ void MetaDataPanel::Update( input_item_t *p_item )
     else { widget->SetLabel( wxU( "-" ) ); }                                \
     }
 
-    UPDATE_META( VLC_META_ARTIST, artist_text );
-    UPDATE_META( VLC_META_GENRE, genre_text );
-    UPDATE_META( VLC_META_COPYRIGHT, copyright_text );
-    UPDATE_META( VLC_META_COLLECTION, collection_text );
-    UPDATE_META( VLC_META_SEQ_NUM, seqnum_text );
-    UPDATE_META( VLC_META_DESCRIPTION, description_text );
-    UPDATE_META( VLC_META_RATING, rating_text );
-    UPDATE_META( VLC_META_DATE, date_text );
-    UPDATE_META( VLC_META_LANGUAGE, language_text );
-    UPDATE_META( VLC_META_NOW_PLAYING, nowplaying_text );
-    UPDATE_META( VLC_META_PUBLISHER, publisher_text );
+    UPDATE_META( Artist, artist_text );
+    UPDATE_META( Genre, genre_text );
+    UPDATE_META( Copyright, copyright_text );
+    UPDATE_META( Album, collection_text );
+    UPDATE_META( TrackNum, seqnum_text );
+    UPDATE_META( Description, description_text );
+    UPDATE_META( Rating, rating_text );
+    UPDATE_META( Date, date_text );
+    UPDATE_META( Language, language_text );
+    UPDATE_META( NowPlaying, nowplaying_text );
+    UPDATE_META( Publisher, publisher_text );
+    UPDATE_META( Setting, setting_text );
 
 #undef UPDATE_META
 }
 
 char* MetaDataPanel::GetURI( )
 {
-    return  strdup( uri_text->GetLineText(0).mb_str() );
+    return  strdup( uri_text->GetLineText(0).mb_str(wxConvUTF8) );
 }
 
 char* MetaDataPanel::GetName( )
 {
-    return  strdup( name_text->GetLineText(0).mb_str() );
+    return  strdup( name_text->GetLineText(0).mb_str(wxConvUTF8) );
 }
 
 void MetaDataPanel::Clear()
@@ -177,7 +178,6 @@ AdvancedInfoPanel::AdvancedInfoPanel( intf_thread_t *_p_intf,
                                       wxWindow* _p_parent ):
     wxPanel( _p_parent, -1 )
 {
-    int flags= wxTE_PROCESS_ENTER;
     /* Initializations */
     p_intf = _p_intf;
     p_parent = _p_parent;
@@ -265,21 +265,21 @@ InputStatsInfoPanel::InputStatsInfoPanel( intf_thread_t *_p_intf,
                                               wxU( _("Input") ) );
     input_box->SetAutoLayout( TRUE );
     input_bsizer = new wxStaticBoxSizer( input_box, wxVERTICAL );
-    input_sizer = new wxFlexGridSizer( 2,2, 20 );
+    input_sizer = new wxFlexGridSizer( 4, 3, 2, 20 );
 
 #define INPUT_ADD(txt,widget,dflt) \
-    { input_sizer->Add ( new wxStaticText( this, -1, wxU(_( txt ) ) ),  \
-                         0, wxEXPAND| wxRIGHT, 5 );                     \
-      widget = new wxStaticText( this, -1, wxU( dflt ) );               \
-      input_sizer->Add( widget, 0, wxEXPAND| wxLEFT, 5  );              \
+    { input_sizer->Add ( new wxStaticText( this, -1, wxU(_( txt ) ) ),   \
+                         0, wxALIGN_LEFT|wxLEFT, 5 );           \
+      input_sizer->Add( 0, 0, wxEXPAND );                                \
+      widget = new wxStaticText( this, -1, wxU( dflt ), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );                \
+      input_sizer->Add( widget, 0, wxALIGN_RIGHT|wxRIGHT, 5  ); \
     }
 
     INPUT_ADD( "Read at media", read_bytes_text, "0" );
-    INPUT_ADD( "Input bitrate", input_bitrate_text, "0" );
+    INPUT_ADD( "Input bitrate", input_bitrate_text, "           0" );
 
     INPUT_ADD( "Demuxed", demux_bytes_text ,"0");
-    /* Hack to get enough size */
-    INPUT_ADD( "Stream bitrate", demux_bitrate_text, "0              " );
+    INPUT_ADD( "Stream bitrate", demux_bitrate_text, "0" );
 
     input_sizer->Layout();
     input_bsizer->Add( input_sizer, 0, wxALL | wxGROW, 5 );
@@ -287,22 +287,20 @@ InputStatsInfoPanel::InputStatsInfoPanel( intf_thread_t *_p_intf,
     sizer->Add( input_bsizer, 0, wxALL|wxGROW, 5 );
 
    /* Vout */
-    wxStaticBox *video_box = new wxStaticBox( this, -1,
-                                              wxU( _("Video" ) ) );
+    wxStaticBox *video_box = new wxStaticBox( this, -1, wxU( _("Video" ) ) );
     video_box->SetAutoLayout( TRUE );
-    video_bsizer = new wxStaticBoxSizer( video_box,
-                                                          wxVERTICAL );
-    video_sizer = new wxFlexGridSizer( 2,3, 20 );
+    video_bsizer = new wxStaticBoxSizer( video_box, wxVERTICAL );
+    video_sizer = new wxFlexGridSizer( 3, 3, 2, 20 );
 
 #define VIDEO_ADD(txt,widget,dflt) \
-    { video_sizer->Add ( new wxStaticText( this, -1, wxU(_( txt ) ) ),   \
-                         0, wxEXPAND|wxLEFT , 5  );                      \
-      widget = new wxStaticText( this, -1, wxU( dflt ) );                \
-      video_sizer->Add( widget, 0, wxEXPAND|wxRIGHT, 5 );                \
+    { video_sizer->Add ( new wxStaticText( this, -1, wxU(_( txt ) ) ),  \
+                         0, wxALIGN_LEFT|wxLEFT , 5  );        \
+      video_sizer->Add( 0, 0, wxEXPAND );                                \
+      widget = new wxStaticText( this, -1, wxU( dflt ), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );               \
+      video_sizer->Add( widget, 0, wxALIGN_RIGHT|wxRIGHT, 5 ); \
     }
     VIDEO_ADD( "Decoded blocks", video_decoded_text, "0" );
-    /* Hack to get enough size */
-    VIDEO_ADD( "Displayed frames", displayed_text, "0                  " );
+    VIDEO_ADD( "Displayed frames", displayed_text, "           0" );
     VIDEO_ADD( "Lost frames", lost_frames_text, "0" );
 
 
@@ -316,17 +314,18 @@ InputStatsInfoPanel::InputStatsInfoPanel( intf_thread_t *_p_intf,
                                               wxU( _("Streaming" ) ) );
     sout_box->SetAutoLayout( TRUE );
     sout_bsizer = new wxStaticBoxSizer( sout_box, wxVERTICAL );
-    sout_sizer = new wxFlexGridSizer( 2,3, 20 );
+    sout_sizer = new wxFlexGridSizer( 3, 3, 2, 20 );
 
 #define SOUT_ADD(txt,widget,dflt) \
-    { sout_sizer->Add ( new wxStaticText( this, -1, wxU(_( txt ) ) ),    \
-                         0, wxEXPAND|wxLEFT|wxALIGN_LEFT , 5  );         \
-      widget = new wxStaticText( this, -1, wxU( dflt ) );                \
-      sout_sizer->Add( widget, 0, wxEXPAND|wxRIGHT|wxALIGN_LEFT, 5 );   \
+    { sout_sizer->Add ( new wxStaticText( this, -1, wxU(_( txt ) ) ),  \
+                         0, wxALIGN_LEFT|wxLEFT, 5  );        \
+      sout_sizer->Add( 0, 0, wxEXPAND );                                \
+      widget = new wxStaticText( this, -1, wxU( dflt ), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );              \
+      sout_sizer->Add( widget, 0,wxALIGN_RIGHT|wxRIGHT, 5 ); \
     }
-    SOUT_ADD( "Sent packets", sout_sent_packets_text, "0" );
-    SOUT_ADD( "Sent bytes", sout_sent_bytes_text, "0          " );
-    SOUT_ADD( "Send rate", sout_send_bitrate_text, "0        " );
+    SOUT_ADD( "Sent packets", sout_sent_packets_text, "          0" );
+    SOUT_ADD( "Sent bytes", sout_sent_bytes_text, "0" );
+    SOUT_ADD( "Send rate", sout_send_bitrate_text, "0" );
     sout_sizer->Layout();
     sout_bsizer->Add( sout_sizer, 0, wxALL | wxGROW, 5 );
     sout_bsizer->Layout();
@@ -337,18 +336,17 @@ InputStatsInfoPanel::InputStatsInfoPanel( intf_thread_t *_p_intf,
                                               wxU( _("Audio" ) ) );
     audio_box->SetAutoLayout( TRUE );
     audio_bsizer = new wxStaticBoxSizer( audio_box, wxVERTICAL );
-    audio_sizer = new wxFlexGridSizer( 2,3, 20 );
+    audio_sizer = new wxFlexGridSizer( 3, 3, 2, 20 );
 
 #define AUDIO_ADD(txt,widget,dflt) \
     { audio_sizer->Add ( new wxStaticText( this, -1, wxU(_( txt ) ) ),   \
-                         0, wxEXPAND|wxLEFT , 5  );                      \
-      widget = new wxStaticText( this, -1, wxU( dflt ) );                \
-      audio_sizer->Add( widget, 0, wxEXPAND|wxRIGHT, 5 );                \
+                         0, wxALIGN_LEFT|wxLEFT, 5  );          \
+      audio_sizer->Add( 0, 0, wxEXPAND );                                \
+      widget = new wxStaticText( this, -1, wxU( dflt ), wxDefaultPosition, wxDefaultSize, wxALIGN_RIGHT );                \
+      audio_sizer->Add( widget, 0, wxALIGN_RIGHT|wxRIGHT, 5 );  \
     }
-    AUDIO_ADD( "Decoded blocks", audio_decoded_text, "0" );
-    /* Hack to get enough size */
-    AUDIO_ADD( "Played buffers", played_abuffers_text,
-                                 "0                  " );
+    AUDIO_ADD( "Decoded blocks", audio_decoded_text, "         0" );
+    AUDIO_ADD( "Played buffers", played_abuffers_text, "0" );
     AUDIO_ADD( "Lost buffers", lost_abuffers_text, "0" );
     audio_sizer->Layout();
     audio_bsizer->Add( audio_sizer, 0, wxALL | wxGROW, 5 );
@@ -376,9 +374,9 @@ void InputStatsInfoPanel::Update( input_item_t *p_item )
     formatted.Printf(  wxString( wxT(format) ), ## calc ); \
     widget->SetLabel( formatted );                      \
 }
-    UPDATE( read_bytes_text, "%8.0f kb",(float)(p_item->p_stats->i_read_bytes*8)/1000 );
+    UPDATE( read_bytes_text, "%8.0f kB",(float)(p_item->p_stats->i_read_bytes)/1000 );
     UPDATE( input_bitrate_text, "%6.0f kb/s", (float)(p_item->p_stats->f_input_bitrate)*8000 );
-    UPDATE( demux_bytes_text, "%8.0f kb", (float)(p_item->p_stats->i_demux_read_bytes*8)/1000 );
+    UPDATE( demux_bytes_text, "%8.0f kB", (float)(p_item->p_stats->i_demux_read_bytes)/1000 );
     UPDATE( demux_bitrate_text, "%6.0f kb/s",  (float)(p_item->p_stats->f_demux_bitrate)*8000 );
 
     /* Video */
@@ -388,8 +386,8 @@ void InputStatsInfoPanel::Update( input_item_t *p_item )
 
     /* Sout */
     UPDATE( sout_sent_packets_text, "%5i", p_item->p_stats->i_sent_packets );
-    UPDATE( sout_sent_bytes_text, "%8.0f kb",
-            (float)(p_item->p_stats->i_sent_bytes*8)/1000 );
+    UPDATE( sout_sent_bytes_text, "%8.0f kB",
+            (float)(p_item->p_stats->i_sent_bytes)/1000 );
     UPDATE( sout_send_bitrate_text, "%6.0f kb/s",
             (float)(p_item->p_stats->f_send_bitrate*8)*1000 );
 
@@ -402,6 +400,8 @@ void InputStatsInfoPanel::Update( input_item_t *p_item )
 
     input_sizer->Layout();
     video_sizer->Layout();
+    sout_sizer->Layout();
+    audio_sizer->Layout();
 
     sizer->Layout();
     panel_sizer->Layout();