00001 /* 00002 * Copyright (c) 2009-2010 Nokia Corporation and/or its subsidiary(-ies). All rights reserved. 00003 * 00004 * Redistribution and use in source and binary forms, with or without 00005 * modification, are permitted provided that the following conditions are met: 00006 * 00007 * * Redistributions of source code must retain the above copyright notice, this 00008 * list of conditions and the following disclaimer. 00009 * * Redistributions in binary form must reproduce the above copyright notice, 00010 * this list of conditions and the following disclaimer in the documentation 00011 * and/or other materials provided with the distribution. 00012 * * Neither the name of Nokia Corporation nor the names of its contributors 00013 * may be used to endorse or promote products derived from this software 00014 * without specific prior written permission. 00015 * 00016 * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" 00017 * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE 00018 * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE 00019 * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE 00020 * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL 00021 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR 00022 * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER 00023 * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, 00024 * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE 00025 * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. 00026 * 00027 * Description: 00028 */ 00029 00030 #ifndef __CAMERAWRAPPEREXAMPLEAPPUI_h__ 00031 #define __CAMERAWRAPPEREXAMPLEAPPUI_h__ 00032 00033 // INCLUDES 00034 #include <aknappui.h> 00035 00036 //#define EKeyZoomIn EKeyApplicationC 00037 //#define EKeyZoomOut EKeyApplicationD 00038 //#define EKeyVolumeUp EKeyIncVolume 00039 //#define EKeyVolumeDown EKeyDecVolume 00040 00041 00042 #ifdef ENABLE_CAMERA_SHUTTER 00043 // Focus key events (shutter key pressed half-way down) 00044 const TInt KStdKeyCameraFocus = 0xe2; 00045 const TInt KStdKeyCameraFocus2 = 0xeb; // S60 3.2 and onwards 00046 00047 // All known event codes used for the camera shutter key on S60 3.x devices 00048 const TUint KKeyCameraShutter1 = 0xf883; 00049 const TUint KKeyCameraShutter2 = 0xf849; // S60 3.2 00050 const TUint KKeyCameraNseries1 = 0xf881; // S60 3.2 Nseries 00051 const TUint KKeyCameraNseries2 = 0xf88c; 00052 00053 const TUint KCameraShutterKeyEventCodes[6] = { 00054 EKeyCamera, // general camera key 00055 KKeyCameraShutter1, 00056 KKeyCameraShutter2, 00057 KKeyCameraNseries1, 00058 KKeyCameraNseries2, 00059 0 }; 00060 #endif 00061 00062 00063 // FORWARD DECLARATIONS 00064 class CCameraWrapperExampleAppView; 00065 00066 // CLASS DECLARATION 00067 class CCameraWrapperExampleAppUi : public CAknAppUi, 00068 public MCoeForegroundObserver 00069 { 00070 public: 00071 // Constructors and destructor 00072 void ConstructL (); 00073 CCameraWrapperExampleAppUi (); 00074 virtual ~CCameraWrapperExampleAppUi (); 00075 00076 private: 00077 TKeyResponse HandleKeyEventL(const TKeyEvent& aKeyEvent,TEventCode aType); 00078 void HandleCommandL (TInt aCommand ); 00079 void HandleResourceChangeL(TInt aType); 00080 00081 #ifdef ENABLE_CAMERA_SHUTTER 00082 void CaptureCameraShutter(TBool aEnable); 00083 #endif 00084 00085 public: 00086 void UseOptionsExitCbaL(); 00087 void UseOptionsBackCbaL(); 00088 TBool IsBackCBA(); 00089 00090 private: // From MCoeForegroundObserver 00091 void HandleGainingForeground(); 00092 void HandleLosingForeground(); 00093 00094 private: 00095 // Data 00096 CCameraWrapperExampleAppView* iAppView; 00097 RArray<TInt32> iShutterKeyHandles; 00098 TBool iCameraKeyCaptured; 00099 00100 }; 00101 00102 #endif // __CAMERAWRAPPEREXAMPLEAPPUI_h__ 00103 00104 // End of File