⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nlamarok.cpp

📁 用qt4 编写的局域网聊天工具
💻 CPP
字号:
/*************************************************************************** *   Copyright (C) 2007 by Anistratov Oleg                                 * *   ower@users.sourceforge.net                                            * *                                                                         * *   This program is free software; you can redistribute it and/or modify  * *   it under the terms of the GNU General Public License version 2        * *   as published by the Free Software Foundation;                         * *                                                                         * *   This program is distributed in the hope that it will be useful,       * *   but WITHOUT ANY WARRANTY; without even the implied warranty of        * *   MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the         * *   GNU General Public License for more details.                          * *                                                                         * ***************************************************************************/#include "nlamarok.h"#include <QProcess>NLAmarok::NLAmarok(QObject *parent) : QObject   (parent),  m_updated  (false),  m_artist   (""),  m_album    (""),  m_title    (""),  m_nRequests(0){  m_processArtist = new QProcess(this);  m_processAlbum  = new QProcess(this);  m_processTitle  = new QProcess(this);  m_updateTimer   = new QTimer  (this);  connect(m_updateTimer  , SIGNAL(timeout()) , this, SLOT(update()));  connect(m_processAlbum , SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(updateAlbum(int)));  connect(m_processArtist, SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(updateArtist(int)));  connect(m_processTitle , SIGNAL(finished(int, QProcess::ExitStatus)), this, SLOT(updateTitle(int)));  m_updateTimer->start(5 * 1000);}NLAmarok::~NLAmarok(){  qDebug("[~NLAmarok]");}void NLAmarok::requestArtist(){  if(!m_processArtist->pid())  {    m_processArtist->start("dcop amarok player artist");    m_nRequests++;  }}void NLAmarok::requestAlbum(){  if(!m_processAlbum->pid())  {    m_processAlbum->start("dcop amarok player album");    m_nRequests++;  }}void NLAmarok::requestTitle(){  if(!m_processTitle->pid())  {    m_processTitle->start("dcop amarok player title");    m_nRequests++;  }}void NLAmarok::updateArtist(int code){  if(!code)  {    QString str;    str = QString().fromUtf8(m_processArtist->readAllStandardOutput());    if(str[str.size() - 1] == '\n')      str.remove(str.size() - 1, 1);    if(str != m_artist)    {      m_artist = str;      m_updated = true;    }  }  m_nRequests--;  if(!m_nRequests && m_updated)  {    emit updated(m_title, m_artist, m_album);    m_updated = false;  }}void NLAmarok::updateAlbum(int code){  if(!code)  {    QString str;    str = QString().fromUtf8(m_processAlbum->readAllStandardOutput());    if(str[str.size() - 1] == '\n')      str.remove(str.size() - 1, 1);    if(str != m_album)    {      m_album = str;      m_updated = true;    }  }  m_nRequests--;  if(!m_nRequests && m_updated)  {    emit updated(m_title, m_artist, m_album);    m_updated = false;  }}void NLAmarok::updateTitle (int code){  if(!code)  {    QString str;    str = QString().fromUtf8(m_processTitle->readAllStandardOutput());    if(str[str.size() - 1] == '\n')      str.remove(str.size() - 1, 1);    if(str != m_title)    {      m_title = str;      m_updated = true;    }  }  m_nRequests--;  if(!m_nRequests && m_updated)  {    emit updated(m_title, m_artist, m_album);    m_updated = false;  }}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -