/** * Fourth Panel - Stats * Displays the Statistics for reading/streaming/encoding/displaying in a tree */ InputStatsPanel::InputStatsPanel( QWidget *parent ): QWidget( parent ) { QVBoxLayout *layout = new QVBoxLayout(this); QLabel *topLabel = new QLabel( qtr( "Current" " media / stream " "statistics") ); topLabel->setWordWrap( true ); layout->addWidget( topLabel, 0, 0 ); StatsTree = new QTreeWidget(this); StatsTree->setColumnCount( 3 ); StatsTree->setHeaderHidden( true ); #define CREATE_TREE_ITEM( itemName, itemText, itemValue, unit ) { \ itemName = \ new QTreeWidgetItem((QStringList () << itemText << itemValue << unit )); \ itemName->setTextAlignment( 1 , Qt::AlignRight ) ; } #define CREATE_CATEGORY( catName, itemText ) { \ CREATE_TREE_ITEM( catName, itemText , "", "" ); \ catName->setExpanded( true ); \ StatsTree->addTopLevelItem( catName ); } #define CREATE_AND_ADD_TO_CAT( itemName, itemText, itemValue, catName, unit ){ \ CREATE_TREE_ITEM( itemName, itemText, itemValue, unit ); \ catName->addChild( itemName ); } /* Create the main categories */ CREATE_CATEGORY( audio, qtr("Audio") ); CREATE_CATEGORY( video, qtr("Video") ); CREATE_CATEGORY( input, qtr("Input/Read") ); CREATE_CATEGORY( streaming, qtr("Output/Written/Sent") ); CREATE_AND_ADD_TO_CAT( read_media_stat, qtr("Media data size"), "0", input , "KiB" ); CREATE_AND_ADD_TO_CAT( input_bitrate_stat, qtr("Input bitrate"), "0", input, "kb/s" ); input_bitrate_graph = new QTreeWidgetItem(); input_bitrate_stat->addChild( input_bitrate_graph ); CREATE_AND_ADD_TO_CAT( demuxed_stat, qtr("Demuxed data size"), "0", input, "KiB") ; CREATE_AND_ADD_TO_CAT( stream_bitrate_stat, qtr("Content bitrate"), "0", input, "kb/s" ); CREATE_AND_ADD_TO_CAT( corrupted_stat, qtr("Discarded (corrupted)"), "0", input, "" ); CREATE_AND_ADD_TO_CAT( discontinuity_stat, qtr("Dropped (discontinued)"), "0", input, "" ); CREATE_AND_ADD_TO_CAT( vdecoded_stat, qtr("Decoded"), "0", video, qtr("blocks") ); CREATE_AND_ADD_TO_CAT( vdisplayed_stat, qtr("Displayed"), "0", video, qtr("frames") ); CREATE_AND_ADD_TO_CAT( vlost_frames_stat, qtr("Lost"), "0", video, qtr("frames") ); CREATE_AND_ADD_TO_CAT( send_stat, qtr("Sent"), "0", streaming, qtr("packets") ); CREATE_AND_ADD_TO_CAT( send_bytes_stat, qtr("Sent"), "0", streaming, "KiB" ); CREATE_AND_ADD_TO_CAT( send_bitrate_stat, qtr("Upstream rate"), "0", streaming, "kb/s" ); CREATE_AND_ADD_TO_CAT( adecoded_stat, qtr("Decoded"), "0", audio, qtr("blocks") ); CREATE_AND_ADD_TO_CAT( aplayed_stat, qtr("Played"), "0", audio, qtr("buffers") ); CREATE_AND_ADD_TO_CAT( alost_stat, qtr("Lost"), "0", audio, qtr("buffers") ); #undef CREATE_AND_ADD_TO_CAT #undef CREATE_CATEGORY #undef CREATE_TREE_ITEM input->setExpanded( true ); video->setExpanded( true ); streaming->setExpanded( true ); audio->setExpanded( true ); StatsTree->resizeColumnToContents( 0 ); StatsTree->setColumnWidth( 1 , 200 ); layout->addWidget(StatsTree, 4, 0 ); statsView = new VLCStatsView( this ); statsView->setFrameStyle( QFrame::NoFrame ); statsView->setSizePolicy( QSizePolicy::Preferred, QSizePolicy::Fixed ); input_bitrate_graph->setSizeHint( 1, QSize(0, 100) ); QString graphlabel = QString( "<font style=\"color:#ff8c00\">%1</font><br/>%2" ) .arg( qtr("Last 60 seconds") ) .arg( qtr("Overall") ); StatsTree->setItemWidget( input_bitrate_graph, 0, new QLabel( graphlabel ) ); StatsTree->setItemWidget( input_bitrate_graph, 1, statsView ); }
/** * Fourth Panel - Stats * Displays the Statistics for reading/streaming/encoding/displaying in a tree */ InputStatsPanel::InputStatsPanel( QWidget *parent, intf_thread_t *_p_intf ) : QWidget( parent ), p_intf( _p_intf ) { QGridLayout *layout = new QGridLayout(this); QList<QTreeWidgetItem *> items; QLabel *topLabel = new QLabel( qtr( "Current" " media / stream " "statistics") ); topLabel->setWordWrap( true ); layout->addWidget( topLabel, 0, 0 ); StatsTree = new QTreeWidget(this); StatsTree->setColumnCount( 3 ); StatsTree->header()->hide(); #define CREATE_TREE_ITEM( itemName, itemText, itemValue, unit ) { \ itemName = \ new QTreeWidgetItem((QStringList () << itemText << itemValue << unit )); \ itemName->setTextAlignment( 1 , Qt::AlignRight ) ; } #define CREATE_CATEGORY( catName, itemText ) { \ CREATE_TREE_ITEM( catName, itemText , "", "" ); \ catName->setExpanded( true ); \ StatsTree->addTopLevelItem( catName ); } #define CREATE_AND_ADD_TO_CAT( itemName, itemText, itemValue, catName, unit ){ \ CREATE_TREE_ITEM( itemName, itemText, itemValue, unit ); \ catName->addChild( itemName ); } /* Create the main categories */ CREATE_CATEGORY( audio, qtr("Audio") ); CREATE_CATEGORY( video, qtr("Video") ); CREATE_CATEGORY( input, qtr("Input/Read") ); CREATE_CATEGORY( streaming, qtr("Output/Written/Sent") ); CREATE_AND_ADD_TO_CAT( read_media_stat, qtr("Media data size"), "0", input , "KiB" ); CREATE_AND_ADD_TO_CAT( input_bitrate_stat, qtr("Input bitrate"), "0", input, "kb/s" ); CREATE_AND_ADD_TO_CAT( demuxed_stat, qtr("Demuxed data size"), "0", input, "KiB") ; CREATE_AND_ADD_TO_CAT( stream_bitrate_stat, qtr("Content bitrate"), "0", input, "kb/s" ); CREATE_AND_ADD_TO_CAT( corrupted_stat, qtr("Discarded (corrupted)"), "0", input, "" ); CREATE_AND_ADD_TO_CAT( discontinuity_stat, qtr("Dropped (discontinued)"), "0", input, "" ); CREATE_AND_ADD_TO_CAT( vdecoded_stat, qtr("Decoded"), "0", video, qtr("blocks") ); CREATE_AND_ADD_TO_CAT( vdisplayed_stat, qtr("Displayed"), "0", video, qtr("frames") ); CREATE_AND_ADD_TO_CAT( vlost_frames_stat, qtr("Lost"), "0", video, qtr("frames") ); CREATE_AND_ADD_TO_CAT( send_stat, qtr("Sent"), "0", streaming, qtr("packets") ); CREATE_AND_ADD_TO_CAT( send_bytes_stat, qtr("Sent"), "0", streaming, "KiB" ); CREATE_AND_ADD_TO_CAT( send_bitrate_stat, qtr("Upstream rate"), "0", streaming, "kb/s" ); CREATE_AND_ADD_TO_CAT( adecoded_stat, qtr("Decoded"), "0", audio, qtr("blocks") ); CREATE_AND_ADD_TO_CAT( aplayed_stat, qtr("Played"), "0", audio, qtr("buffers") ); CREATE_AND_ADD_TO_CAT( alost_stat, qtr("Lost"), "0", audio, qtr("buffers") ); #undef CREATE_AND_ADD_TO_CAT #undef CREATE_CATEGORY #undef CREATE_TREE_ITEM input->setExpanded( true ); video->setExpanded( true ); streaming->setExpanded( true ); audio->setExpanded( true ); StatsTree->resizeColumnToContents( 0 ); StatsTree->setColumnWidth( 1 , 200 ); layout->addWidget(StatsTree, 1, 0 ); }