inc/mpengine.h
changeset 20 82baf59ce8dd
child 22 ecf06a08d4d9
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/inc/mpengine.h	Fri Apr 16 14:56:30 2010 +0300
@@ -0,0 +1,101 @@
+/*
+* Copyright (c) 2009 Nokia Corporation and/or its subsidiary(-ies).
+* All rights reserved.
+* This component and the accompanying materials are made available
+* under the terms of "Eclipse Public License v1.0"
+* which accompanies this distribution, and is available
+* at the URL "http://www.eclipse.org/legal/epl-v10.html".
+*
+* Initial Contributors:
+* Nokia Corporation - initial contribution.
+*
+* Contributors:
+*
+* Description: Music Player engine.
+*
+*/
+
+#ifndef MPENGINE_H
+#define MPENGINE_H
+
+#include <QObject>
+#include "mpmpxcommondefs.h"
+
+class QStringList;
+class QTranslator;
+class HbNotificationDialog;
+class MpMpxFrameworkWrapper;
+class MpSongScanner;
+class MpMediaKeyHandler;
+
+#if defined(BUILD_MPENGINE_LIB)
+#define MPENGINE_EXPORT Q_DECL_EXPORT
+#else
+#define MPENGINE_EXPORT Q_DECL_IMPORT
+#endif
+
+
+class MPENGINE_EXPORT MpEngine : public QObject
+{
+    Q_OBJECT
+
+private:
+
+    enum UsbBlockingState {
+        USB_NotConnected,          // Not connected
+        USB_Connected,             // Connected in MTP mode but not synchronizing
+        USB_Synchronizing          // Connected in MassStorage mode or MTP mode and synchronizing
+    };
+
+private:
+    explicit MpEngine();
+
+public:
+
+    virtual ~MpEngine();
+    static MpEngine *instance();
+
+    void refreshLibrary();
+    bool verifyUsbBlocking( bool showMessage = false );
+
+signals:
+
+    void libraryAboutToRefresh();
+    void libraryRefreshed();
+    void usbBlocked( bool blocked );
+    void exitApplication();
+
+public slots:
+
+    void handleScanStarted();
+    void handleScanEnded( int count, int error );
+    void handleDiskEvent( MpxDiskEvents event );
+    void handleUsbEvent( MpxUsbEvents event );
+
+private:
+
+    void handleUsbMassStorageStartEvent();
+    void handleUsbMassStorageEndEvent();
+    void handleUsbMtpStartEvent();
+    void handleUsbMtpEndEvent();
+    void handleUsbMtpNotActive();
+
+    void changeUsbBlockingState( UsbBlockingState state );
+
+private:
+
+    Q_DISABLE_COPY( MpEngine )
+
+    MpMpxFrameworkWrapper       *mMpxWrapper;       // Own
+    MpSongScanner               *mSongScanner;      // Own
+    MpMediaKeyHandler           *mMediaKeyHandler;  // Own
+
+    HbNotificationDialog        *mUsbBlockingNote;  // Own
+    QTranslator                 *mMpTranslator;     // Own
+
+    UsbBlockingState            mUsbBlockingState;
+    UsbBlockingState            mPreviousUsbState;
+
+};
+
+#endif // MPENGINE_H