examples/Multimedia/CameraExample/CameraExample.h

Go to the documentation of this file.
00001 // Copyright (c) 2007-2009 Nokia Corporation and/or its subsidiary(-ies).
00002 // All rights reserved.
00003 // This component and the accompanying materials are made available
00004 // under the terms of "Eclipse Public License v1.0"
00005 // which accompanies this distribution, and is available
00006 // at the URL "http://www.eclipse.org/legal/epl-v10.html".
00007 //
00008 // Initial Contributors:
00009 // Nokia Corporation - initial contribution.
00010 //
00011 // Contributors:
00012 //
00013 // Description:
00014 // Contains the CCameraApplication, CCameraAppView, CCameraAppUi, 
00015 // and CCameraDocument  classes.
00016 //
00017 
00018 
00019 
00024 #ifndef __CAMERAEXAMPLE_H
00025 #define __CAMERAEXAMPLE_H
00026 
00027 #include <coeccntx.h>
00028 #include <coecntrl.h>
00029 #include <eikenv.h>
00030 #include <eikappui.h>
00031 #include <eikapp.h>
00032 #include <eikdoc.h>
00033 #include <eikstart.h> 
00034 #include <eikon.hrh>
00035 
00036 #include <ecam.h>
00037 
00038 #include <cameraexample.rsg>
00039 #include "CameraExample.hrh"
00040 
00041 #include <ecamplugin.h>
00042 #include <ecaminfoplugin.h>
00043 #include <bitdev.h>
00044 #include <ecamadvsettingsintf.h>
00045 #include <ecamadvsettings.h>
00046 #include <ecamadvsettingsintfuids.hrh>
00047 #include <cameraoverlay.h>
00048 #include <camerasnapshot.h>
00049 #include <ecamdirectviewfinder.h>
00050 
00051 _LIT( KControlLabel, "Control" );
00052 _LIT( KSettingsLabel, "Settings" );
00053 
00058 class CCameraApplication : public CEikApplication
00059         {
00060 private: 
00061         // Inherited from class CApaApplication
00062         CApaDocument* CreateDocumentL();
00063         TUid AppDllUid() const;
00064         };
00065         
00070 class CCameraAppView : public CCoeControl
00071     {
00072 public:
00073         static CCameraAppView* NewL( const TRect& aRect );
00074         CCameraAppView();
00075         ~CCameraAppView();
00076     void ConstructL( const TRect& aRect );
00077         void DrawImage(CFbsBitmap* aImage) const;
00078         TPoint DrawBorders(const TSize& aSize) const;
00079 
00080 private:
00081         // from CCoeControl
00082         void Draw(const TRect& /*aRect*/) const;
00083         
00084 private:
00085         HBufC*  iCameraText;
00086     };  
00090 class CCameraAppUi : public CEikAppUi,public MCameraObserver2
00091 
00092     {
00093 public:
00094     void ConstructL();
00095         ~CCameraAppUi();
00096         
00097         // Basic features
00098         void ViewFinderL();
00099         void CaptureImageL();
00100         void CaptureVideoL();
00101         // From MCameraObserver2
00102         virtual void HandleEvent(const TECAMEvent& aEvent);
00103         virtual void ViewFinderReady(MCameraBuffer& aCameraBuffer,TInt aError);
00104         virtual void ImageBufferReady(MCameraBuffer& aCameraBuffer,TInt aError);
00105         virtual void VideoBufferReady(MCameraBuffer& aCameraBuffer,TInt aError);
00106  
00107     // Advanced features
00108     void AdvancedCamFeaturesL();
00109         void SnapShotL();
00110         void DirectViewFinderL();
00111         void HistogramL();
00112         void OverLayL();
00113         void PresetL();
00114         void ImageProcessingL();
00115         
00116 private:
00117     // Inherited from class CEikAppUi
00118         void HandleCommandL(TInt aCommand);
00119         void InfoMessage(TInt aError, const TDesC& aSuccessMsg, const TDesC& aErrMsg);
00120         void InfoMessage(const TDesC& aMsg);
00121 
00122 private:
00124         CCameraAppView* iAppView;
00126         CCamera* iCamera;
00128         RFs ifsSession;
00130         MCameraObserver2* iObserver2;
00131 
00132         };
00133 
00137 class CCameraDocument : public CEikDocument
00138         {
00139 public:
00140         static CCameraDocument* NewL(CEikApplication& aApp);
00141         CCameraDocument(CEikApplication& aApp);
00142         void ConstructL();
00143 
00144 private: 
00145         // Inherited from CEikDocument
00146         CEikAppUi* CreateAppUiL();
00147         };
00148 
00149 
00150 #endif
00151 
00152 

Generated on Thu Jan 21 10:32:59 2010 for TB10.1 Example Applications by  doxygen 1.5.3