Annotation of XNU/iokit/IOKit/audio/IOAudio.h, revision 1.1.1.1

1.1       root        1: /*
                      2:  * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved.
                      3:  *
                      4:  * @APPLE_LICENSE_HEADER_START@
                      5:  * 
                      6:  * The contents of this file constitute Original Code as defined in and
                      7:  * are subject to the Apple Public Source License Version 1.1 (the
                      8:  * "License").  You may not use this file except in compliance with the
                      9:  * License.  Please obtain a copy of the License at
                     10:  * http://www.apple.com/publicsource and read it before using this file.
                     11:  * 
                     12:  * This Original Code and all software distributed under the License are
                     13:  * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER
                     14:  * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES,
                     15:  * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY,
                     16:  * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT.  Please see the
                     17:  * License for the specific language governing rights and limitations
                     18:  * under the License.
                     19:  * 
                     20:  * @APPLE_LICENSE_HEADER_END@
                     21:  */
                     22: 
                     23: /*!
                     24:  * @header IOAudio 
                     25:  * This is the include file defining classes for IOAudio clients.
                     26:  */
                     27: 
                     28: #ifndef _IOAUDIO_H
                     29: #define _IOAUDIO_H
                     30: 
                     31: #include <IOKit/IORegistryEntry.h>
                     32: #include <IOKit/IOService.h>
                     33: #include <IOKit/IOUserClient.h>
                     34: #include <IOKit/audio/IOAudioTypes.h>
                     35: 
                     36: /*!
                     37:  * @enum <no name>
                     38:  * @constant kAllChannels
                     39:  */
                     40: enum {
                     41:     kAllChannels = 0
                     42: };
                     43: 
                     44: /*!
                     45:  * @class IOAudioComponent
                     46:  * @abstract An IOAudioComponent is a piece of hardware inside an audio device
                     47:  * that has interesting, and possibly modifiable, properties.
                     48:  * @discussion Examples are the input and output jacks, the volume control etc.
                     49:  * This class corresponds to the USB Audio class Units and Terminals.
                     50:  * The topology of the audio device (how streams and components are
                     51:  * connected) is represented in the IOAudio registry plane.
                     52:  * Sound flows from the parent to the child.
                     53:  */
                     54: class IOAudioComponent : public IOUserClient
                     55: {      
                     56:     OSDeclareDefaultStructors(IOAudioComponent)
                     57: 
                     58: public:
                     59: 
                     60: };
                     61: 
                     62: /*!
                     63:  * @class IOAudioStream
                     64:  * An IOAudioStream represents the access the CPU has to the A/D and D/A
                     65:  * converters of the sound device.
                     66:  */
                     67: class IOAudioStream : public IOUserClient
                     68: {      
                     69:     OSDeclareDefaultStructors(IOAudioStream)
                     70: 
                     71: public:
                     72: 
                     73:     /*!
                     74:      * @function Flush
                     75:      * @discussion Sets the ending stream position guaranteed to be played after all clients disconnect
                     76:      * @param end stream position to play through after all clients disconnect
                     77:      * @result IOReturn kIOReturnSuccess
                     78:      */
                     79:     virtual IOReturn Flush(IOAudioStreamPosition *end) = 0;
                     80: 
                     81:     /*!
                     82:      * @function setFlow
                     83:      * @discussion Pause/Play control
                     84:      * @param flowing
                     85:      * @result IOReturn kIOReturnSuccess
                     86:      */
                     87:     virtual IOReturn setFlow(bool flowing) = 0;
                     88: 
                     89:     /*!
                     90:      * @function setErase
                     91:      * @discussion Pause/Play control
                     92:      * @param erase true to turn on erase head, false otherwise
                     93:      * @param oldErase previous value
                     94:      * @result IOReturn kIOReturnSuccess
                     95:      */
                     96:    virtual IOReturn setErase(bool erase, SInt32 *oldErase) = 0;
                     97: 
                     98:     /*!
                     99:      * @function isOutput
                    100:      * @discussion Input stream or output one?
                    101:      * @param res non-zero if output, 0 otherwise
                    102:      * @result IOReturn kIOReturnSuccess
                    103:      */
                    104:    virtual IOReturn isOutput(SInt32 *res) const = 0;
                    105: 
                    106:    /*!
                    107:     * @function getMixBuffer
                    108:     * @param mixBuffer pointer to the mix buffer for this stream
                    109:     * @result IOReturn kIOReturnSuccess
                    110:     */
                    111: 
                    112:    virtual IOReturn getMixBuffer(void **mixBuffer) = 0;
                    113: 
                    114: };
                    115: 
                    116: /*!
                    117:  * @class IOAudio
                    118:  * Object representing the complete audio device.
                    119:  * Probably only interesting for devices that can create streams,
                    120:  * such as fancy PCI sound cards with onboard DSPs.
                    121:  */
                    122: class IOAudio : public IOService
                    123: {      
                    124:     OSDeclareAbstractStructors(IOAudio)
                    125: 
                    126: public:
                    127: 
                    128: };
                    129: 
                    130: #endif /* _IOAUDIO_H */

unix.superglobalmegacorp.com

This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.