1. 개요

     단말기에 부착된 카메라를 widget contents에서 제어할 수 있도록 API를 제공하는 모듈
     단순히 Camera를 이용하여 사진을 찍고 동영상을 촬영하는 수준이 아니라 Camera의
     다양한 Feature들 화질이나 Zoom_Level, Brightness, Contrast, White_Balance등의 값을 
     설정하는 것을 가능하게 하는 모듈.
2. Interface
     1) CamaraManager
          – getCameras();
             사용가능한 Camera의 List를 반환하는 함수. 몇개의 Camera를 반환할지는 구현과 단말기의 성능에
             따라 다르다.
             ex) var cameras = bondi.camera.getCameras();
 
     2) Camera
          * Constants (각각의 Constant들은 Camera의 Feature(기능 or 성능)를 의미한다)
             – QUALITY : “high”, “medium”, “low”와 같이 사진이나 동영상의 품질을 의미한다.
             – RESOLUTION_VIDEO : {horizontal : 120, vertical : 160} pixel 값을 가로와 세로로 설정한다.
             – RESOLUTION_PICTURE : {horizontal : 240, vertical : 360} pixel 값을 가로와 세로로 설정한다.
             – ZOOM_LEVEL_OPTICAL : 광학 줌
             – ZOOM_LEVEL_DIGITAL  : 디지탈 줌
             – BRIGHTNESS : 밝기 설정
             – WHITE_BALANCE_MODE : 카메라의 White balance mode를 의미한다.
             – CONTRAST : 대비값
             – NIGHT_MODE : true / false
             – FOCUS_MODE : auto / manual
             – FOCUS : 심도값 (FOCUS_MODE가 manual일 때만 의미가 있다.)
             – FLASH : auto / on / off
             – LIGHT : true / false
             – FRAME_RATE : 동영상의 frame rate값
             – AUDIO : 음성을 지원할건지 말건지. true / false
          * Read Only Attribute
             – unsigned short id :  카메라를 구별하는 identifier
             – DOMString name : 카메라를 설명하는 이름
 
          * Method
             – getSupportedFeatureKeys();
               Feature List(위의 Constants)중 지원하는 Feature들의 Key값을 Array로 반환하는 함수.
               ex) var features = camera.getSupportedFeatureKeys();
             – getSupportedFeatureValues(featureKey);
               Featrue별로 지원하는 값을 Array로 반환하는 함수.
               featureKey  : Constant, defined above.
               ex) var lightValues = camera.getSupportedFeatureValues(camera.LIGHT);
             – getFeatureValue(featureKey);
               Feature의 현재 설정값을 얻어오는 함수.
               ex) var currentLightValue = camera.getFeatureValue(camera.LIGHT);
             – setFeatureValue(featureKey, featureValue);
               Feature의 값을 설정하는 함수.
               ex) camera.setFeatureValue(camera.FLASH, true);
             – takePicture(successCallback, errorCallback);
                단말기에 내장된 카메라를 이용하여 사진을 촬영하는 함수. 사진의 속성은 미리 정의한 Feature를
                따르거나 Default값을 사용해서 촬영한다. 촬영된 사진은 미리 정의된 Folder에 저장이 되며, Path는
                Implementation Dependent하다.
                successCallback : 사진촬영이 정상적으로 종료될 때 호출되는 Callback으로 촬영된 사진의 Path를
                                            인자로 전달받는다.
                errorCallback : 사진촬영중 오류가 발생했을때 호출되는 Callback.
                ex) function onCapture (file) {
                        alert (“Picture taken : ” + file);
                      }
                      function onError () {
                      }
                      setTimeout(function() { camera.takePicture (onCapture, onError); }, 10000);

             – beginRecording (successCallback, errorCallback);
                단말기에 내장된 카메라를 사용하여 동영상을 촬영하는 함수. 동영상의 속성은 미리 정의한 Feature를
                따르거나 Default값을 사용한다. 동영상 촬영이 정상적으로 종료되면 successCallback을 호출함으로써
                이를 알리게 되는데 successCallback은 촬영된 file을 인자로 넘겨받는다.
                successCallback : 동영상촬영이 정상적으로 종료될 때 호출되는 Callback으로 촬영된 동영상의 Path를
                                            인자로 전달받는다
                errorCallback : 동영상촬영중 오류가 발생했을때 호출되는 Callback.

             – endRecording (successCallback, errorCallback);
                beginRecording을 통해 시작한 동영상 촬영 작업을 종료하는 함수.

                ex) function onError() {
                      }
                      function onEndRecording (file) {
                        alert (“Video taken : ” + file);
                      }
                      function onBeginRecording(file) {
                        setTimeout (function() {camera.endRecording(onEndRecording, onError); }, 5000};
                      }
                      setTimeout(function() { camera.beginRecording(onBeginRecording, onError); }, 10000);