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

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

?? loader.cpp

?? Amarok是一款在LINUX或其他類UNIX操作系統中運行的音頻播放器軟件。 經過兩年開發后
?? CPP
字號:
/***************************************************************************                        loader.cpp  -  loader application for Amarok                           -------------------  begin                : 2004/02/19  copyright            : (C) 2004 by Mark Kretschmann  email                : markey@web.de***************************************************************************//*************************************************************************** *                                                                         * *   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.                                   * *                                                                         * ***************************************************************************/#include <cstdlib>#include <iostream>#include "loader.h"#include <qfile.h>#include <qmessagebox.h>#include <qprocess.h>#include <qstring.h>#include <kinstance.h>#include <kglobal.h>#include <kstandarddirs.h>#include <ksplashscreen.h>extern "C"{    #include <unistd.h> //usleep}intmain( int argc, char *argv[] ){    //NOTE this list doesn't include argv[0] ("amarok")    QStringList args;    for( int i = 1; i < argc; i++ )        args += QString::fromLocal8Bit(argv[i]);    const bool isRunning = amarokIsRunning();    // first check the arguments, we don't need a splashscreen    // for arguments like --help, --version, etc.    if( !args.isEmpty() )    {        // These arguments cannot be passed to Amarok, or Amarok will exit        // after processing them.        QStringList longs; longs                << "-help" << "-help-qt" << "-help-kde" << "-help-all" << "-author" << "-version" << "-license" << "-v";        // both --arg and -arg are valid        {            QStringList longlongs;            foreach( longs )                longlongs += QChar('-') + *it;            longs += longlongs;        }        foreach( args ) {            const QString arg = *it;            foreach( longs )                if( arg == *it ) {                    // this argument cannot be passed to the running amarokapp                    // or KCmdLineArgs would exit the application                    QProcess proc( QString("amarokapp") );                    proc.setCommunication( 0 ); //show everything                    proc.addArgument( arg );                    proc.start();                    while( proc.isRunning() )                        ::usleep( 100 );                    return 0; //exit success!                }        }        // these arguments are deemed safe for dcop, but if        // there is no amarokapp running, we'll start a new        // instance and the above checks were not necessary    }    if ( isRunning ) {        QStringList dcop_args;        dcop_args << "dcop" << "amarok" << "player" << "transferCliArgs" << "[";        // We transmit our DESKTOP_STARTUP_ID, so amarokapp can stop the startup animation        dcop_args += std::getenv( "DESKTOP_STARTUP_ID" ); //will be interptreted as latin1        // relative URLs should be interpreted correctly by amarokapp        // so we need to pass the current working directory        dcop_args << "--cwd" << QDir::currentDirPath();        dcop_args += args;        dcop_args += "]";        QProcess proc( dcop_args );        proc.start();        while( proc.isRunning() )            ::usleep( 100 );        return 0;    }    else {        // no amarokapp is running, start one, show        // a splashscreen and pass it the arguments        return Loader( args ).exec();    }}boolamarokIsRunning(){    QProcess proc( QString( "dcop" ) );    proc.start();    while( proc.isRunning() )        ::usleep( 100 );    while( proc.canReadLineStdout() )        if ( proc.readLineStdout() == "amarok" )            return true;    return false;}static int _argc = 0;Loader::Loader( QStringList args )        : QApplication( _argc, 0 )        , m_counter( 0 )        , m_splash( 0 ){    // we transmit the startup_id, so amarokapp can stop the startup animation    //FIXME QCString str( ::getenv( "DESKTOP_STARTUP_ID" ) );     if( !QApplication::isSessionRestored())     {        KInstance instance("amarok"); // KGlobal::dirs() crashes without        if( isSplashEnabled() )        {            m_splash = new KSplashScreen( QPixmap( KStandardDirs().findResource("data", "amarok/images/splash_screen.jpg")));            m_splash->show();        }     }    args.prepend( "amarokapp" );    m_proc = new QProcess( args, this );    m_proc->setCommunication( QProcess::Stdout );    std::cout << "Amarok: [Loader] Starting amarokapp..\n";    std::cout << "Amarok: [Loader] Don't run gdb, valgrind, etc. against this binary! Use amarokapp.\n";    if( !m_proc->start() )    {        delete m_splash; // hide the splash        QMessageBox::critical( 0, "Amarok",                "Amarok could not be started!\n" //FIXME this needs to be translated                    "This may be because the amarokapp binary is not in your PATH.\n"                    "Try locating and running amarokapp from a terminal.",                QMessageBox::Ok, 0 );        std::exit( 1 ); //event-loop is not yet being processed    }    startTimer( INTERVAL );}Loader::~Loader(){    // must be deleted before QApplication closes our Xserver connection    // thus we cannot make it a child of the QApplication and must    // delete it manually    delete m_splash;}voidLoader::timerEvent( QTimerEvent* ){    if( m_proc->isRunning() )    {         if( ++m_counter == (30000 / INTERVAL) )             // 30 seconds have passed             std::cerr << "Amarok: [Loader] Amarok is taking a long time to load! Perhaps something has gone wrong?\n";        while( m_proc->canReadLineStdout() )            if( m_proc->readLineStdout() == "STARTUP" )                QApplication::exit( 0 );    }    else if( !m_proc->normalExit() ) {        // no reason to show messagebox, as amarokapp should start drkonqi        std::cerr << "Amarok: [Loader] amarokapp probably crashed!\n";        QApplication::exit( 3 );    }    else        // if we get here, then either we didn't receive STARTUP through        // the pipe, or amarokapp exited normally before the STARTUP was        // written to stdout (possibly possible)        QApplication::exit( 0 );}boolisSplashEnabled(){    //determine whether splash-screen is enabled in amarokrc    (void)KGlobal::config(); // the kubuntu special directory is not present without this    QStringList dirs = KGlobal::dirs()->findAllResources( "config", "amarokrc" );    for( QStringList::iterator path = dirs.begin();            path != dirs.end();            ++path )    {        QFile file( *path );        if ( file.open( IO_ReadOnly ) )        {            QString line;            while( file.readLine( line, 2000 ) != -1 )                if ( line.contains( "Show Splashscreen" ) )                {                    if( line.contains( "false" ) )                        return false;                    else                        return true;                }        }    }    //if we fail to open anything, just show the splash    return true;}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
日韩欧美国产综合一区| 欧美高清视频在线高清观看mv色露露十八 | 亚洲综合在线电影| 亚洲婷婷综合久久一本伊一区| 精品国精品国产| 久久精品亚洲国产奇米99| 久久久国产一区二区三区四区小说| 精品国内二区三区| 久久婷婷色综合| 国产精品灌醉下药二区| |精品福利一区二区三区| 亚洲另类春色校园小说| 亚洲国产日韩一级| 久久精品国产99| 国产精品一品二品| 91麻豆123| 日韩欧美一区在线| 国产欧美综合在线| 亚洲女厕所小便bbb| 日韩二区三区在线观看| 国产一区二区影院| 在线观看网站黄不卡| 欧美一区二区国产| 中文字幕电影一区| 亚洲午夜电影在线| 国产麻豆精品久久一二三| 不卡的av电影在线观看| 欧美二区三区的天堂| 国产视频911| 午夜久久久影院| 欧美日韩1区2区| 欧美一级一区二区| 国产精品久线观看视频| 三级久久三级久久久| 国产一区美女在线| 欧美美女直播网站| 国产精品人人做人人爽人人添| 亚洲国产精品久久人人爱蜜臀| 久久99精品国产91久久来源| 91麻豆国产福利在线观看| 日韩午夜小视频| 一区二区三区精品| 成人激情视频网站| 日韩一级欧美一级| 一区二区三区四区不卡视频| 紧缚捆绑精品一区二区| 欧美剧情片在线观看| 国产精品久久久久久久久免费樱桃 | 日韩av在线免费观看不卡| 国产成人午夜99999| 欧美日韩一区高清| ㊣最新国产の精品bt伙计久久| 免费看日韩精品| 欧美色倩网站大全免费| 国产精品久久一卡二卡| 国产在线观看免费一区| 在线播放日韩导航| 一区二区三区欧美在线观看| 成人性生交大片免费| 欧美mv和日韩mv国产网站| 亚洲国产你懂的| 在线看国产一区| 亚洲免费色视频| 91年精品国产| 亚洲色欲色欲www| 风间由美中文字幕在线看视频国产欧美| 宅男在线国产精品| 首页欧美精品中文字幕| 欧美日韩国产另类不卡| 亚洲一区免费观看| 欧美影院一区二区三区| 亚洲综合成人在线| 欧洲一区在线电影| 亚洲精品第1页| 在线免费观看日韩欧美| 一区二区理论电影在线观看| 欧美顶级少妇做爰| 国产一区在线观看视频| 在线电影一区二区三区| 亚洲国产sm捆绑调教视频| 欧美亚洲禁片免费| 一区二区三区精品久久久| 欧美最猛性xxxxx直播| 亚洲国产精品一区二区久久| 欧美性视频一区二区三区| 亚洲第一福利一区| 欧美一区二区三区免费观看视频 | 日本欧美在线看| 欧美精品日日鲁夜夜添| 麻豆国产精品视频| 久久综合色一综合色88| youjizz久久| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆 | 欧美成人性战久久| 美女脱光内衣内裤视频久久影院| 日韩一区二区三区观看| 国产精品亚洲一区二区三区妖精| 国产欧美一区二区精品性色| 一本久久a久久精品亚洲| 亚洲成av人影院在线观看网| 91精品国产综合久久精品麻豆| 精品一区二区在线视频| 国产精品久久久久久久久免费丝袜| 91福利国产精品| 麻豆国产欧美日韩综合精品二区| 欧美激情中文字幕一区二区| 色94色欧美sute亚洲13| 美腿丝袜亚洲三区| 国产精品成人免费精品自在线观看| 欧美日韩国产成人在线免费| 国产一区二区精品久久99| 日韩欧美一级在线播放| 蜜臀久久99精品久久久久久9| 久久品道一品道久久精品| 99热在这里有精品免费| 五月综合激情网| 国产精品二三区| 日韩视频免费观看高清在线视频| www.性欧美| 免费看日韩a级影片| 亚洲激情男女视频| 久久毛片高清国产| 69堂成人精品免费视频| av在线综合网| 激情综合色综合久久| 婷婷综合另类小说色区| 1024精品合集| 欧美国产精品中文字幕| 欧美刺激午夜性久久久久久久| 欧美在线不卡视频| www.色精品| 国产精品综合av一区二区国产馆| 国产女主播在线一区二区| 色综合网站在线| 国产一区二区在线看| 日本欧美韩国一区三区| 亚洲精品乱码久久久久久黑人| 国产午夜亚洲精品羞羞网站| 欧美大片免费久久精品三p| 欧美三级视频在线观看| 99精品视频一区二区| 精品夜夜嗨av一区二区三区| 日本视频一区二区| 日本欧美加勒比视频| 日本视频免费一区| 日本亚洲欧美天堂免费| 午夜精品久久久久久久99水蜜桃| 亚洲日韩欧美一区二区在线| 国产精品久久久久久久久晋中| 亚洲精品一区二区三区蜜桃下载 | 天使萌一区二区三区免费观看| 国产精品小仙女| 亚洲成年人网站在线观看| 玉米视频成人免费看| 亚洲精品国产成人久久av盗摄 | 亚洲欧美日韩综合aⅴ视频| 中文字幕精品一区二区三区精品| 国产色产综合色产在线视频| 欧美精品一区二区三区在线播放| 精品播放一区二区| 久久精品一区八戒影视| 国产精品免费久久久久| 国产精品不卡在线观看| 亚洲免费观看在线视频| 性欧美大战久久久久久久久| 日韩av电影免费观看高清完整版在线观看| 日韩激情av在线| 激情综合色播激情啊| 丁香亚洲综合激情啪啪综合| 成av人片一区二区| 欧美日韩中文精品| 51午夜精品国产| 国产亚洲综合性久久久影院| 欧美激情自拍偷拍| 亚洲精品视频观看| 久久精品久久99精品久久| 久久99精品久久只有精品| 成人三级伦理片| 欧美少妇xxx| 久久―日本道色综合久久| 亚洲丝袜美腿综合| 午夜精品成人在线| 国产成人aaa| 欧美午夜免费电影| 久久久久九九视频| 亚洲综合无码一区二区| 久久精品国产99久久6| aaa国产一区| 日韩欧美在线观看一区二区三区| 久久久精品国产免大香伊| 亚洲特黄一级片| 久久se精品一区精品二区| 色综合天天综合网天天看片| 欧美大片拔萝卜| 亚洲码国产岛国毛片在线| 韩日av一区二区| 欧美日韩免费一区二区三区| 中文字幕av一区二区三区免费看| 亚洲成人久久影院| 91伊人久久大香线蕉|