00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
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
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
00082 void Draw(const TRect& ) 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
00098 void ViewFinderL();
00099 void CaptureImageL();
00100 void CaptureVideoL();
00101
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
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
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
00146 CEikAppUi* CreateAppUiL();
00147 };
00148
00149
00150 #endif
00151
00152