File:  [Apple XNU] / XNU / iokit / Families / IOCDDrive / IOCDAudioNubClient.h
Revision 1.1.1.1 (vendor branch): download - view: text, annotated - select for diffs
Tue Apr 24 17:44:56 2018 UTC (8 years, 2 months ago) by root
Branches: MAIN, Apple
CVS tags: v68_4-1_1, HEAD
xnu-68.4-1.1

#ifndef _IOKIT_IOCDAUDIONUBCLIENT_H
#define _IOKIT_IOCDAUDIONUBCLIENT_H

#include <IOKit/IOUserClient.h>

enum {
    kTest = 0,
    kGetNumAudioTracks,
    kGetMSF,
    kPlayTrack,
    kPause,
    kResume,
    kGetVolume,
    kSetVolume,
    kGetAudioStatus,
    kPlayMSF,
    kMethods
};

class IOCDAudioNub;

class IOCDAudioNubClient : public IOUserClient
{
    OSDeclareDefaultStructors(IOCDAudioNubClient)

private:
    task_t		fTask;
    IOExternalMethod    fMethods[ kMethods ];
    IOCDAudioNub *      fOwner;

public:
    static IOCDAudioNubClient *withTask(task_t owningTask);
    virtual IOReturn clientClose( void );
    virtual IOReturn clientDied( void );

    virtual IOReturn registerNotificationPort(
		mach_port_t port, UInt32 type );

    virtual IOReturn connectClient( IOUserClient * client );

    virtual IOReturn clientMemoryForType( UInt32 type,
        UInt32 * flags, IOMemoryDescriptor ** memory );

    virtual IOExternalMethod * getExternalMethodForIndex( UInt32 index );

    virtual bool start( IOService * provider );

    virtual IOReturn CDAudioNubTest(UInt32 opcode,
        UInt32 operand1, UInt32 operand2, UInt32 *status);

    virtual IOReturn playTrack(UInt32 track, UInt32 *status);
    virtual IOReturn playMSF(UInt32 start_msf, UInt32 end_msf, UInt32 *status);
    virtual IOReturn getMSF(UInt32 track, UInt32 *status);
    virtual IOReturn getNumAudioTracks(UInt32 *status);
    virtual IOReturn pause(UInt32 *status);
    virtual IOReturn resume(UInt32 *status);
    virtual IOReturn getVolume(UInt32 *status);
    virtual IOReturn setVolume(UInt8 left, UInt8 right, UInt32 *status);
    virtual IOReturn getAudioStatus(UInt32 *status, UInt32 *absAddress,
                         UInt32 *relAddress, UInt32 *trackType);
    virtual IOReturn readHeader(UInt32 address, UInt32 *status);
};

#endif /* _IOKIT_IOCDAUDIONUBCLIENT_H */

unix.superglobalmegacorp.com

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