Loading...
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 | /* * Copyright (c) 1998-2000 Apple Computer, Inc. All rights reserved. * * @APPLE_LICENSE_HEADER_START@ * * The contents of this file constitute Original Code as defined in and * are subject to the Apple Public Source License Version 1.1 (the * "License"). You may not use this file except in compliance with the * License. Please obtain a copy of the License at * http://www.apple.com/publicsource and read it before using this file. * * This Original Code and all software distributed under the License are * distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY KIND, EITHER * EXPRESS OR IMPLIED, AND APPLE HEREBY DISCLAIMS ALL SUCH WARRANTIES, * INCLUDING WITHOUT LIMITATION, ANY WARRANTIES OF MERCHANTABILITY, * FITNESS FOR A PARTICULAR PURPOSE OR NON-INFRINGEMENT. Please see the * License for the specific language governing rights and limitations * under the License. * * @APPLE_LICENSE_HEADER_END@ */ #include <IOKit/storage/IOCDAudioControl.h> #include <IOKit/storage/IOCDAudioControlUserClient.h> #include <IOKit/storage/IOCDBlockStorageDriver.h> #define super IOService OSDefineMetaClassAndStructors(IOCDAudioControl, IOService) IOCDBlockStorageDriver * IOCDAudioControl::getProvider() const { return (IOCDBlockStorageDriver *) IOService::getProvider(); } IOReturn IOCDAudioControl::getStatus(CDAudioStatus *status) { return(getProvider()->getAudioStatus(status)); } CDTOC * IOCDAudioControl::getTOC(void) { return(getProvider()->getTOC()); } IOReturn IOCDAudioControl::getVolume(UInt8 *left,UInt8 *right) { return(getProvider()->getAudioVolume(left,right)); } IOReturn IOCDAudioControl::newUserClient(task_t task, void * /* security */, UInt32 /* type */, IOUserClient ** object ) { IOReturn err = kIOReturnSuccess; IOCDAudioControlUserClient * client; client = IOCDAudioControlUserClient::withTask(task); if( !client || (false == client->attach( this )) || (false == client->start( this )) ) { if(client) { client->detach( this ); client->release(); } err = kIOReturnNoMemory; } *object = client; return( err ); } IOReturn IOCDAudioControl::pause(bool pause) { return(getProvider()->audioPause(pause)); } IOReturn IOCDAudioControl::play(CDMSF timeStart,CDMSF timeStop) { return(getProvider()->audioPlay(timeStart,timeStop)); } IOReturn IOCDAudioControl::scan(CDMSF timeStart,bool reverse) { return(getProvider()->audioScan(timeStart,reverse)); } IOReturn IOCDAudioControl::stop() { return(getProvider()->audioStop()); } IOReturn IOCDAudioControl::setVolume(UInt8 left,UInt8 right) { return(getProvider()->setAudioVolume(left,right)); } OSMetaClassDefineReservedUnused(IOCDAudioControl, 0); OSMetaClassDefineReservedUnused(IOCDAudioControl, 1); OSMetaClassDefineReservedUnused(IOCDAudioControl, 2); OSMetaClassDefineReservedUnused(IOCDAudioControl, 3); OSMetaClassDefineReservedUnused(IOCDAudioControl, 4); OSMetaClassDefineReservedUnused(IOCDAudioControl, 5); OSMetaClassDefineReservedUnused(IOCDAudioControl, 6); OSMetaClassDefineReservedUnused(IOCDAudioControl, 7); |