Mercurial > hg > sonic-visualiser
changeset 381:fad5611ef9db macness
Encapsulate itunes-remote functionality into class ITunesSVRemote. Provides context for playback sync etc
author | Dan Stowell <dan.stowell@eecs.qmul.ac.uk> |
---|---|
date | Mon, 18 Oct 2010 13:59:08 +0100 (2010-10-18) |
parents | 7298621f1192 |
children | abb9c3dedec2 |
files | main/MainWindow.cpp main/MainWindow.h osx/svitunes.h osx/svitunes.mm sonic-visualiser.pro |
diffstat | 5 files changed, 34 insertions(+), 11 deletions(-) [+] |
line wrap: on
line diff
--- a/main/MainWindow.cpp Mon Oct 18 13:29:48 2010 +0100 +++ b/main/MainWindow.cpp Mon Oct 18 13:59:08 2010 +0100 @@ -79,9 +79,6 @@ #include "widgets/ModelDataTableDialog.h" #include "rdf/PluginRDFIndexer.h" #include "rdf/RDFExporter.h" -#ifdef Q_WS_MAC - #include "osx/svitunes.h" -#endif #include "Surveyer.h" #include "framework/VersionTester.h" @@ -160,7 +157,8 @@ m_preferencesDialog(0), m_layerTreeDialog(0), m_activityLog(new ActivityLog()), - m_keyReference(new KeyReference()) + m_keyReference(new KeyReference()), + m_iTunes(new ITunesSVRemote()) { Profiler profiler("MainWindow::MainWindow"); @@ -2165,7 +2163,7 @@ void MainWindow::importITunesAudio() { - QStringList nowPlaying = iTunesNowPlaying(); + QStringList nowPlaying = m_iTunes->getNowPlaying(); QString path = nowPlaying.at(0); QString genre = (nowPlaying.size() > 1) ? nowPlaying.at(1) : ""; std::cerr << "MainWindow::importITunesAudio(): genre is " << genre.toStdString() << std::endl;
--- a/main/MainWindow.h Mon Oct 18 13:29:48 2010 +0100 +++ b/main/MainWindow.h Mon Oct 18 13:59:08 2010 +0100 @@ -33,6 +33,9 @@ #include "data/fileio/FileSource.h" #include "widgets/LayerTreeDialog.h" #include <map> +#ifdef Q_WS_MAC + #include "osx/svitunes.h" +#endif class Document; class PaneStack; @@ -282,6 +285,10 @@ virtual bool shouldCreateNewSessionForRDFAudio(bool *cancel); virtual void connectLayerEditDialog(ModelDataTableDialog *); + +#ifdef Q_WS_MAC + ITunesSVRemote *m_iTunes; +#endif };
--- a/osx/svitunes.h Mon Oct 18 13:29:48 2010 +0100 +++ b/osx/svitunes.h Mon Oct 18 13:59:08 2010 +0100 @@ -18,11 +18,28 @@ #include <QString> #include <QStringList> -//LATER: bool iTunesRunning(); +//#import <Foundation/Foundation.h> -// Returns a list containing [posixpath, genre] -QStringList iTunesNowPlaying(); - -//LATER: QStringList iTunesSelectedPaths(); +/** +* Class to handle communication with a running iTunes program on the system. +* Only implemented for Mac at present, since using applescript communication. +* Pseudo-singleton - one instance expected to be owned by SVApplication. +*/ +class ITunesSVRemote : QObject +{ + Q_OBJECT + + public: + + //LATER: bool iTunesRunning(); + + // Returns a list containing [posixpath, genre] + QStringList getNowPlaying(); + + //LATER: QStringList iTunesSelectedPaths(); + +// private: +// QString qt_mac_NSStringToQString(const NSString *nsstr); +}; #endif
--- a/osx/svitunes.mm Mon Oct 18 13:29:48 2010 +0100 +++ b/osx/svitunes.mm Mon Oct 18 13:59:08 2010 +0100 @@ -32,7 +32,7 @@ return result; } -QStringList iTunesNowPlaying(){ +QStringList ITunesSVRemote::getNowPlaying(){ NSDictionary *errorDict; NSAppleScript *scriptObject = [[NSAppleScript alloc] initWithSource:@" \ tell application \"System Events\" to set iTunesIsRunning to (name of processes) contains \"iTunes\" \n\