Annotation of XNU/iokit/Families/IOCDDrive/IOCDAudioNub.cpp, 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: #include "IOCDAudioNub.h"
                     23: #include "IOCDAudioNubClient.h"
                     24: #include <IOKit/storage/IOCDDrive.h>
                     25: 
                     26: #define        super   IOService
                     27: OSDefineMetaClassAndStructors(IOCDAudioNub,IOService)
                     28: 
                     29: IOReturn
                     30: IOCDAudioNub::newUserClient(task_t owningTask,
                     31:                   void *            /* security_id */,
                     32:                   UInt32            type,
                     33:                   IOUserClient **   handler )
                     34:     
                     35: {   
                     36:     IOReturn err = kIOReturnSuccess;
                     37:     IOCDAudioNubClient *      client;
                     38:  
                     39:     kprintf("IOCDAudioNub::newUserClient\n");
                     40:     if( type != 11) {
                     41:         kprintf("IOCDAudioNub::newUserClient bad argument\n");
                     42:         return( kIOReturnBadArgument);
                     43:     }
                     44:     
                     45:     client = IOCDAudioNubClient::withTask(owningTask);
                     46:     
                     47:     if( !client || (false == client->attach( this )) ||
                     48:         (false == client->start( this )) ) {
                     49:         if(client) {  
                     50:             client->detach( this );
                     51:             client->release();
                     52:         }
                     53:         err = kIOReturnNoMemory;
                     54:     }
                     55:     
                     56:     *handler = client;
                     57:     return( err );
                     58: }       
                     59: 
                     60: bool
                     61: IOCDAudioNub::attach(IOService *provider)
                     62: {
                     63:     _provider = (IOCDDrive *)provider;
                     64: 
                     65:     return(super::attach(provider));
                     66: }
                     67: 
                     68: IOReturn
                     69: IOCDAudioNub::audioPlay(positioningType addressType,cdAddress address,
                     70:                                           audioPlayMode mode)
                     71: {
                     72:     return(_provider->audioPlay(addressType,address,mode));
                     73: }
                     74: 
                     75: IOReturn
                     76: IOCDAudioNub::audioPause(bool pause)
                     77: {
                     78:     return(_provider->audioPause(pause));
                     79: }
                     80: 
                     81: IOReturn
                     82: IOCDAudioNub::audioScan(positioningType addressType,cdAddress address,
                     83:                         bool reverse)
                     84: {
                     85:     return(_provider->audioScan(addressType,address,reverse));
                     86: }
                     87: 
                     88: IOReturn
                     89: IOCDAudioNub::audioTrackSearch(positioningType addressType,cdAddress address,
                     90:                                                  bool startPlay,audioPlayMode mode)
                     91: {
                     92:     return(_provider->audioTrackSearch(addressType,address,startPlay,mode));
                     93: }
                     94: 
                     95: IOReturn
                     96: IOCDAudioNub::getAudioStatus(struct audioStatus *status)
                     97: {
                     98:     return(_provider->getAudioStatus(status));
                     99: }
                    100: 
                    101: IOReturn
                    102: IOCDAudioNub::readAudioData(positioningType addressType,cdAddress address,
                    103:                                     UInt8 blockCount,UInt8 *buffer)
                    104: {
                    105:     return(_provider->readAudioData(addressType,address,blockCount,buffer));
                    106: }
                    107: 
                    108: IOReturn
                    109: IOCDAudioNub::readAudioSubcodes(positioningType addressType,cdAddress address,
                    110:                                     UInt8 blockCount,UInt8 *buffer)
                    111: {
                    112:     return(_provider->readAudioSubcodes(addressType,address,blockCount,buffer));
                    113: }
                    114: 
                    115: IOReturn
                    116: IOCDAudioNub::readAudioVolume(UInt8 *leftVolume,UInt8 *rightVolume)
                    117: {
                    118:     return(_provider->readAudioVolume(leftVolume,rightVolume));
                    119: }
                    120: 
                    121: IOReturn
                    122: IOCDAudioNub::readAudioWithQSubcode(positioningType addressType,cdAddress address,
                    123:                                     UInt8 blockCount,UInt8 *buffer)
                    124: {
                    125:     return(_provider->readAudioWithQSubcode(addressType,address,blockCount,buffer));
                    126: }
                    127: 
                    128: IOReturn
                    129: IOCDAudioNub::readAudioWithAllSubcodes(positioningType addressType,cdAddress address,
                    130:                                     UInt8 blockCount,UInt8 *buffer)
                    131: {
                    132:     return(_provider->readAudioWithAllSubcodes(addressType,address,blockCount,buffer));
                    133: }
                    134: 
                    135: IOReturn
                    136: IOCDAudioNub::readEntireTOC(struct macEntireToc *buffer)
                    137: {
                    138:     return(_provider->readEntireTOC(buffer));
                    139: }
                    140: 
                    141: IOReturn
                    142: IOCDAudioNub::readHeader(UInt32 blockAddress,struct headerInfo *buffer)
                    143: {
                    144:     return(_provider->readHeader(blockAddress,buffer));
                    145: }
                    146: 
                    147: IOReturn
                    148: IOCDAudioNub::readISRC(UInt32 track,UInt8 *buffer,bool *found)
                    149: {
                    150:     return(_provider->readISRC(track,buffer,found));
                    151: }
                    152: 
                    153: IOReturn
                    154: IOCDAudioNub::readLeadOutAddress(cdAddress *buffer)
                    155: {
                    156:     return(_provider->readLeadOutAddress(buffer));
                    157: }
                    158: 
                    159: IOReturn
                    160: IOCDAudioNub::readMCN(UInt8 *buffer,bool *found)
                    161: {
                    162:     return(_provider->readMCN(buffer,found));
                    163: }
                    164: 
                    165: IOReturn
                    166: IOCDAudioNub::readQSubcodes(struct qSubcodeTocInfo *buffer,UInt32 bufSize)
                    167: {
                    168:     return(_provider->readQSubcodes(buffer,bufSize));
                    169: }
                    170: 
                    171: IOReturn
                    172: IOCDAudioNub::readSessionInfo(struct sessionInfo *info)
                    173: {
                    174:     return(_provider->readSessionInfo(info));
                    175: }
                    176: 
                    177: IOReturn
                    178: IOCDAudioNub::readSubcodeBuffer(UInt8 *buffer,bool purge,UInt32 entryCount)
                    179: {
                    180:     return(_provider->readSubcodeBuffer(buffer,purge,entryCount));
                    181: }
                    182: 
                    183: IOReturn
                    184: IOCDAudioNub::readTheQSubcode(struct qSubcode *buffer)
                    185: {
                    186:     return(_provider->readTheQSubcode(buffer));
                    187: }
                    188: 
                    189: IOReturn
                    190: IOCDAudioNub::readTrackInfo(UInt32 startingTrack,
                    191:                                        struct trackTypeInfo *buf,UInt32 bufSize)
                    192: {
                    193:     return(_provider->readTrackInfo(startingTrack,buf,bufSize));
                    194: }
                    195: 
                    196: IOReturn
                    197: IOCDAudioNub::readTrackLimits(UInt32 *first,UInt32 *last)
                    198: {
                    199:     return(_provider->readTrackLimits(first,last));
                    200: }
                    201: 
                    202: IOReturn
                    203: IOCDAudioNub::setAudioStopAddress(positioningType addressType,cdAddress address)
                    204: {
                    205:     return(_provider->setAudioStopAddress(addressType,address));
                    206: }
                    207: 
                    208: IOReturn
                    209: IOCDAudioNub::setVolume(UInt8 leftVolume,UInt8 rightVolume)
                    210: {
                    211:     return(_provider->setVolume(leftVolume,rightVolume));
                    212: }

unix.superglobalmegacorp.com

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