2006-01-20 15:34:02 +00:00
|
|
|
//
|
|
|
|
// OutputCoreAudio.h
|
|
|
|
// Cog
|
|
|
|
//
|
2006-09-04 18:46:18 +00:00
|
|
|
// Created by Vincent Spader on 8/2/05.
|
|
|
|
// Copyright 2005 Vincent Spader. All rights reserved.
|
2006-01-20 15:34:02 +00:00
|
|
|
//
|
|
|
|
|
2020-03-23 08:46:41 +00:00
|
|
|
#import <AssertMacros.h>
|
2006-01-20 15:34:02 +00:00
|
|
|
#import <Cocoa/Cocoa.h>
|
2022-01-12 04:38:17 +00:00
|
|
|
#import <dispatch/dispatch.h>
|
2006-01-20 15:34:02 +00:00
|
|
|
|
|
|
|
#import <CoreAudio/AudioHardware.h>
|
|
|
|
#import <AudioToolbox/AudioToolbox.h>
|
|
|
|
#import <AudioUnit/AudioUnit.h>
|
2022-01-11 15:06:40 +00:00
|
|
|
#import <AVFoundation/AVFoundation.h>
|
2006-01-20 15:34:02 +00:00
|
|
|
|
2007-02-24 20:36:27 +00:00
|
|
|
@class OutputNode;
|
|
|
|
|
2006-01-20 15:34:02 +00:00
|
|
|
@interface OutputCoreAudio : NSObject {
|
2007-02-24 20:36:27 +00:00
|
|
|
OutputNode * outputController;
|
2021-09-18 02:09:34 +00:00
|
|
|
|
2022-01-13 00:04:41 +00:00
|
|
|
BOOL running;
|
2021-09-18 02:09:34 +00:00
|
|
|
BOOL stopping;
|
2021-12-27 01:16:16 +00:00
|
|
|
BOOL stopped;
|
2021-12-26 06:32:43 +00:00
|
|
|
|
2021-12-27 05:27:26 +00:00
|
|
|
BOOL listenerapplied;
|
|
|
|
|
2021-12-26 06:32:43 +00:00
|
|
|
float volume;
|
|
|
|
|
2013-10-07 07:24:00 +00:00
|
|
|
AudioDeviceID outputDeviceID;
|
2021-12-26 06:32:43 +00:00
|
|
|
AudioStreamBasicDescription deviceFormat; // info about the default device
|
|
|
|
|
2022-01-11 15:06:40 +00:00
|
|
|
AUAudioUnit *_au;
|
|
|
|
size_t _bufferSize;
|
2022-01-12 04:38:17 +00:00
|
|
|
|
2022-01-12 06:06:41 +00:00
|
|
|
dispatch_semaphore_t _sema;
|
2006-01-20 15:34:02 +00:00
|
|
|
}
|
|
|
|
|
2007-02-24 20:36:27 +00:00
|
|
|
- (id)initWithController:(OutputNode *)c;
|
2006-01-20 15:34:02 +00:00
|
|
|
|
|
|
|
- (BOOL)setup;
|
2020-02-17 17:20:48 +00:00
|
|
|
- (OSStatus)setOutputDeviceByID:(AudioDeviceID)deviceID;
|
|
|
|
- (BOOL)setOutputDeviceWithDeviceDict:(NSDictionary *)deviceDict;
|
2006-01-20 15:34:02 +00:00
|
|
|
- (void)start;
|
2007-02-20 01:02:23 +00:00
|
|
|
- (void)pause;
|
|
|
|
- (void)resume;
|
|
|
|
- (void)stop;
|
2006-01-20 15:34:02 +00:00
|
|
|
|
|
|
|
- (void)setVolume:(double) v;
|
|
|
|
|
|
|
|
@end
|