diff options
Diffstat (limited to 'src/app/theStream.cpp')
-rw-r--r-- | src/app/theStream.cpp | 85 |
1 files changed, 29 insertions, 56 deletions
diff --git a/src/app/theStream.cpp b/src/app/theStream.cpp index 3f7e35a..09005f9 100644 --- a/src/app/theStream.cpp +++ b/src/app/theStream.cpp @@ -76,69 +76,42 @@ namespace Codeine return url.prettyURL(); } - - static inline TQString - entryHelper( const TQString &plate, const TQString &s1, const TQString &s2 ) + TQMap<MetaData, TQString> TheStream::metaData() { - return s2.isEmpty() ? s2 : plate.arg( s1 ).arg( s2 ); - } +#define xmeta(x) xine_get_meta_info(e->m_stream, (x)) - static inline TQString - sectionHelper( const TQString §ionTitle, const TQStringList &entries ) - { - TQString s; + TQMap<MetaData, TQString> data; - foreach( entries ) - if( !(*it).isEmpty() ) - s += *it; + data[MetaData::Title] = xmeta(XINE_META_INFO_TITLE); + data[MetaData::Comment] = xmeta(XINE_META_INFO_COMMENT); + data[MetaData::Artist] = xmeta(XINE_META_INFO_ARTIST); + data[MetaData::Genre] = xmeta(XINE_META_INFO_GENRE); + data[MetaData::Album] = xmeta(XINE_META_INFO_ALBUM); + data[MetaData::Year] = xmeta(XINE_META_INFO_YEAR); + data[MetaData::VideoCodec] = xmeta(XINE_META_INFO_VIDEOCODEC); + data[MetaData::AudioCodec] = xmeta(XINE_META_INFO_AUDIOCODEC); - return s.isEmpty() ? s : "<h2>" + sectionTitle + "</h2>" + s; + return data; + +#undef xmeta } - TQString - TheStream::information() + TQMap<StreamInfo, TQString> TheStream::info() { - #define meta( x ) xine_get_meta_info( e->m_stream, x ) - #define info( x, y ) x.arg( xine_get_stream_info( e->m_stream, y ) ) - #define simple( x ) TQString::number( xine_get_stream_info( e->m_stream, x ) ) - - const TQString plate = "<p><b>%1</b>: %2</p>"; - TQString s; - - s += sectionHelper( i18n("Metadata"), - TQStringList() - << entryHelper( plate, i18n("Title"), meta( XINE_META_INFO_TITLE ) ) - << entryHelper( plate, i18n("Comment"), meta( XINE_META_INFO_COMMENT ) ) - << entryHelper( plate, i18n("Artist"), meta( XINE_META_INFO_ARTIST ) ) - << entryHelper( plate, i18n("Genre"), meta( XINE_META_INFO_GENRE ) ) - << entryHelper( plate, i18n("Album"), meta( XINE_META_INFO_ALBUM ) ) - << entryHelper( plate, i18n("Year"), meta( XINE_META_INFO_YEAR ) ) ); - - s += sectionHelper( i18n("Audio Properties"), - TQStringList() - << entryHelper( plate, i18n("Bitrate"), info( i18n("%1 bps"), XINE_STREAM_INFO_AUDIO_BITRATE ) ) - << entryHelper( plate, i18n("Sample-rate"), info( i18n("%1 Hz"), XINE_STREAM_INFO_AUDIO_SAMPLERATE ) ) ); - - s += sectionHelper( i18n("Technical Information"), - TQStringList() - << entryHelper( plate, i18n("Video Codec"), meta( XINE_META_INFO_VIDEOCODEC ) ) - << entryHelper( plate, i18n("Audio Codec"), meta( XINE_META_INFO_AUDIOCODEC ) ) - << entryHelper( plate, i18n("System Layer"), meta( XINE_META_INFO_SYSTEMLAYER ) ) - << entryHelper( plate, i18n("Input Plugin"), meta( XINE_META_INFO_INPUT_PLUGIN )) - << entryHelper( plate, i18n("CDINDEX_DISCID"), meta( XINE_META_INFO_CDINDEX_DISCID ) ) ); - - TQStringList texts; - texts << "BITRATE" << "SEEKABLE" << "VIDEO_WIDTH" << "VIDEO_HEIGHT" << "VIDEO_RATIO" << "VIDEO_CHANNELS" << "VIDEO_STREAMS" << "VIDEO_BITRATE" << "VIDEO_FOURCC" << "VIDEO_HANDLED" << "FRAME_DURATION" << "AUDIO_CHANNELS" << "AUDIO_BITS" << "-AUDIO_SAMPLERATE" << "-AUDIO_BITRATE" << "AUDIO_FOURCC" << "AUDIO_HANDLED" << "HAS_CHAPTERS" << "HAS_VIDEO" << "HAS_AUDIO" << "-IGNORE_VIDEO" << "-IGNORE_AUDIO" << "-IGNORE_SPU" << "VIDEO_HAS_STILL" << "MAX_AUDIO_CHANNEL" << "MAX_SPU_CHANNEL" << "AUDIO_MODE" << "SKIPPED_FRAMES" << "DISCARDED_FRAMES"; - - s += "<h2>Other</h2>"; - for( uint x = 0; x <= 28; ++x ) - s += entryHelper( plate, texts[x], simple( x ) ); - - #undef meta - #undef info - #undef simple - - return s; +#define xinfo(x) TQString::number(xine_get_stream_info(e->m_stream, (x))) + + TQMap<StreamInfo, TQString> data; + + data[StreamInfo::VideoWidth] = xinfo(XINE_STREAM_INFO_VIDEO_WIDTH); + data[StreamInfo::VideoHeight] = xinfo(XINE_STREAM_INFO_VIDEO_HEIGHT); + data[StreamInfo::VideoBitRate] = xinfo(XINE_STREAM_INFO_VIDEO_BITRATE); + data[StreamInfo::AudioBits] = xinfo(XINE_STREAM_INFO_AUDIO_BITS); + data[StreamInfo::AudioSampleRate] = xinfo(XINE_STREAM_INFO_AUDIO_SAMPLERATE); + data[StreamInfo::AudioBitRate] = xinfo(XINE_STREAM_INFO_AUDIO_BITRATE); + + return data; + +#undef xinfo } #undef e |