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(); }
Application::Application(int& argc, char** argv) : unicorn::Application(argc, argv) { /// tray tray = new QSystemTrayIcon(this); connect(tray, SIGNAL(activated(QSystemTrayIcon::ActivationReason)), SLOT(onTrayActivated(QSystemTrayIcon::ActivationReason))); QIcon trayIcon( AS_TRAY_ICON ); tray->setIcon(trayIcon); tray->show(); /// tray menu QMenu* menu = new QMenu; m_title_action = menu->addAction(tr("Ready")); m_love_action = menu->addAction(tr("Love")); connect( m_love_action, SIGNAL(triggered()), SLOT(onLoveTriggered())); m_tag_action = menu->addAction(tr("Tag")+ELLIPSIS); connect( m_tag_action, SIGNAL(triggered()), SLOT(onTagTriggered())); m_share_action = menu->addAction(tr("Share")+ELLIPSIS); connect( m_share_action, SIGNAL(triggered()), SLOT(onShareTriggered())); menu->addSeparator(); m_submit_scrobbles_toggle = menu->addAction(tr("Submit Scrobbles")); #ifdef Q_WS_MAC menu->addAction(tr("Preferences")+ELLIPSIS); #else menu->addAction(tr("Options")+ELLIPSIS); #endif menu->addSeparator(); QAction* quit = menu->addAction(tr("Quit Audioscrobbler")); connect(quit, SIGNAL(triggered()), SLOT(quit())); m_title_action->setEnabled( false ); m_submit_scrobbles_toggle->setCheckable(true); m_submit_scrobbles_toggle->setChecked(true); tray->setContextMenu(menu); /// MetadataWindow mw = new MetadataWindow; ScrobbleControls* sc = mw->scrobbleControls(); sc->setLoveAction( m_love_action ); sc->setTagAction( m_tag_action ); sc->setShareAction( m_share_action ); /// scrobbler as = new Audioscrobbler("ass"); /// mediator mediator = new PlayerMediator(this); connect(mediator, SIGNAL(activeConnectionChanged( PlayerConnection* )), SLOT(setConnection( PlayerConnection* )) ); /// listeners try{ #ifdef Q_OS_MAC ITunesListener* itunes = new ITunesListener(mediator); connect(itunes, SIGNAL(newConnection(PlayerConnection*)), mediator, SLOT(follow(PlayerConnection*))); itunes->start(); #endif QObject* o = new PlayerListener(mediator); connect(o, SIGNAL(newConnection(PlayerConnection*)), mediator, SLOT(follow(PlayerConnection*))); o = new LegacyPlayerListener(mediator); connect(o, SIGNAL(newConnection(PlayerConnection*)), mediator, SLOT(follow(PlayerConnection*))); #ifdef QT_DBUS_LIB DBusListener* dbus = new DBusListener(mediator); connect(dbus, SIGNAL(newConnection(PlayerConnection*)), mediator, SLOT(follow(PlayerConnection*))); #endif } catch(std::runtime_error& e){ qWarning() << e.what(); //TODO user visible warning } }