diff options
author | Struan Donald <struan@exo.org.uk> | 2013-03-25 12:48:43 +0000 |
---|---|---|
committer | Struan Donald <struan@exo.org.uk> | 2013-03-25 13:15:45 +0000 |
commit | 5ecc3c7d6049e0006f6dc25204f2ba5793864586 (patch) | |
tree | 7f5c026524b54a9ab59255d25473a870ede630e8 /iPhone/CordovaLib/Classes/CDVCapture.h | |
parent | 6a80df824846ddf74fda82835b997de886d67567 (diff) |
Upgrade to iOS phonegap 2.3
Diffstat (limited to 'iPhone/CordovaLib/Classes/CDVCapture.h')
-rwxr-xr-x | iPhone/CordovaLib/Classes/CDVCapture.h | 118 |
1 files changed, 118 insertions, 0 deletions
diff --git a/iPhone/CordovaLib/Classes/CDVCapture.h b/iPhone/CordovaLib/Classes/CDVCapture.h new file mode 100755 index 0000000..afb82b4 --- /dev/null +++ b/iPhone/CordovaLib/Classes/CDVCapture.h @@ -0,0 +1,118 @@ +/* + Licensed to the Apache Software Foundation (ASF) under one + or more contributor license agreements. See the NOTICE file + distributed with this work for additional information + regarding copyright ownership. The ASF licenses this file + to you under the Apache License, Version 2.0 (the + "License"); you may not use this file except in compliance + with the License. You may obtain a copy of the License at + + http://www.apache.org/licenses/LICENSE-2.0 + + Unless required by applicable law or agreed to in writing, + software distributed under the License is distributed on an + "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY + KIND, either express or implied. See the License for the + specific language governing permissions and limitations + under the License. + */ + +#import <Foundation/Foundation.h> +#import <MobileCoreServices/MobileCoreServices.h> +#import <AVFoundation/AVFoundation.h> +#import "CDVPlugin.h" +#import "CDVFile.h" + +enum CDVCaptureError { + CAPTURE_INTERNAL_ERR = 0, + CAPTURE_APPLICATION_BUSY = 1, + CAPTURE_INVALID_ARGUMENT = 2, + CAPTURE_NO_MEDIA_FILES = 3, + CAPTURE_NOT_SUPPORTED = 20 +}; +typedef NSUInteger CDVCaptureError; + +@interface CDVImagePicker : UIImagePickerController +{ + NSString* callbackid; + NSInteger quality; + NSString* mimeType; +} +@property (assign) NSInteger quality; +@property (copy) NSString* callbackId; +@property (copy) NSString* mimeType; + +@end + +@interface CDVCapture : CDVPlugin <UIImagePickerControllerDelegate, UINavigationControllerDelegate> +{ + CDVImagePicker* pickerController; + BOOL inUse; +} +@property BOOL inUse; +- (void)captureAudio:(CDVInvokedUrlCommand*)command; +- (void)captureImage:(CDVInvokedUrlCommand*)command; +- (CDVPluginResult*)processImage:(UIImage*)image type:(NSString*)mimeType forCallbackId:(NSString*)callbackId; +- (void)captureVideo:(CDVInvokedUrlCommand*)command; +- (CDVPluginResult*)processVideo:(NSString*)moviePath forCallbackId:(NSString*)callbackId; +- (void)getMediaModes:(CDVInvokedUrlCommand*)command; +- (void)getFormatData:(CDVInvokedUrlCommand*)command; +- (NSDictionary*)getMediaDictionaryFromPath:(NSString*)fullPath ofType:(NSString*)type; +- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingMediaWithInfo:(NSDictionary*)info; +- (void)imagePickerController:(UIImagePickerController*)picker didFinishPickingImage:(UIImage*)image editingInfo:(NSDictionary*)editingInfo; +- (void)imagePickerControllerDidCancel:(UIImagePickerController*)picker; + +@end + +@interface CDVAudioNavigationController : UINavigationController + +@end + +/* AudioRecorderViewController is used to create a simple view for audio recording. + * It is created from [Capture captureAudio]. It creates a very simple interface for + * recording by presenting just a record/stop button and a Done button to close the view. + * The recording time is displayed and recording for a specified duration is supported. When duration + * is specified there is no UI to the user - recording just stops when the specified + * duration is reached. The UI has been minimized to avoid localization. + */ +@interface CDVAudioRecorderViewController : UIViewController <AVAudioRecorderDelegate> +{ + CDVCaptureError errorCode; + NSString* callbackId; + NSNumber* duration; + CDVCapture* captureCommand; + UIBarButtonItem* doneButton; + UIView* recordingView; + UIButton* recordButton; + UIImage* recordImage; + UIImage* stopRecordImage; + UILabel* timerLabel; + AVAudioRecorder* avRecorder; + AVAudioSession* avSession; + CDVPluginResult* pluginResult; + NSTimer* timer; + BOOL isTimed; +} +@property (nonatomic) CDVCaptureError errorCode; +@property (nonatomic, copy) NSString* callbackId; +@property (nonatomic, copy) NSNumber* duration; +@property (nonatomic, strong) CDVCapture* captureCommand; +@property (nonatomic, strong) UIBarButtonItem* doneButton; +@property (nonatomic, strong) UIView* recordingView; +@property (nonatomic, strong) UIButton* recordButton; +@property (nonatomic, strong) UIImage* recordImage; +@property (nonatomic, strong) UIImage* stopRecordImage; +@property (nonatomic, strong) UILabel* timerLabel; +@property (nonatomic, strong) AVAudioRecorder* avRecorder; +@property (nonatomic, strong) AVAudioSession* avSession; +@property (nonatomic, strong) CDVPluginResult* pluginResult; +@property (nonatomic, strong) NSTimer* timer; +@property (nonatomic) BOOL isTimed; + +- (id)initWithCommand:(CDVPlugin*)theCommand duration:(NSNumber*)theDuration callbackId:(NSString*)theCallbackId; +- (void)processButton:(id)sender; +- (void)stopRecordingCleanup; +- (void)dismissAudioView:(id)sender; +- (NSString*)formatTime:(int)interval; +- (void)updateTime; +@end |