TPAACAudioConverter.h 1.8 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253
  1. //
  2. // TPAACAudioConverter.h
  3. //
  4. // Created by Michael Tyson on 02/04/2011.
  5. // Copyright 2011 A Tasty Pixel. All rights reserved.
  6. //
  7. #import <Foundation/Foundation.h>
  8. #import <AudioToolbox/AudioToolbox.h>
  9. extern NSString * TPAACAudioConverterErrorDomain;
  10. enum {
  11. TPAACAudioConverterFileError,
  12. TPAACAudioConverterFormatError,
  13. TPAACAudioConverterUnrecoverableInterruptionError,
  14. TPAACAudioConverterInitialisationError
  15. };
  16. @protocol TPAACAudioConverterDelegate;
  17. @protocol TPAACAudioConverterDataSource;
  18. @interface TPAACAudioConverter : NSObject
  19. + (BOOL)AACConverterAvailable;
  20. - (id)initWithDelegate:(id<TPAACAudioConverterDelegate>)delegate source:(NSString*)sourcePath destination:(NSString*)destinationPath;
  21. - (id)initWithDelegate:(id<TPAACAudioConverterDelegate>)delegate dataSource:(id<TPAACAudioConverterDataSource>)dataSource audioFormat:(AudioStreamBasicDescription)audioFormat destination:(NSString*)destinationPath;
  22. - (void)start;
  23. - (void)cancel;
  24. - (void)interrupt;
  25. - (void)resume;
  26. @property (nonatomic, readonly, strong) NSString *source;
  27. @property (nonatomic, readonly, strong) NSString *destination;
  28. @property (nonatomic, readonly) AudioStreamBasicDescription audioFormat;
  29. @end
  30. @protocol TPAACAudioConverterDelegate <NSObject>
  31. - (void)AACAudioConverterDidFinishConversion:(TPAACAudioConverter*)converter;
  32. - (void)AACAudioConverter:(TPAACAudioConverter*)converter didFailWithError:(NSError*)error;
  33. @optional
  34. - (void)AACAudioConverter:(TPAACAudioConverter*)converter didMakeProgress:(CGFloat)progress;
  35. @end
  36. @protocol TPAACAudioConverterDataSource <NSObject>
  37. - (void)AACAudioConverter:(TPAACAudioConverter*)converter nextBytes:(char*)bytes length:(NSUInteger*)length;
  38. @optional
  39. - (void)AACAudioConverter:(TPAACAudioConverter *)converter seekToPosition:(NSUInteger)position;
  40. @end