亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? track.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統中運行的音頻播放器軟件。 經過兩年開發后
?? CPP
字號:
/***************************************************************************                          track.cpp  -  description                             -------------------    begin                : 2001-10-13    copyright            : (C) 2001 by Shaun Jackman (sjackman@debian.org)    modify by            : Andres Oton    email                : andres.oton@gmail.com ***************************************************************************//*************************************************************************** *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License as published by  * *   the Free Software Foundation; either version 2 of the License, or     * *   (at your option) any later version.                                   * *                                                                         * ***************************************************************************/static const char* rcsid __attribute__((unused)) ="$Id: track.cpp,v 1.10.2.8 2005/07/05 00:25:09 acejones Exp $";#include "debug.h"#include "track.h"#include "njbmediadevice.h"#include <qregexp.h>#include <qptrlist.h>#include <klocale.h>/* ------------------------------------------------------------------------ */NjbTrack::NjbTrack( njb_songid_t* song){    njb_songid_frame_t* frame;    m_id = song->trid;    MetaBundle *bundle = new MetaBundle();    frame = NJB_Songid_Findframe( song, FR_SIZE );    if ( frame->type == NJB_TYPE_UINT32 )        bundle->setFilesize( frame->data.u_int32_val );    else    {        bundle->setFilesize( 0 );    error() << " Unexpected frame type:" << frame->type << endl;    }    frame = NJB_Songid_Findframe( song, FR_LENGTH );    if ( frame->type == NJB_TYPE_UINT16 )        bundle->setLength( frame->data.u_int16_val );    else    {        bundle->setLength( 0 );    error() << " Unexpected frame type:" << frame->type << endl;    }    frame = NJB_Songid_Findframe( song, FR_GENRE );    if( frame )    {        bundle->setGenre( AtomicString( frame->data.strval ) );    }    frame = NJB_Songid_Findframe( song, FR_ARTIST );    if( frame )    {        QString artist = QString::fromUtf8( frame->data.strval );        artist.replace( QRegExp( "/" ), "-" );        bundle->setArtist( artist );    }    else        bundle->setArtist( i18n("Unknown artist") );    frame = NJB_Songid_Findframe( song, FR_ALBUM );    if( frame)    {        QString album = QString::fromUtf8( frame->data.strval );        album.replace( QRegExp( "/" ), "-" );        bundle->setAlbum( album );    }    else        bundle->setAlbum( i18n("Unknown album") );    frame = NJB_Songid_Findframe( song, FR_TITLE);    if( frame )    {        QString title = QString::fromUtf8( frame->data.strval );        title.replace( QRegExp( "/"), "-");        bundle->setTitle( title );    }    else        bundle->setTitle( i18n("Unknown title") );    frame = NJB_Songid_Findframe( song, FR_TRACK );    if( frame )    {        switch ( frame->type )        {        case NJB_TYPE_UINT16:            bundle->setTrack( frame->data.u_int16_val );            break;        case NJB_TYPE_UINT32:            bundle->setTrack( frame->data.u_int32_val );            break;        case NJB_TYPE_STRING:            bundle->setTrack( QString::fromUtf8(frame->data.strval).toUInt() );            break;        default:            bundle->setTrack( 0 );        }    }    QString codec;    frame = NJB_Songid_Findframe( song, FR_CODEC);    if( frame )    {        codec = QCString( frame->data.strval).lower();        if( codec == "mp3" )            bundle->setFileType( MetaBundle::mp3 );        else if (codec == "wma" )            bundle->setFileType( MetaBundle::wma );        else            bundle->setFileType( MetaBundle::other ); // It's a wav...    }    else    {        bundle->setFileType( MetaBundle::mp3 ); //Assumed...        codec = "mp3"; // Used for the next frame as a fallback    }    frame = NJB_Songid_Findframe( song, FR_FNAME );    QString filename;    if( frame )    {        //bundle->setUrl( KURL( frame->data.strval ) );        filename = QString::fromUtf8( frame->data.strval );    }    if( filename.isEmpty() )    {        //bundle->setUrl( bundle->artist() + " - " + bundle->title() + '.' + codec );        filename = bundle->artist() + " - " + bundle->title() + '.' + codec;    }    bundle->setPath( filename );    frame = NJB_Songid_Findframe( song, FR_YEAR );    if( frame )    {        switch ( frame->type )        {        case NJB_TYPE_UINT16:            bundle->setYear( frame->data.u_int16_val );            break;        case NJB_TYPE_UINT32:            bundle->setYear( frame->data.u_int32_val );            break;        case NJB_TYPE_STRING:            bundle->setYear( QString::fromUtf8( frame->data.strval ).toInt() );            break;        default:            bundle->setYear( 0 );        }    }    this->setBundle( *bundle );}NjbTrack::~NjbTrack(){    ItemList.setAutoDelete( true );    while( ItemList.count() > 0 )    {        delete ItemList.first();    }}voidNjbTrack::writeToSongid( njb_songid_t *songid ){    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Filename( m_bundle.filename().utf8() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Filesize( m_bundle.filesize() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Codec( "mp3" ) ); //for now    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Title( m_bundle.title().utf8() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Album( m_bundle.album().ptr()->utf8() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Genre( m_bundle.genre().ptr()->utf8() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Artist( m_bundle.artist().ptr()->utf8() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Length( m_bundle.length() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Tracknum( m_bundle.track() ) );    NJB_Songid_Addframe( songid, NJB_Songid_Frame_New_Year( m_bundle.year() ) );}njb_songid_t *NjbTrack::newSongid(){    njb_songid_t *songid = new njb_songid_t;    writeToSongid( songid );    return songid;}voidNjbTrack::setBundle( MetaBundle &bundle ){    if( bundle.title().isEmpty() )        bundle.setTitle( i18n( "Unknown title" ) );    if( bundle.artist().isEmpty() )        bundle.setArtist( i18n( "Unknown artist" ) );    if( bundle.album().isEmpty() )        bundle.setAlbum( i18n( "Unknown album" ) );    if( bundle.genre().isEmpty() )        bundle.setGenre( i18n( "Unknown genre" ) );    m_bundle = bundle;}voidNjbTrack::addItem( const NjbMediaItem *item ){    ItemList.append( item );}boolNjbTrack::removeItem( const NjbMediaItem *item ){    ItemList.remove( item );    debug() << "Removed item\n";    return ItemList.isEmpty();}/* ------------------------------------------------------------------------ */trackValueList::iteratortrackValueList::findTrackByName( const QString& _filename ){    trackValueList::iterator it;    for( it = begin(); it != end(); it++)        if( (*it)->bundle()->url().path() == _filename)            break;    return it;}/* ------------------------------------------------------------------------ */trackValueList::iteratortrackValueList::findTrackById( unsigned _id ){    trackValueList::iterator it;    for( it = begin(); it != end(); it++)        if( (*it)->id() == _id)            break;    return it;}/* ------------------------------------------------------------------------ */trackValueList::const_iteratortrackValueList::findTrackById( unsigned _id ) const{    trackValueList::const_iterator it;    for( it = begin(); it != end(); it++)        if( (*it)->id() == _id)            break;    return it;}/* ------------------------------------------------------------------------ *//** Transfer musical info from the njb to local structures */inttrackValueList::readFromDevice( void ){    int i = 0;    // Don't get extended metadatas    NJB_Get_Extended_Tags(NjbMediaDevice::theNjb(), 0);    NJB_Reset_Get_Track_Tag( NjbMediaDevice::theNjb());    while( njb_songid_t* song = NJB_Get_Track_Tag( NjbMediaDevice::theNjb()))    {        NjbTrack *track = new NjbTrack( song );        append( track );        NJB_Songid_Destroy( song );        ++i;    }    debug() << ": " << i << " jukebox tracks loaded from device." << endl;    return NJB_SUCCESS;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩一区二区三| 日本一区二区免费在线| av爱爱亚洲一区| 国产综合久久久久久久久久久久| 国产拍揄自揄精品视频麻豆| 欧美欧美午夜aⅴ在线观看| 日韩激情一二三区| 国产视频一区二区三区在线观看| 欧美日本一区二区三区| 欧美性videosxxxxx| 94-欧美-setu| 成人动漫一区二区| 国产精品一区在线| 亚洲电影一级片| 一区二区三区美女| 国产精品免费久久久久| 日韩精品在线一区二区| 91麻豆高清视频| proumb性欧美在线观看| 国产91富婆露脸刺激对白| 老司机精品视频线观看86| 日本亚洲天堂网| 日本午夜精品一区二区三区电影| 午夜久久电影网| 香蕉av福利精品导航| 亚洲欧美精品午睡沙发| 亚洲欧美国产毛片在线| 日韩码欧中文字| 中文字幕中文乱码欧美一区二区 | 石原莉奈一区二区三区在线观看| 亚洲综合色噜噜狠狠| 午夜成人免费视频| 韩日欧美一区二区三区| 粉嫩高潮美女一区二区三区| 国产精品99久久久久| 久久成人麻豆午夜电影| 成人国产亚洲欧美成人综合网| 韩国理伦片一区二区三区在线播放| 午夜成人在线视频| 琪琪久久久久日韩精品| 成人涩涩免费视频| 在线观看日产精品| 久久尤物电影视频在线观看| 精品乱码亚洲一区二区不卡| 精品国产伦一区二区三区观看方式 | 国产91在线看| 4hu四虎永久在线影院成人| 久久精品人人做人人爽人人| 亚洲久草在线视频| 久久精品久久99精品久久| av电影在线观看一区| 日韩三级中文字幕| 亚洲免费观看在线观看| 精品亚洲porn| 欧美性xxxxx极品少妇| 日本一区二区免费在线| 日本伊人午夜精品| 91精彩视频在线观看| 久久综合网色—综合色88| 国产精品视频九色porn| 香蕉影视欧美成人| 欧美在线免费观看亚洲| 2023国产精品视频| 免费高清在线一区| 欧美日韩一区二区在线视频| 国产欧美一区二区精品忘忧草 | 中文字幕在线不卡一区| 国产精品自在欧美一区| 精品人伦一区二区色婷婷| 午夜欧美视频在线观看| 91精品国产免费| 午夜激情久久久| 91精品国产综合久久精品| 午夜免费久久看| 在线播放视频一区| 青青青伊人色综合久久| 91精品国产美女浴室洗澡无遮挡| 午夜电影久久久| 欧美一区二区三区喷汁尤物| 蜜臂av日日欢夜夜爽一区| 精品日韩在线一区| 国产精品自拍av| 亚洲欧美日韩国产综合| 日本黄色一区二区| 亚洲电影你懂得| 韩国三级中文字幕hd久久精品| 日韩精品中文字幕一区二区三区 | 国产精品18久久久久久久久久久久| 欧美成人欧美edvon| 国产盗摄一区二区| 亚洲欧美日韩在线| 日韩一区二区麻豆国产| 国产专区欧美精品| 亚洲精品一二三区| 日韩精品一区二区三区在线播放| 狠狠色狠狠色综合| 一区二区欧美精品| 久久久午夜精品| 欧美乱熟臀69xxxxxx| 国产很黄免费观看久久| 洋洋av久久久久久久一区| 欧美变态tickling挠脚心| 成人va在线观看| 国产一区二区三区观看| 一区二区三区精品视频| 欧美国产日韩a欧美在线观看 | 亚洲成人在线观看视频| 国产精品人成在线观看免费| 51午夜精品国产| 日本高清免费不卡视频| 国产成人高清在线| 精品一区二区三区免费| 青青草国产精品97视觉盛宴| 亚洲一区免费观看| 亚洲欧美另类综合偷拍| 中文字幕免费一区| 国产午夜精品一区二区三区视频| 欧美顶级少妇做爰| 欧美精品在线观看播放| 91久久国产综合久久| 成人黄色a**站在线观看| 久久国产麻豆精品| 成人黄色av电影| 欧美一级夜夜爽| 综合久久一区二区三区| 日韩电影免费在线观看网站| 精品夜夜嗨av一区二区三区| 精品一区中文字幕| 在线观看日韩高清av| 日本一区二区三区免费乱视频| 亚洲福利电影网| 99v久久综合狠狠综合久久| 欧美日本一道本| 亚洲人亚洲人成电影网站色| 老司机精品视频线观看86| 在线视频观看一区| 中文一区二区在线观看| 欧美aaa在线| 555夜色666亚洲国产免| 国产精品国产三级国产aⅴ入口 | 久久久久久一二三区| 99精品国产视频| 久久久精品人体av艺术| 一区二区三区免费看视频| 日韩中文字幕91| 精品一区二区三区在线视频| 粉嫩欧美一区二区三区高清影视 | 人妖欧美一区二区| 国产精品亚洲第一| 欧美性色欧美a在线播放| 久久久精品国产免大香伊| 一区二区成人在线视频| 久久国产成人午夜av影院| 色综合久久综合网欧美综合网| 91精品国产高清一区二区三区| 国产欧美日韩卡一| 九九精品一区二区| 欧美日韩国产成人在线免费| 亚洲欧美综合另类在线卡通| 狠狠色狠狠色合久久伊人| 欧美久久一二区| 亚洲美女少妇撒尿| 成人永久免费视频| 2024国产精品| 韩国毛片一区二区三区| 欧美巨大另类极品videosbest | 亚洲欧美日韩在线不卡| 国产精品一区二区无线| 97久久超碰精品国产| 日韩一级视频免费观看在线| 国产精品久久久久久亚洲伦| 精品一区二区成人精品| 色香蕉久久蜜桃| 精品国产乱码91久久久久久网站| 一区二区三区四区视频精品免费| 精品一区二区精品| 日韩一区二区三区在线观看| 亚洲永久精品国产| 一本一道久久a久久精品综合蜜臀| 亚洲国产精品av| 99vv1com这只有精品| 亚洲永久精品国产| 91精品国产综合久久蜜臀 | 日本最新不卡在线| 精品国产伦一区二区三区观看体验| 看电视剧不卡顿的网站| 欧美xxxxx牲另类人与| 黄色精品一二区| 国产精品久久久久久久久久免费看 | 亚洲一区二区精品3399| 欧美一级在线免费| 国产一区二区中文字幕| 亚洲色图19p| 日韩一区二区中文字幕| 国产乱码精品一区二区三区av| 一区在线中文字幕| 欧美另类z0zxhd电影| 成人免费高清视频| 亚洲3atv精品一区二区三区| 337p粉嫩大胆色噜噜噜噜亚洲|