|
|
1.1 ! root 1: #ifndef _IOKIT_IOCDAUDIONUBCLIENT_H ! 2: #define _IOKIT_IOCDAUDIONUBCLIENT_H ! 3: ! 4: #include <IOKit/IOUserClient.h> ! 5: ! 6: enum { ! 7: kTest = 0, ! 8: kGetNumAudioTracks, ! 9: kGetMSF, ! 10: kPlayTrack, ! 11: kPause, ! 12: kResume, ! 13: kGetVolume, ! 14: kSetVolume, ! 15: kGetAudioStatus, ! 16: kPlayMSF, ! 17: kMethods ! 18: }; ! 19: ! 20: class IOCDAudioNub; ! 21: ! 22: class IOCDAudioNubClient : public IOUserClient ! 23: { ! 24: OSDeclareDefaultStructors(IOCDAudioNubClient) ! 25: ! 26: private: ! 27: task_t fTask; ! 28: IOExternalMethod fMethods[ kMethods ]; ! 29: IOCDAudioNub * fOwner; ! 30: ! 31: public: ! 32: static IOCDAudioNubClient *withTask(task_t owningTask); ! 33: virtual IOReturn clientClose( void ); ! 34: virtual IOReturn clientDied( void ); ! 35: ! 36: virtual IOReturn registerNotificationPort( ! 37: mach_port_t port, UInt32 type ); ! 38: ! 39: virtual IOReturn connectClient( IOUserClient * client ); ! 40: ! 41: virtual IOReturn clientMemoryForType( UInt32 type, ! 42: UInt32 * flags, IOMemoryDescriptor ** memory ); ! 43: ! 44: virtual IOExternalMethod * getExternalMethodForIndex( UInt32 index ); ! 45: ! 46: virtual bool start( IOService * provider ); ! 47: ! 48: virtual IOReturn CDAudioNubTest(UInt32 opcode, ! 49: UInt32 operand1, UInt32 operand2, UInt32 *status); ! 50: ! 51: virtual IOReturn playTrack(UInt32 track, UInt32 *status); ! 52: virtual IOReturn playMSF(UInt32 start_msf, UInt32 end_msf, UInt32 *status); ! 53: virtual IOReturn getMSF(UInt32 track, UInt32 *status); ! 54: virtual IOReturn getNumAudioTracks(UInt32 *status); ! 55: virtual IOReturn pause(UInt32 *status); ! 56: virtual IOReturn resume(UInt32 *status); ! 57: virtual IOReturn getVolume(UInt32 *status); ! 58: virtual IOReturn setVolume(UInt8 left, UInt8 right, UInt32 *status); ! 59: virtual IOReturn getAudioStatus(UInt32 *status, UInt32 *absAddress, ! 60: UInt32 *relAddress, UInt32 *trackType); ! 61: virtual IOReturn readHeader(UInt32 address, UInt32 *status); ! 62: }; ! 63: ! 64: #endif /* _IOKIT_IOCDAUDIONUBCLIENT_H */
This archive runs on limited infrastructure. Preserving old code on modern bandwidth. Automated agents are requested to crawl responsibly.