inc/mpengine.h
changeset 29 8192e5b5c935
parent 25 3ec52facab4d
child 32 c163ef0b758d
--- a/inc/mpengine.h	Fri May 14 15:49:53 2010 +0300
+++ b/inc/mpengine.h	Thu May 27 12:49:57 2010 +0300
@@ -28,13 +28,18 @@
 class QTranslator;
 class HbPopup;
 class MpMpxHarvesterFrameworkWrapper;
-class MpSongScanner;
 class MpMediaKeyHandler;
 class MpMpxCollectionFrameworkWrapper;
 class MpMpxPlaybackFrameworkWrapper;
+class MpMpxDetailsFrameworkWrapper;
 class MpMpxCollectionData;
 class MpPlaybackData;
+class MpSongData;
 class XQSharableFile;
+class MpEngineFactory;
+class MpAudioEffectsFrameworkWrapper;
+class MpEqualizerFrameworkWrapper;
+class MpProgressDialogHandler;
 
 #if defined(BUILD_MPENGINE_LIB)
 #define MPENGINE_EXPORT Q_DECL_EXPORT
@@ -46,7 +51,18 @@
 class MPENGINE_EXPORT MpEngine : public QObject
 {
     Q_OBJECT
+    Q_PROPERTY(int activePreset READ activePreset)
 
+    friend class MpEngineFactory;
+
+public:
+    enum EngineMode{
+        StandAlone,
+        Fetch,
+        Embedded,
+        MediaBrowsing
+    };
+    
 private:
 
     enum UsbBlockingState {
@@ -61,11 +77,7 @@
 public:
 
     virtual ~MpEngine();
-    static MpEngine *instance();
 
-    void initialize(MpCommon::MpViewMode viewMode, TUid uid = TUid::Uid( MpCommon::KMusicPlayerUid ) );
-    void close();
-	
     // Harvester related
     bool verifyUsbBlocking( bool showMessage = false );
     void checkForSystemEvents();
@@ -82,16 +94,32 @@
     void renamePlaylist( QString &newName );
     void deleteSongs( QList<int> &selection );
 
-    
     void previewItem( int index );
     void openIsolatedCollection( TCollectionContext context );
     void releaseIsolatedCollection();
-    
+
+    void findAlbumSongs( int index );
+    void playAlbumSongs( int albumIndex, int songIndex, MpMpxCollectionData* collectionData = 0 );
+
     MpMpxCollectionData *collectionData();
     
     // Playback related
     
     MpPlaybackData *playbackData();
+    
+    // Details related
+    MpSongData *songData();
+    void retrieveSong();
+    
+    // Audio Effects related
+    int balance();
+    bool loudness();
+    
+    // Equalizer related
+    void applyPreset( int presetIndex );
+    void disableEqualizer();
+    int activePreset();
+    QStringList presetNames();
 
 signals:
     
@@ -107,6 +135,11 @@
     void playlistsRenamed( bool success );
     
     void isolatedCollectionOpened( MpMpxCollectionData* collectionData );
+    
+    void containerContentsChanged();
+    
+    // Equalizer related
+    void equalizerReady();
 
 public slots:
 
@@ -121,19 +154,33 @@
     // Collection related
     void reopenCollection();
     void reorderPlaylist( int playlistId, int songId, int originalOrdinal, int newOrdinal );
+    void handleDeleteStarted();
+    void handleDeleteEnded();
 
-	// Playback related
-	void playEmbedded( QString aFilename );
-	void playEmbedded( const XQSharableFile&  file );
+    // Playback related
+    void playEmbedded( QString aFilename );
+    void playEmbedded( const XQSharableFile&  file );
     void playPause();
     void stop();
     void skipForward();
+    void startSeekForward();
+    void stopSeeking();
     void skipBackward();
+    void startSeekBackward();
     void setPosition( int position );
     void setShuffle( bool mode );
     void setRepeat( bool mode );
+    
+    // Audio Effects related
+    void setBalance( int balance );
+    void setLoudness( bool mode );
+    
+    // Equalizer related
+    void handleEqualizerReady();
 	
 private:
+    
+    void initialize( TUid hostUid, EngineMode mode);
 
     // Harvester related
     void handleUsbMassStorageStartEvent();
@@ -145,14 +192,13 @@
     void changeUsbBlockingState( UsbBlockingState state );
     void launchBlockingNote();
     void setOutstandingPopup( HbPopup *popup );
-
+	
 private:
 
     Q_DISABLE_COPY( MpEngine )
 
     // Harvesting related
     MpMpxHarvesterFrameworkWrapper       *mMpxHarvesterWrapper;  // Own
-    MpSongScanner                        *mSongScanner;          // Own
     MpMediaKeyHandler                    *mMediaKeyHandler;      // Own
     HbPopup                              *mUsbOutstandingNote;   // Own
     
@@ -161,14 +207,24 @@
 
     // Playback related
     MpMpxPlaybackFrameworkWrapper        *mMpxPlaybackWrapper; //Own
+    
+    // Details related
+    MpMpxDetailsFrameworkWrapper         *mMpxDetailsWrapper;  // Own
+    
+    // Audio Effects related
+    MpAudioEffectsFrameworkWrapper       *mAudioEffectsWrapper; // Own
+    
+    // Equalizer related
+    MpEqualizerFrameworkWrapper          *mEqualizerWrapper; // Own
+    int                                  mCurrentPresetIndex;
         
     // General
     QTranslator                          *mMpTranslator;         // Own
     UsbBlockingState                     mUsbBlockingState;
     UsbBlockingState                     mPreviousUsbState;    
-    MpCommon::MpViewMode                 mViewMode;
     TUid                                 mHostUid;
-
+    MpProgressDialogHandler              *mProgressDialogHandler;  // Own
+    
 };
 
 #endif // MPENGINE_H