⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 filmreel2container.h

📁 series60 应用程序开发的源代码 series60 应用程序开发的源代码
💻 H
字号:
#ifndef FILMREEL2CONTAINER_H
#define FILMREEL2CONTAINER_H

// INCLUDES
#include "CameraObserver.h"

// System includes
#include <coecntrl.h> // CCoeControl
#include <ecam.h> // CCamera
#include <MdaImageConverter.h>  // for MMdaImageUtilObserver

// FORWARD DECLARATIONS
class CAknNavigationControlContainer;
class CAknNavigationDecorator;
class CAknNaviLabel;
class CCameraTimer;
class CFbsBitmap;

// CLASS DECLARATION
/**
*
* @class    CFilmReel2Container FilmReel2Container.h 
* @brief    This is the container class for an example based on the
* standard Symbian OS architecture, demonstrating the use of the camera server
*
* Copyright (c) EMCC Software Ltd 2003
* @version    1.0
* 
*/

class CFilmReel2Container : public CCoeControl, public MCameraObserver, 
    public MMdaImageUtilObserver, public MCameraTimerObserver
{
public: // Constructors and destructor
    static CFilmReel2Container* NewL(const TRect& aRect);

    static CFilmReel2Container* NewLC(const TRect& aRect);

    ~CFilmReel2Container();

public: // new methods
    enum TContainerState
    {
        ENotReady = 0,
        EPreviewing,
        ERecording,
        EDisplayingResult,
        ESavingImage,
        EPoweredDown
    };
    
    TContainerState CurrentState() const;
    
    void SaveImageL();
    void PreviewModeL();
    void RecordModeL();
    void DisplayModeL();
    
    void RequestPictureAfterPause();
    const TFileName& FileName() const;
    const TFileName& ImageName() const;
    void SetNaviLabelTextL(TInt aTextResourceId);
    void SetNaviLabelTextL(const TDesC& aText);

public: // from MCameraObserver
    virtual void ReserveComplete (TInt aError);
    virtual void PowerOnComplete (TInt aError);
    virtual void ViewFinderFrameReady (CFbsBitmap& aFrame);
    virtual void ImageReady (CFbsBitmap* aBitmap, HBufC8* aData, TInt aError);
    virtual void FrameBufferReady (MFrameBuffer* aFrameBuffer, TInt aError);
    
public: // from MCameraTimerObserver
    void TimerCompleted();

public:     // from MMdaImageUtilObserver
    virtual void MiuoOpenComplete(TInt aError);
    virtual void MiuoConvertComplete(TInt aError);
    virtual void MiuoCreateComplete(TInt aError);

private: // Constructor
    void ConstructL(const TRect& aRect);

private: // from CoeControl
    void Draw(const TRect& aRect) const;

private: // new methods
    void DisplayMessage(const TDesC& aMessage, CWindowGc& aGc) const;

    void PowerOnCompleteL();
    void ViewFinderFrameReadyL(CFbsBitmap& aFrame);
    void ImageReadyL(CFbsBitmap* aBitmap, HBufC8* aData);

private: //data
    TContainerState iContainerState;

    CCamera* iCamera;
    CFbsBitmap* iBitmap;
    CFbsBitmap* iBitmapViewer;

    CFbsBitmap* iCollageBitmap;
    CFbsBitGc* iBGc;
    CFbsBitmapDevice* iBitmapDevice; 

    TInt iX;
    TInt iY;
    TInt iCount;

    CMdaImageBitmapToFileUtility* iFileSaver;
    TMdaJfifClipFormat* iFormat;

    CCameraTimer* iCameraTimer;

    TFileName iFileName;
    TFileName iImageName;

    HBufC* iNotReadyText;
    HBufC* iTimeOutText;

    CAknNavigationControlContainer* iNaviPane;    // Not directly owned by this class.
    CAknNaviLabel* iNaviLabel;                    // Not directly owned by this class.
    CAknNavigationDecorator* iNaviDecoratorForLabel;
};

#endif    // #ifndef FILMREEL2CONTAINER_H

// End of File

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -