www.pudn.com > S60_remote_camera.zip > remotecam.h


/* 
 
        RemoteCam.H - header file for RemoteCam application Averell 
        C++ implementation 
 
 
*/ 
 
 
#if !defined __REMOTECAM_H__ 
#define __REMOTECAM_H__ 
 
// INCLUDES 
 
#if !defined(__AKNVIEW_H__) 
#include                             // for CAknView, CAknViewAppUi 
#endif 
 
#if !defined(__MSVAPI_H__) 
#include                              // for MMsvSessionObserver  
#endif 
 
#if !defined(__EIKDOC_H__) 
#include                              // for CEikDocument 
#endif 
 
#if !defined(__EIKAPP_H__)  
#include                              // for CEikApplication 
#endif 
 
#if !defined(__MDAIMAGECONVERTER_H__)  
#include                   // for MMdaImageUtilObserver 
#endif 
                  
 
// CONSTANTS 
 
 
// FORWARD DECLARATIONS 
class CFbsBitmap; 
class CBaseMtm; 
class CClientMtmRegistry; 
class CMsvSession; 
class CRemoteCamFormView; 
 
 
// CLASS DEFINITIONS 
 
// 
//  CRemoteCamContainer 
// 
class CRemoteCamContainer : public CCoeControl 
    { 
public: 
    ~CRemoteCamContainer();                                      
    void ConstructL(CRemoteCamFormView& aFormView);                                           
    CFbsBitmap* GetBmp(); 
    CFbsBitmap* GetBmpForSaving(); 
        
private: 
    void ConstructContainerControlL();                          // Construct the container control 
    void Draw(const TRect& aRect) const;                        // Method for drawing the control area 
 
public: 
    TBool iImageReady; 
 
private: 
    CFbsBitmap* iBmp; 
    CRemoteCamFormView* iFormView;                              // handle to the FormView object owning this container 
    }; 
 
// 
// CRemoteCamFormView 
// 
class CRemoteCamFormView : public CAknView, public MMdaImageUtilObserver // image util is used to save or open images in asunc. calls 
    { 
    enum TRemoteCamImageQuality 
        { 
        ERCHigh, 
        ERCLow 
        }; 
 
public: 
    void ConstructL(); 
    ~CRemoteCamFormView(); 
 
public: 
    TUid Id() const; 
    void TurnCameraOnL(); 
    void TurnCameraOffL(); 
    void TakePreviewL(); 
    void TakePictureL(TRemoteCamImageQuality aQuality = ERCHigh);   // default image quality = High 
    void SaveImageL(); 
 
public:	 // from MMdaImageUtilObserver 
    virtual void MiuoOpenComplete(TInt aError); 
    virtual void MiuoConvertComplete(TInt aError); 
    virtual void MiuoCreateComplete(TInt aError); 
 
private: 
    void DoActivateL(const TVwsViewId& /*aPrevViewId*/, TUid /*aCustomMessageId*/, const TDesC8& /*aCustomMessage*/); 
    void DoDeactivate(); 
 
private: 
    RCameraServ* iCamserv;                    // client to the camera server 
    CRemoteCamContainer* iContainer; 
    TInt iCurrentImage; 
    TBool iSavingImage;                       // flag that tells when saving is taking place 
    CMdaImageBitmapToFileUtility* iFileSaver; // Saves an image to a file 
    TMdaJfifClipFormat* iFormat;              // for saving 
    }; 
 
 
// 
//  CRemoteCamAppUi 
// 
class CRemoteCamAppUi : public CAknViewAppUi, public MMsvSessionObserver 
    { 
public: 
    void ConstructL(); 
    ~CRemoteCamAppUi(); 
 
public:  
    TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); 
 
protected:        // from CEikAppui  
    void HandleCommandL(TInt aCommand);  
 
private:          // from MMsvSessionObserver 
    void HandleSessionEventL(TMsvSessionEvent aEvent, TAny* aArg1, TAny* aArg2, TAny* aArg3); 
  
private: 
    void CompleteConstructL(); 
         
private: 
    CMsvSession* iSession;          // msg server session 
    CBaseMtm* iMtm;                 // Client MTM 
    CClientMtmRegistry* iMtmReg;    // Client MTM registry 
    };	 
 
 
// 
//  CRemoteCamDocument 
// 
class CRemoteCamDocument : public CEikDocument  
    { 
public: 
    CRemoteCamDocument(CEikApplication& aApp); 
protected:	 
    CEikAppUi* CreateAppUiL(); 
    }; 
 
// 
//  CRemoteCamApplication 
// 
class CRemoteCamApplication : public CEikApplication 
    { 
private:        //From CEikApplication 
    CApaDocument* CreateDocumentL(); 
    TUid AppDllUid() const; 
    }; 
 
 
 
#endif  //__REMOTECAM_H__ 
//End of File