577 |
544 |
578 @note TECAMEvent2::iParam represents bit field describing all PreCaptureWarnings currently issued. |
545 @note TECAMEvent2::iParam represents bit field describing all PreCaptureWarnings currently issued. |
579 */ |
546 */ |
580 static const TUid KUidECamEventCameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue}; |
547 static const TUid KUidECamEventCameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue}; |
581 static const TUid KUidECamEvent2CameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue}; |
548 static const TUid KUidECamEvent2CameraSettingPreCaptureWarning = {KUidECamEventCameraSettingPreCaptureWarningUidValue}; |
582 |
|
583 /** |
|
584 Event indicating continuous zoom progess. This event is used for StartContinuousZoomL feature. This is a part of class |
|
585 CCamera::CCameraAdvancedSettings. This event should be packed in TECAMEvent2 class. |
|
586 |
|
587 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera:: |
|
588 NewDuplicate2L(): |
|
589 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
590 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
591 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
592 |
|
593 Note: TECAMEvent2::iParam represents percentage continuous zoom completion. |
|
594 |
|
595 @note If zoom direction is EZoomDirectionWide, percentage completion will target minimum possible value as 100%. |
|
596 @note If zoom direction is EZoomDirectionTele, percentage completion will target maximum possible value as 100%. |
|
597 |
|
598 @publishedPartner |
|
599 @prototype |
|
600 */ |
|
601 static const TUid KUidECamEvent2CameraSettingContinuousZoomPercentageCompletion = {KUidECamEvent2CameraSettingContinuousZoomPercentageCompletionUidValue}; |
|
602 |
|
603 /** |
|
604 Notifies that unrequested feature changes have occurred. The method GetIndirectFeatureChangesL() is called to |
|
605 retrieve the list of unrequested feature changes. The unrequested feature changes are ECAM component wide. |
|
606 |
|
607 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
608 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
609 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
610 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
611 |
|
612 Note: TECAMEvent2::iParam represents the TInt used to obtain a uid which represents the requested feature change. |
|
613 |
|
614 @publishedPartner |
|
615 @prototype |
|
616 */ |
|
617 static const TUid KUidECamEvent2IndirectFeatureChange = {KUidECamEvent2IndirectFeatureChangeUidValue}; |
|
618 |
|
619 |
|
620 /** |
|
621 Viewfinder fading effect has been set. |
|
622 This event should be packed in TECAMEvent2 class. |
|
623 |
|
624 Note: TECAMEvent2::iParam represents viewfinder handle. |
|
625 |
|
626 @internalTechnology |
|
627 */ |
|
628 static const TUid KUidECamEvent2ViewFinderFadingEffect = {KUidECamEvent2ViewFinderFadingEffectUidValue}; |
|
629 |
|
630 /** |
|
631 Event indicating auto aperture is being used. |
|
632 This event should be packed in TECAMEvent2 class. |
|
633 |
|
634 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera:: |
|
635 NewDuplicate2L(): |
|
636 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
637 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
638 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
639 |
|
640 Note: TECAMEvent2::iParam represents actual value of aperture being used if camera is capable of. Otherwise, KErrNotFound will be retrieved. |
|
641 |
|
642 @internalTechnology |
|
643 */ |
|
644 static const TUid KUidECamEvent2CameraSettingAutoAperture = {KUidECamEvent2CameraSettingAutoApertureUidValue}; |
|
645 |
|
646 /** |
|
647 Event providing focussing feedback. The focussing feedback will be provided whenever the focussing state changes for the |
|
648 selected spot combination. |
|
649 This event should be packed in TECAMEvent2 class. |
|
650 Note: TECAMEvent2::iParam represents bitfield of chosen spots which are in focus. |
|
651 Note: TECAMEvent2::iParam1 represents bitfield of chosen spots which are not in focus. |
|
652 |
|
653 @internalTechnology |
|
654 */ |
|
655 static const TUid KECamEvent2ImageCaptureControlFocussingInformation = {KECamEvent2ImageCaptureControlFocussingInformationUidValue}; |
|
656 |
|
657 /** |
|
658 Focussing spot combination. This event tells about completion of the setting operation for the spot combination. |
|
659 This event should be packed in TECAMEvent2 class. |
|
660 |
|
661 @note static_cast<CCamera::CCameraAdvancedSettings::TFocusMode>(TECAMEvent2::iParam) represents the focus mode for |
|
662 which the spot combination has to be set for receiving focussing feedback. |
|
663 |
|
664 @internalTechnology |
|
665 */ |
|
666 static const TUid KUidECamEvent2ImageCaptureControlSpotCombination = {KUidECamEvent2ImageCaptureControlSpotCombinationUidValue}; |
|
667 |
|
668 /** |
|
669 Viewfinder magnification has been set. |
|
670 This event should be packed in TECAMEvent2 class. |
|
671 |
|
672 Note: TECAMEvent2::iParam represents viewfinder handle. |
|
673 |
|
674 @internalTechnology |
|
675 */ |
|
676 static const TUid KUidECamEvent2ViewFinderMagnification = {KUidECamEvent2ViewFinderMagnificationUidValue}; |
|
677 |
|
678 /** |
|
679 Notifies the current camera reserver that the camera control will be forcefully overtaken by another requesting client |
|
680 after a specific time interval. |
|
681 |
|
682 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
683 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
684 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
685 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
686 |
|
687 @note TTimeIntervalMicroSeconds32(TECAMEvent2::iParam) represents the maximum time to wait. |
|
688 TECAMEvent2::iParam needs to be passed as argument in order to construct the TTimeIntervalMicroSeconds32 object. |
|
689 |
|
690 Note: TECAMEvent2::iParam1 represents the priority of the requestor client to whom the camera control will be forcibly |
|
691 passed after a specific time interval. |
|
692 |
|
693 @internalTechnology |
|
694 */ |
|
695 static const TUid KUidECamEvent2CameraRequestForcedTimedTakeOver = {KUidECamEvent2CameraRequestForcedTimedTakeOverUidValue}; |
|
696 |
|
697 /** |
|
698 Notifies the current camera reserver that another client is requesting for camera control in a specific time interval. |
|
699 |
|
700 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
701 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
702 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
703 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
704 |
|
705 @note TTimeIntervalMicroSeconds32(TECAMEvent2::iParam) represents the maximum requested time within which the current |
|
706 reserver may release the camera if it wishes to do so. |
|
707 TECAMEvent2::iParam needs to be passed as argument in order to construct the TTimeIntervalMicroSeconds32 object. |
|
708 |
|
709 Note: TECAMEvent2::iParam1 represents the priority of the requestor client to whom the camera control will be passed |
|
710 should the current reserver wish to do so. |
|
711 |
|
712 @internalTechnology |
|
713 */ |
|
714 static const TUid KUidECamEvent2CameraRequestTimedTakeOver = {KUidECamEvent2CameraRequestTimedTakeOverUidValue}; |
|
715 |
|
716 /** |
|
717 Notifies the manual gain setting completion for the particular channel. |
|
718 |
|
719 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
720 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
721 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
722 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
723 |
|
724 Note: TECAMEvent2::iParam represents the specific channel for which the manual gain value has been set. |
|
725 |
|
726 @internalTechnology |
|
727 */ |
|
728 static const TUid KUidECamEvent2CameraSettingManualGain = {KUidECamEvent2CameraSettingManualGainUidValue}; |
|
729 |
|
730 /** |
|
731 Retrieves the optimal focussing feedback while using manual focus. This will be issued as a result of setting operation |
|
732 CCamera::CCameraAdvancedSettings::SetFocusDistance(TInt aDistance). |
|
733 |
|
734 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
735 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
736 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
737 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
738 |
|
739 @note If TECAMEvent2::iParam > 1, information is unavailable; if TECAMEvent2::iParam < 0, error case. |
|
740 Otherwise, static_cast<TBool>(TECAMEvent2::iParam) retrieves whether optimal focussing has been achieved or not. |
|
741 |
|
742 @internalTechnology |
|
743 */ |
|
744 static const TUid KUidECamEvent2CameraSettingFocusDistance = {KUidECamEvent2CameraSettingFocusDistanceUidValue}; |
|
745 |
|
746 /** |
|
747 Instructs the client to change its priority in order to allow the legacy client to get hold of the camera. Client should |
|
748 restore their priority when they receive the notification 'KUidECamEventCameraSettingRestoreClientPriority'. |
|
749 |
|
750 This TUid is available from the following methods only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(): |
|
751 void CCamera::CCameraAdvancedSettings::GetSupportedSettingsL(RArray<TUid>& aSettings) const; |
|
752 void CCamera::CCameraAdvancedSettings::GetActiveSettingsL(RArray<TUid>& aActiveSettings) const; |
|
753 void CCamera::CCameraAdvancedSettings::GetDisabledSettingsL(RArray<TUid>& aDisabledSettings) const; |
|
754 |
|
755 Note: TECAMEvent2::iParam represents the target priority to which the client should set itself using the method SetClientPriorityL() |
|
756 |
|
757 @internalTechnology |
|
758 */ |
|
759 static const TUid KUidECamEvent2CameraSettingChangeClientPriority = {KUidECamEvent2CameraSettingChangeClientPriorityUidValue}; |
|
760 |
|
761 /** |
|
762 Event indicating image enhancement setting has been applied. |
|
763 This event should be packed in TECAMEvent2 class. |
|
764 |
|
765 Note: TECAMEvent2::iParam represents viewfinder handle. |
|
766 |
|
767 @internalTechnology |
|
768 */ |
|
769 static const TUid KUidECamEvent2ViewFinderImageEnhancement = {KUidECamEvent2ViewFinderImageEnhancementUidValue}; |
|
770 |
|
771 /** |
|
772 Provides the various available schemes for event filtering. This will inform how the listed uids have to be interpreted |
|
773 by the implementation for filtering the events. |
|
774 |
|
775 @see CCamera::CCameraAdvancedSettings::RegisterEventsL(TECAMEventFilterScheme aEventFilter, const RArray<TUid>& aEvents); |
|
776 @see CCamera::CCameraAdvancedSettings::GetRegisterEventsL(TECAMEventFilterScheme aEventFilter, RArray<TUid>& aEvents) const; |
|
777 |
|
778 @internalTechnology |
|
779 */ |
|
780 enum TECAMEventFilterScheme |
|
781 { |
|
782 /** Black listing will mean not to receive specific events */ |
|
783 EECAMEventFilterSchemeBlackList, |
|
784 /** White listing will mean to receive only specific events */ |
|
785 EECAMEventFilterSchemeWhiteList |
|
786 }; |
|
787 |
549 |
788 /** |
550 /** |
789 Special type of TECAMEvent class used to retrieve some extra information from particular events received |
551 Special type of TECAMEvent class used to retrieve some extra information from particular events received |
790 |
552 |
791 @publishedAll |
553 @publishedAll |
975 EFormatUserDefined = 0x0200, |
738 EFormatUserDefined = 0x0200, |
976 /** 4:2:0 format, 8 bits per sample, Y00Y01Y10Y11UV. */ |
739 /** 4:2:0 format, 8 bits per sample, Y00Y01Y10Y11UV. */ |
977 EFormatYUV420Interleaved = 0x0400, |
740 EFormatYUV420Interleaved = 0x0400, |
978 /** 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0...V0... */ |
741 /** 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0...V0... */ |
979 EFormatYUV420Planar = 0x0800, |
742 EFormatYUV420Planar = 0x0800, |
980 /** 4:2:2 format, 8 bits per sample, UY0VY1. */ |
743 /** 4:2:2 format, 8 bits per sample, UY0VY1. Maps to Graphics' EUidPixelFormatYUV_422Interleaved in pixelformats.h. */ |
981 EFormatYUV422 = 0x1000, |
744 EFormatYUV422 = 0x1000, |
982 /** 4:2:2 format, 8 bits per sample, Y1VY0U. */ |
745 /** 4:2:2 format, 8 bits per sample, Y1VY0U. Maps to Graphics' EUidPixelFormatYUV_422InterleavedReversed in pixelformats.h. */ |
983 EFormatYUV422Reversed = 0x2000, |
746 EFormatYUV422Reversed = 0x2000, |
984 /** 4:4:4 format, 8 bits per sample, Y00U00V00 Y01U01V01... */ |
747 /** 4:4:4 format, 8 bits per sample, Y00U00V00 Y01U01V01... */ |
985 EFormatYUV444 = 0x4000, |
748 EFormatYUV444 = 0x4000, |
986 /** 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0V0... */ |
749 /** 4:2:0 format, 8 bits per sample, Y00Y01Y02Y03...U0V0... */ |
987 EFormatYUV420SemiPlanar = 0x8000, |
750 EFormatYUV420SemiPlanar = 0x8000, |
988 /** CFbsBitmap object with display mode EColor16MU. */ |
751 /** CFbsBitmap object with display mode EColor16MU. */ |
989 EFormatFbsBitmapColor16MU = 0x00010000, |
752 EFormatFbsBitmapColor16MU = 0x00010000, |
990 /** Motion JPEG for video |
753 /** Motion JPEG for video |
991 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L() |
754 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(). |
992 |
|
993 @internalTechnology |
755 @internalTechnology |
994 */ |
756 */ |
995 EFormatMJPEG = 0x00020000, |
757 EFormatMJPEG = 0x00020000, |
996 |
758 |
997 /** |
759 /** |
998 Compressed H264 video format. |
760 Compressed H264 video format. |
999 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(). |
761 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(). |
1000 |
|
1001 @publishedPartner |
|
1002 @prototype |
762 @prototype |
1003 */ |
763 */ |
1004 EFormatEncodedH264 = 0x00040000 |
764 EFormatEncodedH264 = 0x00040000, |
|
765 |
|
766 /** |
|
767 4:2:2 format, 8 bits per sample, Y0UY1V. Maps to Graphics' EUidPixelFormatYUV_422Reversed in pixelformats.h. |
|
768 @note This value is available only to the API clients using CCamera::New2L() or CCamera::NewDuplicate2L(). |
|
769 @prototype |
|
770 */ |
|
771 EFormatYUV222ReversedV2 = 0x00080000 |
1005 }; |
772 }; |
1006 |
773 |
1007 /** Specifies whether contrast is set automatically. */ |
774 /** Specifies whether contrast is set automatically. */ |
1008 enum TContrast |
775 enum TContrast |
1009 { |
776 { |
1094 EWBBeach = 0x0040, |
863 EWBBeach = 0x0040, |
1095 /** User configurable mode */ |
864 /** User configurable mode */ |
1096 EWBManual = 0x0080, |
865 EWBManual = 0x0080, |
1097 /** Shade */ |
866 /** Shade */ |
1098 EWBShade = 0x0100, |
867 EWBShade = 0x0100, |
1099 /** auto skin |
868 /** auto skin |
1100 |
869 |
1101 If New2L()/NewDuplicate2L() are not used to create camera object, this |
870 If New2L()/NewDuplicate2L() are not used to create camera object, this |
1102 enum value would be considered as unrecognized and filtered out in 'supported' |
871 enum value would be considered as unrecognized and filtered out in 'supported' |
1103 or 'getter' methods. |
872 or 'getter' methods. |
1104 */ |
873 */ |
1105 EWBAutoSkin = 0x0200, |
874 EWBAutoSkin = 0x0200, |
1106 /** horizon |
875 /** horizon |
1107 |
876 |
1108 If New2L()/NewDuplicate2L() are not used to create camera object, this |
877 If New2L()/NewDuplicate2L() are not used to create camera object, this |
1109 enum value would be considered as unrecognized and filtered out in 'supported' |
878 enum value would be considered as unrecognized and filtered out in 'supported' |
1110 or 'getter' methods. |
879 or 'getter' methods. |
1111 */ |
880 */ |
1112 EWBHorizon = 0x0400, |
881 EWBHorizon = 0x0400, |
1113 /** Daylight Under Water |
882 /** Daylight Under Water |
1114 |
883 |
1115 If New2L()/NewDuplicate2L() are not used to create camera object, this |
884 If New2L()/NewDuplicate2L() are not used to create camera object, this |
1116 enum value would be considered as unrecognized and filtered out in 'supported' |
885 enum value would be considered as unrecognized and filtered out in 'supported' |
1117 or 'getter' methods. |
886 or 'getter' methods. |
1118 */ |
887 */ |
1119 EWBDaylightUnderWater = 0x0800 |
888 EWBDaylightUnderWater = 0x0800 |
1120 }; |
889 }; |
1121 |
890 |
1122 public: |
891 public: |
1123 /** |
892 /** |
1124 Determines the number of cameras on the device. |
893 Determines the number of cameras on the device. |
1125 |
894 |
1126 @return Count of cameras present on the device. |
895 @return Count of cameras present on the device. |
1127 */ |
896 */ |
1128 IMPORT_C static TInt CamerasAvailable(); |
897 IMPORT_C static TInt CamerasAvailable(); |
1129 |
898 |
1130 /** |
899 /** |
1131 @deprecated Use static CCamera* New2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); |
900 @deprecated Use static CCamera* New2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); |
1132 |
901 |
1133 Creates an object representing a camera. |
902 Creates an object representing a camera. |
1134 |
903 |
1135 @param aObserver |
904 @param aObserver |
1136 Reference to class derived from MCameraObserver2 designed to receive |
905 Reference to class derived from MCameraObserver2 designed to receive |
1137 notification of asynchronous event completion. |
906 notification of asynchronous event completion. |
1138 @param aCameraIndex |
907 @param aCameraIndex |
1139 Index from 0 to CamerasAvailable()-1 inclusive specifying the |
908 Index from 0 to CamerasAvailable()-1 inclusive specifying the |
1147 |
916 |
1148 @leave KErrNoMemory if out of memory. |
917 @leave KErrNoMemory if out of memory. |
1149 @leave KErrNotSupported if aCameraIndex is out of range. |
918 @leave KErrNotSupported if aCameraIndex is out of range. |
1150 @leave KErrPermissionDenied if the application does not have |
919 @leave KErrPermissionDenied if the application does not have |
1151 the UserEnvironment capability. |
920 the UserEnvironment capability. |
1152 |
921 |
1153 @capability UserEnvironment |
922 @capability UserEnvironment |
1154 An application that creates a CCamera object must have |
923 An application that creates a CCamera object must have |
1155 the UserEnvironment capability. |
924 the UserEnvironment capability. |
1156 |
925 |
1157 @capability MultimediaDD |
926 @capability MultimediaDD |
1158 A process requesting or using this method that has MultimediaDD capability will |
927 A process requesting or using this method that has MultimediaDD capability will |
1159 always have precedence over a process that does not have MultimediaDD. |
928 always have precedence over a process that does not have MultimediaDD. |
1160 |
929 |
1161 @note Applications using this method to create camera object may not receive enums/uids added in future(after being baselined). |
930 @note Applications using this method to create camera object may not receive enums/uids added in future(after being baselined). |
1162 To receive them, they should rather use New2L() or NewDuplicate2L(), in which case, they should prepare |
931 To receive them, they should rather use New2L() or NewDuplicate2L(), in which case, they should prepare |
1163 themselves to receive unrecognised values. |
932 themselves to receive unrecognised values. |
1164 */ |
933 */ |
1165 IMPORT_C static CCamera* NewL(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); |
934 IMPORT_C static CCamera* NewL(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); |
1166 |
935 |
1167 /** |
936 /** |
1168 Creates an object representing a camera. |
937 Creates an object representing a camera. |
1169 Clients prepare themselves to receive unrecognised enum, uids etc. |
938 Clients prepare themselves to receive unrecognised enum, uids etc. |
1170 |
939 |
1171 @param aObserver |
940 @param aObserver |
1172 Reference to class derived from MCameraObserver2 designed to receive |
941 Reference to class derived from MCameraObserver2 designed to receive |
1173 notification of asynchronous event completion. |
942 notification of asynchronous event completion. |
1174 @param aCameraIndex |
943 @param aCameraIndex |
1175 Index from 0 to CamerasAvailable()-1 inclusive specifying the |
944 Index from 0 to CamerasAvailable()-1 inclusive specifying the |
1183 |
952 |
1184 @leave KErrNoMemory if out of memory. |
953 @leave KErrNoMemory if out of memory. |
1185 @leave KErrNotSupported if aCameraIndex is out of range. |
954 @leave KErrNotSupported if aCameraIndex is out of range. |
1186 @leave KErrPermissionDenied if the application does not have |
955 @leave KErrPermissionDenied if the application does not have |
1187 the UserEnvironment capability. |
956 the UserEnvironment capability. |
1188 |
957 |
1189 @capability UserEnvironment |
958 @capability UserEnvironment |
1190 An application that creates a CCamera object must have |
959 An application that creates a CCamera object must have |
1191 the UserEnvironment capability. |
960 the UserEnvironment capability. |
1192 |
961 |
1193 @capability MultimediaDD |
962 @capability MultimediaDD |
1194 A process requesting or using this method that has MultimediaDD capability will |
963 A process requesting or using this method that has MultimediaDD capability will |
1195 always have precedence over a process that does not have MultimediaDD. |
964 always have precedence over a process that does not have MultimediaDD. |
1196 |
965 |
1197 @note Clients using this creation method should prepare themselves to receive any unrecognised enum values, uids |
966 @note Clients using this creation method should prepare themselves to receive any unrecognised enum values, uids |
1198 from 'supported' or 'getter' methods |
967 from 'supported' or 'getter' methods |
1199 */ |
968 */ |
1200 IMPORT_C static CCamera* New2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); |
969 IMPORT_C static CCamera* New2L(MCameraObserver2& aObserver,TInt aCameraIndex,TInt aPriority); |
1201 |
970 |
1202 /** |
971 /** |
1203 Creates an object representing a camera. |
972 Creates an object representing a camera. |
1204 |
973 |
1205 @param aObserver |
974 @param aObserver |
1206 Reference to class derived from MCameraObserver designed to receive |
975 Reference to class derived from MCameraObserver designed to receive |
1207 notification of asynchronous event completion. |
976 notification of asynchronous event completion. |
1208 @param aCameraIndex |
977 @param aCameraIndex |
1209 Index from 0 to CamerasAvailable()-1 inclusive specifying the |
978 Index from 0 to CamerasAvailable()-1 inclusive specifying the |
1211 |
980 |
1212 @leave KErrNoMemory if out of memory. |
981 @leave KErrNoMemory if out of memory. |
1213 @leave KErrNotSupported if aCameraIndex is out of range. |
982 @leave KErrNotSupported if aCameraIndex is out of range. |
1214 @leave KErrPermissionDenied if the application does not have |
983 @leave KErrPermissionDenied if the application does not have |
1215 the UserEnvironment capability. |
984 the UserEnvironment capability. |
1216 |
985 |
1217 @return Pointer to a fully constructed CCamera object. Ownership is passed |
986 @return Pointer to a fully constructed CCamera object. Ownership is passed |
1218 to the caller. |
987 to the caller. |
1219 |
988 |
1220 @capability UserEnvironment |
989 @capability UserEnvironment |
1221 An application that creates a CCamera object must have |
990 An application that creates a CCamera object must have |
1222 the UserEnvironment capability. |
991 the UserEnvironment capability. |
1223 |
992 |
1224 @note Applications using this method to create camera object may not receive enums/uids added in future(after being baselined). |
993 @note Applications using this method to create camera object may not receive enums/uids added in future(after being baselined). |
1225 To receive them, they should rather use New2L() or NewDuplicate2L(), in which case, they should prepare |
994 To receive them, they should rather use New2L() or NewDuplicate2L(), in which case, they should prepare |
1226 themselves to receive unrecognised values. |
995 themselves to receive unrecognised values. |
1227 */ |
996 */ |
1228 IMPORT_C static CCamera* NewL(MCameraObserver& aObserver,TInt aCameraIndex); |
997 IMPORT_C static CCamera* NewL(MCameraObserver& aObserver,TInt aCameraIndex); |
1229 |
998 |
1230 /** |
999 /** |
1231 @deprecated Use static CCamera* NewDuplicate2L(MCameraObserver2& aObserver,TInt aCameraHandle); |
1000 @deprecated Use static CCamera* NewDuplicate2L(MCameraObserver2& aObserver,TInt aCameraHandle); |
1232 |
1001 |
1233 Duplicates the original camera object for use by, for example, multimedia systems. |
1002 Duplicates the original camera object for use by, for example, multimedia systems. |
1234 |
1003 |
1235 May leave with KErrNoMemory or KErrNotFound if aCameraHandle is not valid. |
1004 May leave with KErrNoMemory or KErrNotFound if aCameraHandle is not valid. |
1236 |
1005 |
1237 @param aObserver |
1006 @param aObserver |
2049 frame in the buffer was captured. |
1833 frame in the buffer was captured. |
2050 */ |
1834 */ |
2051 TTimeIntervalMicroSeconds iElapsedTime; |
1835 TTimeIntervalMicroSeconds iElapsedTime; |
2052 }; |
1836 }; |
2053 |
1837 |
2054 /** Specifies whether the camera is reserved or not. |
1838 #ifndef SYMBIAN_ENABLE_SPLIT_HEADERS |
2055 The enumeration list may be extended in future. |
1839 #include <ecamconst.h> |
2056 |
1840 #endif |
2057 @publishedPartner |
1841 |
2058 @prototype |
1842 class MReserveObserver; |
2059 */ |
1843 |
2060 enum TECamReserveStatus |
|
2061 { |
|
2062 /** Camera Status unknown */ |
|
2063 ECameraStatusUnknown, |
|
2064 /** Camera is reserved */ |
|
2065 ECameraReserved, |
|
2066 /** Camera is unreserved */ |
|
2067 ECameraUnReserved |
|
2068 }; |
|
2069 |
|
2070 /** Mixin base class for camera clients to handle the notification of Reserve status. |
|
2071 |
|
2072 Client must implement MReserveObserver in order to handle the notifications and take appropriate steps accordingly. |
|
2073 |
|
2074 @note By the time client gets unreserved status via callback, the camera may be on its way getting reserved by another client who |
|
2075 might be continuously polling for it. |
|
2076 So, there is no guarantee that the client will be able to reserve it. But it is guaranteed that the client will |
|
2077 receive the notification about change in reserve status. |
|
2078 |
|
2079 @publishedPartner |
|
2080 @prototype |
|
2081 */ |
|
2082 class MReserveObserver |
|
2083 { |
|
2084 public: |
|
2085 /** |
|
2086 This notification is send to provide the reserve status for the camera. |
|
2087 |
|
2088 @param aCameraIndex |
|
2089 The camera index for which the Reserve status has to be provided. |
|
2090 |
|
2091 @param aReserveStatus |
|
2092 The reserve status for the camera. |
|
2093 |
|
2094 @param aErrorCode |
|
2095 The error value. |
|
2096 |
|
2097 @note If error is not KErrNone, then the client is expected to destroy the CCameraStatusWatch retrieved through |
|
2098 TReservedInfo::SubscribeReserveInfoL and re-subscribe if desired. |
|
2099 */ |
|
2100 virtual void ReserveStatus(TInt iCameraIndex, TECamReserveStatus aReserveStatus, TInt aErrorCode) =0; |
|
2101 }; |
|
2102 |
|
2103 class CCameraStatusWatch; |
|
2104 |
|
2105 /** |
|
2106 @publishedPartner |
|
2107 @prototype |
|
2108 |
|
2109 Client uses it to asynchronously receive the reserve status of a camera index through MReserveObserver |
|
2110 */ |
|
2111 class TReservedInfo |
|
2112 { |
|
2113 public: |
|
2114 IMPORT_C static void SubscribeReserveInfoL(MReserveObserver& aReserveObserver, TInt aCameraIndex, CCameraStatusWatch*& aCameraStatusWatch); |
|
2115 }; |
|
2116 |
1844 |
2117 /** |
1845 /** |
2118 An active object class implemented by Symbian and used to subscribe for the updates in the Properties, retrieve the |
1846 An active object class implemented by Symbian and used to subscribe for the updates in the Properties, retrieve the |
2119 Properties and forward the notification to the client. |
1847 Properties and forward the notification to the client. |
2120 |
1848 |
2121 @note Serialized part of the ECam implementation is assumed to define the Properties and publish them whenever there is |
1849 @note Serialized part of the ECam implementation is assumed to define the Properties and publish them whenever there is |
2122 change in the reserve status. |
1850 change in the reserve status. |
2123 */ |
1851 */ |
2124 class CCameraStatusWatch : public CActive |
1852 class CCameraStatusWatch : public CActive |
2125 { |
1853 { |
2126 friend void TReservedInfo::SubscribeReserveInfoL(MReserveObserver& aReserveObserver, TInt aCameraIndex, CCameraStatusWatch*& aCameraStatusWatch); |
|
2127 |
|
2128 public: |
1854 public: |
2129 IMPORT_C ~CCameraStatusWatch(); |
1855 IMPORT_C ~CCameraStatusWatch(); |
2130 |
1856 static CCameraStatusWatch* NewL(MReserveObserver& aReserveObserver, TInt aCameraIndex, TInt aSecureId); |
2131 private: |
1857 private: |
2132 static CCameraStatusWatch* NewL(MReserveObserver& aReserveObserver, TInt aCameraIndex, TInt aSecureId); |
|
2133 |
1858 |
2134 CCameraStatusWatch(MReserveObserver& aReserveObserver, TInt aCameraIndex, TInt aSecureId); |
1859 CCameraStatusWatch(MReserveObserver& aReserveObserver, TInt aCameraIndex, TInt aSecureId); |
2135 void ConstructL(); |
1860 void ConstructL(); |
2136 void RunL(); |
1861 void RunL(); |
2137 void DoCancel(); |
1862 void DoCancel(); |