qtinternetradio/ui/inc/irplaycontroller.h
changeset 12 608f67c22514
parent 8 3b03c28289e6
child 14 896e9dbc5f19
--- a/qtinternetradio/ui/inc/irplaycontroller.h	Wed Jun 23 18:04:00 2010 +0300
+++ b/qtinternetradio/ui/inc/irplaycontroller.h	Tue Jul 06 14:07:20 2010 +0300
@@ -28,7 +28,7 @@
 class IRQMetaData;
 class IRQSongHistoryEngine;
 class IRQStatisticsReporter;
-
+class HbMessageBox;
 /**
  * This class is a wrapper for IRQMediaPlayer.
  */
@@ -46,15 +46,47 @@
     explicit IRPlayController(IRApplication* aApplication);
     ~IRPlayController();
 
+#ifdef HS_WIDGET_ENABLED
+    // MUST be called before prepare the network for playback
+    // i.e., called before IRApplication::verifyNetworkConnectivity
+    void setConnectingStationName(const QString &aStationName, bool aForceConnecting = false); 
+    QString getConnectingStationName() const; 
+	   
+    // used when nowplaying view is the starting view, to reload preset to the player
+    // because by default, the player will load the last played station preset into it
+    // But when nowplaying view as starting view due to open pls with only one url, 
+    // should reload the preset from pls file
+    void reloadNowplayingPreset(IRQPreset *aPreset, bool aIsLogoAvailable, IRQConnectedFrom aConnectedFrom);
+#endif    
     // Play a station
     void connectToChannel(IRQPreset *aPreset, IRQConnectedFrom aConnectedFrom);
 
+    void emitStationLogoUpdated(bool aIsLogoAvailable);	
+    bool isStationLogoAvailable() const;
+    
     // Play control methods
     void resume();
     void stop(IRQTerminatedType aStopReason);
     int getVolume() const;
     void setVolume(int aVolume);
 
+    enum EPlayState
+    {
+        //initial state, never ever played station
+        EIdle = 0,
+        //a station has been stopped
+        EStopped,
+#ifdef HS_WIDGET_ENABLED		
+        //connecting network
+        EConnecting,
+#endif		
+        //stream buffering
+        EBuffering,		
+        //playing
+        EPlaying
+    };
+    EPlayState state() const;
+    
     // Check the playing status
     bool isPlaying() const;
 
@@ -89,8 +121,21 @@
     // emitted when playing stopped
     void playingStopped();
 
-    // emitted when logo needs to update
-    void initializeLogo();
+#ifdef HS_WIDGET_ENABLED
+    // emitted when loading(connecting) started
+    void connectingStarted(const QString &aStationName);
+    
+    // emitted when buffering started
+    void bufferingStarted(const QString &aStationName);    
+	    
+    // emitted when connecting is cancelled
+    void connectingCancelled(const QString &aStationName);
+
+    // emitted when buffering is cancelled
+    void bufferingCancelled(const QString &aStationName);
+	
+	void stationLogoUpdated(bool aIsDefaultLogo);
+#endif	
 
 private slots:
     // slots connected with IRQMediaPlayer
@@ -104,8 +149,14 @@
     void handleError();
 
 private:
-    void createNote(const QString &aNote = hbTrId("txt_irad_info_failed_to_connect"));
+#ifdef SUBTITLE_STR_BY_LOCID
+    void popupNote(const QString &aNote = hbTrId("txt_irad_info_failed_to_connect"));
+#else
+    void popupNote(const QString &aNote = hbTrId("Connecting failed"));
+#endif
     void connectSignalSlot();
+    
+    QString getFirstTryUrl(IRQPreset *aPreset);
 
     // Play next URL if the previous failed to connect.
     bool playNextUrl();
@@ -120,30 +171,32 @@
     IRQMediaPlayer *iMediaPlayer;
     
     IRQStatisticsReporter *iStatisticsReporter;
-    IRQConnectedFrom iConnectedFrom;
     bool iGetServerResult;
-    
+	
+#ifdef HS_WIDGET_ENABLED    
+    QString   iConnectingStationName; // used for home screen widget
+#endif	
+
     IRQPreset *iNowPlayingPreset;
-    //reserve the info in nowplay view
     IRQPreset *iNowPlayingPresetBackup;
-    // reference of IRQMediaPlayer meta data
+    
+    QString iLastPlayedUrl;
+    QString iLastPlayedUrlBackup; 
+        
+    IRQConnectedFrom iConnectedFrom;
+    IRQConnectedFrom iConnectedFromBackup;
+            
+    bool  iStationLogoAvailable;
+    bool  iStationLogoAvailableBackup;            
+    
+    // reference of IRQMediaPlayer meta data        
     IRQMetaData *iMetaData;
     IRQSongHistoryEngine *iSongHistoryEngine;
 
-    enum EPlayState
-    {
-        //initial state
-        EIdle = 0,
-        //a station has been stopped
-        EStopped,
-        //connecting station and buffering
-        EBuffering,
-        //playing
-        EPlaying
-    };
-
     EPlayState iPlayState;
-    // If resuming the last played url fails, connect to all the preset.
+    
+    // If resuming the last played url fails, reset the player to init state
+    // i.e., call connectToChannel() once again.
     bool iResuming;
 
     // variants for play next URL
@@ -156,19 +209,15 @@
     // the URLs of a specific bitrate
     QList<QString> *iUrlArray;
 
-#ifdef Q_CC_NOKIAX86
-    QString iLastPlayedChannelName;
-#endif
-
     // the bitrate from real station feedback.
     int iRealBitrate;
-    QString iLastPlayedUrl;
-    //reserve the info in nowplay view
-    QString iLastPlayedUrlBackup; 
+
     // To handle error async
     IRQError iLastError;
     
     IRQTerminatedType iStopReason;
+    
+    HbMessageBox *iErrorNote;
 };
 
 #endif  //IRPLAYCONTROLLER_H