ScrobbleService::ScrobbleService() { qRegisterMetaType<Track>("Track"); /// mediator m_mediator = new PlayerMediator(this); connect( m_mediator, SIGNAL(activeConnectionChanged( PlayerConnection* )), SLOT(setConnection( PlayerConnection* )) ); /// listeners try{ #ifdef Q_OS_MAC ITunesListener* itunes = new ITunesListener(m_mediator); connect(itunes, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); SpotifyListenerMac* spotify = new SpotifyListenerMac(m_mediator); connect(spotify, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #endif #ifdef Q_OS_WIN SpotifyListenerWin* spotify = new SpotifyListenerWin(m_mediator); connect(spotify, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #endif QObject* o = new PlayerListener(m_mediator); connect(o, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #if defined(Q_OS_WIN) || defined(Q_OS_MAC) o = new LegacyPlayerListener(m_mediator); connect(o, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #else Mpris2Listener* mpris2 = new Mpris2Listener(m_mediator); connect(mpris2, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); mpris2->createConnection(); #endif } catch(std::runtime_error& e){ qWarning() << e.what(); //TODO user visible warning } m_mediator->follow( new RadioConnection( this ) ); connect( aApp, SIGNAL(sessionChanged(unicorn::Session)), SLOT(onSessionChanged(unicorn::Session)) ); resetScrobbler(); }
ScrobbleService::ScrobbleService() { /// mediator m_mediator = new PlayerMediator(this); connect( m_mediator, SIGNAL(activeConnectionChanged( PlayerConnection* )), SLOT(setConnection( PlayerConnection* )) ); /// listeners try{ #ifdef Q_OS_MAC ITunesListener* itunes = new ITunesListener(m_mediator); connect(itunes, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); itunes->start(); SpotifyListenerMac* spotify = new SpotifyListenerMac(m_mediator); connect(spotify, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #endif #ifdef Q_OS_WIN SpotifyListenerWin* spotify = new SpotifyListenerWin(m_mediator); connect(spotify, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #endif QObject* o = new PlayerListener(m_mediator); connect(o, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #if defined(Q_OS_WIN) || defined(Q_OS_MAC) o = new LegacyPlayerListener(m_mediator); connect(o, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #endif #ifdef QT_DBUS_LIB DBusListener* dbus = new DBusListener(mediator); connect(dbus, SIGNAL(newConnection(PlayerConnection*)), m_mediator, SLOT(follow(PlayerConnection*))); #endif } catch(std::runtime_error& e){ qWarning() << e.what(); //TODO user visible warning } m_mediator->follow( new RadioConnection( this ) ); connect( aApp, SIGNAL(sessionChanged(unicorn::Session)), SLOT(onSessionChanged(unicorn::Session)) ); resetScrobbler(); }
void ScrobbleService::onSessionChanged( unicorn::Session* ) { resetScrobbler(); }