JAVASCRIPT   67

cfcamera.js

Guest on 22nd July 2021 05:35:04 PM

  1. /*************************************************************************
  2. *
  3. * ADOBE CONFIDENTIAL
  4.  
  5. * ___________________
  6. *
  7. *  Copyright Adobe Systems Incorporated
  8. *  All Rights Reserved.
  9. *
  10. * NOTICE:  All information contained herein is, and remains
  11. * the property of Adobe Systems Incorporated and its suppliers,
  12. * if any.  The intellectual and technical concepts contained
  13. * herein are proprietary to Adobe Systems Incorporated and its
  14. * suppliers and may be covered by U.S. and Foreign Patents,
  15. * patents in process, and are protected by trade secret or copyright law.
  16. * Dissemination of this information or reproduction of this material
  17. * is strictly forbidden unless prior written permission is obtained
  18. * from Adobe Systems Incorporated.
  19. **************************************************************************/
  20.  
  21. /**
  22.  * @author P.N. Anantharaman (ananth@adobe.com)
  23.  * this is a wrapper that invokes the underlying DNFI layer classes
  24.  * in order to distinguish DNFI class names with the class names in the wrapper, we prepend the class name with W
  25.  * thus, WCamera would invoke Camera class from DNFI layer. It is the job of the code generator from CF server to convert Camera() from
  26.  * the code embedded in Cfclient to WCamera
  27.  * 2 Aug 2012
  28.  */
  29.  
  30. /*
  31.  * Class: WCamera
  32.  * Methods:
  33.  *              getPicture()
  34.  *              savePicture(imgObject)
  35.  *              getPictureAndSave()
  36.  *              cleanUp()
  37.  */
  38.  
  39.         //loadedWCamera = true;
  40.                
  41. var WCamera = function()
  42. {
  43.         if(typeof Camera != "undefined" && typeof navigator.camera != "undefined")
  44.         {
  45.         __$cf._log("Initializing Camera...");
  46.                 var self = this;
  47.                 this.successObject = new DnfiStatus('camera', dnfi.SUCCESS.code, dnfi.SUCCESS.message);        
  48.                 this.callBackStack = new Array();
  49.                 //this.retVal = "";
  50.                 // the var statements below define the properties of the object
  51.                
  52.                 this.source = {
  53.                         type: Camera.PictureSourceType.CAMERA,
  54.                         provider: 'camera',
  55.                         url: null,
  56.                         path: null,
  57.                         name: null,
  58.                         authKey: ''
  59.                 };
  60.                 this.destination = {
  61.                         type: 'local',
  62.                         provider: '',
  63.                         url: '',
  64.                         path: null,
  65.                         name: null,
  66.                         authKey: ''
  67.                 };
  68.                 this.options = {};
  69.                 this.options.allowEdit = false;
  70.                 this.options.encodingType = Camera.EncodingType.JPEG;
  71.                 this.options.correctOrientation = false;
  72.                 this.options.quality= 75;
  73.                 this.options.saveToPhotoAlbum = false;
  74.                 this.options.popoverOptions = new CameraPopoverOptions(300,300,100,100,Camera.PopoverArrowDirection.ARROW_ANY);
  75.                
  76.                 if(typeof Camera.Direction != "undefined")
  77.                 {
  78.                         this.FRONT = Camera.Direction.FRONT;
  79.                         this.BACK = Camera.Direction.BACK;
  80.                 }
  81.                
  82.                
  83. var getPictureFromSource = function(context,source, params, base64)
  84.                 {
  85.                         var camOpts = self.options;
  86.                                                
  87.                        
  88.                         if (typeof params != "undefined" && params != null)
  89.                         {
  90.                                 _updateProperties(camOpts,params);     
  91.                                 if (typeof camOpts.encodingType == "string")
  92.                                 {
  93.                                         if(camOpts.encodingType.toLowerCase() == "jpeg")
  94.                                                 camOpts.encodingType = Camera.EncodingType.JPEG;
  95.                                         else if(camOpts.encodingType.toLowerCase() == "png")
  96.                                                 camOpts.encodingType = Camera.EncodingType.PNG;
  97.                                 }
  98.                         }
  99.                                                        
  100.                         if(base64)
  101.                                         camOpts.destinationType = Camera.DestinationType.DATA_URL;
  102.                                 else
  103.                                         camOpts.destinationType = Camera.DestinationType.FILE_URI;
  104.                                
  105.                         if(source == "camera")
  106.                         {
  107.                                 camOpts.sourceType = Camera.PictureSourceType.CAMERA;                                  
  108.                                 __$cf._log("getting the image from device's camera");                          
  109.                         }
  110.                         else if (source == "album")
  111.                         {
  112.                                 camOpts.sourceType = Camera.PictureSourceType.SAVEDPHOTOALBUM;                                 
  113.                                 __$cf._log("getting the image from album");
  114.                                
  115.                         }
  116.                         else if (source == "library")
  117.                         {
  118.                                 camOpts.sourceType = Camera.PictureSourceType.PHOTOLIBRARY;                                    
  119.                                 __$cf._log("getting the image from photo library");
  120.                                
  121.                         }
  122.                        
  123.                         navigator.camera.getPicture(function(imgData)
  124.                                 {                              
  125.                                         runCallBacks(context.cb, self.successObject, imgData);
  126.                                 }, function(mess)
  127.                                 {
  128.                                         __$cf._log("Camera Error - "+mess);
  129.                                         self.returnError(context,new DnfiStatus('camera', wCameraError.GENERAL_ERROR, mess));
  130.                                 }
  131.                                 , camOpts);
  132.                 }
  133.                
  134.                 this.setOptions = function(context, opts)
  135.                 {
  136.                         if(_validateDeviceAPI(context, this.arguments.length-1, 1, "setOptions"))
  137.                         {
  138.                                 if(typeof opts != "undefined")
  139.                                 {
  140.                                         _updateProperties(self.options,opts);                  
  141.                                                                
  142.                                         if (typeof opts.encodingType == "string")
  143.                                         {                              
  144.                                                 if(opts.encodingType.toLowerCase() == "jpeg")
  145.                                                         self.options.encodingType = Camera.EncodingType.JPEG;
  146.                                                 else if(opts.encodingType.toLowerCase() == "png")
  147.                                                         self.options.encodingType = Camera.EncodingType.PNG;
  148.                                         }
  149.                                 }
  150.                                 runCallBacks(context.cb, self.successObject, null);
  151.                         }
  152.                 }
  153.                
  154.                 this.getOptions = function(context)
  155.                 {
  156.                         p = {};
  157.                        
  158.                         _updateProperties(p,self.options);                     
  159.                        
  160.                         if(self.options.encodingType == Camera.EncodingType.JPEG)
  161.                                 p.encodingType = "jpeg";
  162.                         else if(self.options.encodingType == Camera.EncodingType.PNG)
  163.                                 p.encodingType = "png";
  164.                        
  165.                         runCallBacks(context.cb, self.successObject, p);
  166.                 }
  167.                
  168. /* ----------------------------------------------------------------------------------------------------------------------
  169.  * getPicture(context, src, params)
  170.  ------------------------------------------------------------------------------------------------------------------------
  171.  */            
  172.                 // context has the form: {ret:retVarName, cb:callbackstack}, we may add more fields later to the context
  173.                 // dest, src, params are objects that map in to the corresponding properties of the WCamera object
  174.                
  175.                 this.getPicture = function (context, params, base64)
  176.                 {                      
  177.                         getPictureFromSource(context,"camera", params,base64);
  178.                 }
  179.                
  180.                 this.getPictureFromAlbum = function (context, params, base64)
  181.                 {
  182.                         getPictureFromSource(context,"album", params,base64);
  183.                 }
  184.                
  185.                 this.getPictureFromPhotoLibrary = function (context, params, base64)
  186.                 {
  187.                         getPictureFromSource(context,"library", params,base64);
  188.                 }
  189.                
  190.                
  191.                
  192.  
  193. /* -----------------------------------------------------------------------------------------------------------------------
  194.  * cleanUp() - doesn't work on Android
  195.  * --------------------------------------------------------------------------------------------------------------------*/
  196.                 this.cleanup = function(context)
  197.                 {
  198.                         if (typeof navigator.camera.cleanup != "undefined")
  199.                         {
  200.                                 navigator.camera.cleanup(function()
  201.                                 {
  202.                                         //self.callBackStack = context.cb;
  203.                                         //                                      self.retVal = context.ret;
  204.                                         runCallBacks(context.cb, successObject);
  205.                                 }, function(mess)
  206.                                 {
  207.                                         self.returnError(context, new DnfiStatus('camera', wCameraError.GENERAL_ERROR, mess));
  208.                                 });
  209.                         }
  210.                         else
  211.                                 runCallBacks(context.cb, new DnfiStatus('camera', wCameraError.UNSUPPORTED_OPERATION_ERROR.code,
  212.                                                                 wCameraError.UNSUPPORTED_OPERATION_ERROR.message),null);
  213.                 }
  214.        
  215.        
  216.                 this.cameraError = function (mess)
  217.                 {
  218.                         //alert("error in getPicture(): " + mess);
  219.                         //need to find context here
  220.                         self.returnError(context,new DnfiStatus('camera', wCameraError.GENERAL_ERROR, mess));
  221.                 }
  222.                
  223.                 this.returnError = function (context,e)
  224.                 {
  225.                         runCallBacks(context.cb, e, null);
  226.                 }
  227.  
  228.                 this.toString = function()
  229.                 {
  230.                         return("WCamera");
  231.                 }
  232.         }
  233.                 //return null;
  234. } //WCamera

Raw Paste


Login or Register to edit or fork this paste. It's free.