Mac OS 9
IsochronousDataHandler.h File Reference

The defines the client API to an Isochronous Data Handler, which is. More...

#include <MacTypes.h>
#include <MoviesFormat.h>
#include <QuickTimeComponents.h>

Go to the source code of this file.

Data Structures

struct  IDHIsochInterval
 
struct  IDHDeviceStatus
 
struct  IDHEventHeader
 
struct  IDHGenericEvent
 
struct  IDHDeviceConnectionEvent
 
struct  IDHDeviceIOEnableEvent
 
struct  IDHParameterBlock
 
struct  IDHResolution
 
struct  IDHDimension
 

Macros

#define NewIDHNotificationUPP(userRoutine)   (userRoutine)
 
#define DisposeIDHNotificationUPP(userUPP)
 
#define InvokeIDHNotificationUPP(event, userData, userUPP)    (*userUPP)(event, userData)
 

Typedefs

typedef UInt32 IDHDeviceID
 
typedef struct IDHIsochInterval IDHIsochInterval
 
typedef struct OpaquePsuedoID * PsuedoID
 
typedef struct IDHDeviceStatus IDHDeviceStatus
 
typedef UInt32 IDHEvent
 
typedef UInt32 IDHNotificationID
 
typedef struct IDHEventHeader IDHEventHeader
 
typedef struct IDHGenericEvent IDHGenericEvent
 
typedef struct IDHDeviceConnectionEvent IDHDeviceConnectionEvent
 
typedef struct IDHDeviceIOEnableEvent IDHDeviceIOEnableEvent
 
typedef void * userData
 
typedef IDHNotificationProcPtr IDHNotificationProc
 
typedef struct IDHParameterBlock IDHParameterBlock
 
typedef struct IDHResolution IDHResolution
 
typedef struct IDHDimension IDHDimension
 

Enumerations

enum  { kIDHComponentType = FOUR_CHAR_CODE('ihlr') , kIDHSubtypeDV = FOUR_CHAR_CODE('dv ') , kIDHSubtypeFireWireConference }
 
enum  { kIDHInterfaceVersion1 = 0x0001 }
 
enum  {
  kIDHDeviceListAtomType = FOUR_CHAR_CODE('dlst') , kIDHDeviceAtomType = FOUR_CHAR_CODE('devc') , kIDHIsochServiceAtomType = FOUR_CHAR_CODE('isoc') , kIDHIsochModeAtomType = FOUR_CHAR_CODE('mode') ,
  kIDHDeviceIDType = FOUR_CHAR_CODE('dvid') , kIDHDefaultIOType = FOUR_CHAR_CODE('dfio') , kIDHIsochVersionAtomType = FOUR_CHAR_CODE('iver') , kIDHUniqueIDType = FOUR_CHAR_CODE('unid') ,
  kIDHNameAtomType = FOUR_CHAR_CODE('name') , kIDHUseCMPAtomType = FOUR_CHAR_CODE('ucmp') , kIDHIsochMediaType = FOUR_CHAR_CODE('av ') , kIDHDataTypeAtomType = FOUR_CHAR_CODE('dtyp') ,
  kIDHDataSizeAtomType , kIDHDataBufferSizeAtomType , kIDHDataIntervalAtomType = FOUR_CHAR_CODE('intv') , kIDHDataIODirectionAtomType = FOUR_CHAR_CODE('ddir') ,
  kIDHSoundMediaAtomType = FOUR_CHAR_CODE('soun') , kIDHSoundTypeAtomType = FOUR_CHAR_CODE('type') , kIDHSoundChannelCountAtomType = FOUR_CHAR_CODE('ccnt') , kIDHSoundSampleSizeAtomType = FOUR_CHAR_CODE('ssiz') ,
  kIDHSoundSampleRateAtomType , kIDHVideoMediaAtomType = FOUR_CHAR_CODE('vide') , kIDHVideoDimensionsAtomType = FOUR_CHAR_CODE('dimn') , kIDHVideoResolutionAtomType = FOUR_CHAR_CODE('resl') ,
  kIDHVideoRefreshRateAtomType = FOUR_CHAR_CODE('refr') , kIDHVideoPixelTypeAtomType = FOUR_CHAR_CODE('pixl') , kIDHVideoDecompressorAtomType = FOUR_CHAR_CODE('deco') , kIDHVideoDecompressorTypeAtomType = FOUR_CHAR_CODE('dety') ,
  kIDHVideoDecompressorContinuousAtomType = FOUR_CHAR_CODE('cont') , kIDHVideoDecompressorComponentAtomType = FOUR_CHAR_CODE('cmpt')
}
 
enum  { kIDHDataTypeIsInput = 1L << 0 , kIDHDataTypeIsOutput = 1L << 1 , kIDHDataTypeIsInputAndOutput = 1L << 2 }
 
enum  {
  kIDHOpenForReadTransactions = 1L << 0 , kIDHOpenForWriteTransactions = 1L << 1 , kIDHOpenWithExclusiveAccess = 1L << 2 , kIDHOpenWithHeldBuffers ,
  kIDHCloseForReadTransactions = 1L << 4 , kIDHCloseForWriteTransactions = 1L << 5
}
 
enum  {
  kIDHErrDeviceDisconnected = -14101 , kIDHErrInvalidDeviceID = -14102 , kIDHErrDeviceInUse = -14104 , kIDHErrDeviceNotOpened = -14105 ,
  kIDHErrDeviceBusy = -14106 , kIDHErrDeviceReadError = -14107 , kIDHErrDeviceWriteError = -14108 , kIDHErrDeviceNotConfigured = -14109 ,
  kIDHErrDeviceList = -14110 , kIDHErrCompletionPending = -14111 , kIDHErrDeviceTimeout = -14112 , kIDHErrInvalidIndex = -14113 ,
  kIDHErrDeviceCantRead = -14114 , kIDHErrDeviceCantWrite = -14115 , kIDHErrCallNotSupported = -14116
}
 
enum  { kIDHInvalidDeviceID = 0 , kIDHDeviceIDEveryDevice = (long)0xFFFFFFFF }
 
enum  {
  kIDHEventInvalid = 0 , kIDHEventDeviceAdded = 1L << 0 , kIDHEventDeviceRemoved = 1L << 1 , kIDHEventDeviceChanged ,
  kIDHEventReadEnabled = 1L << 3 , kIDHEventReserved1 = 1L << 4 , kIDHEventReadDisabled , kIDHEventWriteEnabled = 1L << 6 ,
  kIDHEventReserved2 = 1L << 7 , kIDHEventWriteDisabled , kIDHEventEveryEvent = (unsigned long)0xFFFFFFFF
}
 
enum  { uppIDHNotificationProcInfo = 0x000003F1 }
 
enum  {
  kIDHGetDeviceListSelect = 0x0001 , kIDHGetDeviceConfigurationSelect = 0x0002 , kIDHSetDeviceConfigurationSelect = 0x0003 , kIDHGetDeviceStatusSelect = 0x0004 ,
  kIDHGetDeviceClockSelect = 0x0005 , kIDHOpenDeviceSelect = 0x0006 , kIDHCloseDeviceSelect = 0x0007 , kIDHReadSelect = 0x0008 ,
  kIDHWriteSelect = 0x0009 , kIDHNewNotificationSelect = 0x000A , kIDHNotifyMeWhenSelect = 0x000B , kIDHCancelNotificationSelect = 0x000C ,
  kIDHDisposeNotificationSelect = 0x000D , kIDHReleaseBufferSelect = 0x000E , kIDHCancelPendingIOSelect = 0x000F , kIDHGetDeviceControlSelect = 0x0010 ,
  kIDHUpdateDeviceListSelect = 0x0011 , kIDHGetDeviceTimeSelect = 0x0012
}
 

Functions

typedef CALLBACK_API_C (OSStatus, IDHNotificationProcPtr)(IDHGenericEvent *event
 
typedef TVECTOR_UPP_TYPE (IDHNotificationProcPtr) IDHNotificationUPP
 
ComponentResult IDHGetDeviceList (ComponentInstance idh, QTAtomContainer *deviceList)
 
ComponentResult IDHGetDeviceConfiguration (ComponentInstance idh, QTAtomSpec *configurationID)
 
ComponentResult IDHSetDeviceConfiguration (ComponentInstance idh, const QTAtomSpec *configurationID)
 
ComponentResult IDHGetDeviceStatus (ComponentInstance idh, const QTAtomSpec *configurationID, IDHDeviceStatus *status)
 
ComponentResult IDHGetDeviceClock (ComponentInstance idh, Component *clock)
 
ComponentResult IDHOpenDevice (ComponentInstance idh, UInt32 permissions)
 
ComponentResult IDHCloseDevice (ComponentInstance idh)
 
ComponentResult IDHRead (ComponentInstance idh, IDHParameterBlock *pb)
 
ComponentResult IDHWrite (ComponentInstance idh, IDHParameterBlock *pb)
 
ComponentResult IDHNewNotification (ComponentInstance idh, IDHDeviceID deviceID, IDHNotificationUPP notificationProc, void *userData, IDHNotificationID *notificationID)
 
ComponentResult IDHNotifyMeWhen (ComponentInstance idh, IDHNotificationID notificationID, IDHEvent events)
 
ComponentResult IDHCancelNotification (ComponentInstance idh, IDHNotificationID notificationID)
 
ComponentResult IDHDisposeNotification (ComponentInstance idh, IDHNotificationID notificationID)
 
ComponentResult IDHReleaseBuffer (ComponentInstance idh, IDHParameterBlock *pb)
 
ComponentResult IDHCancelPendingIO (ComponentInstance idh, IDHParameterBlock *pb)
 
ComponentResult IDHGetDeviceControl (ComponentInstance idh, ComponentInstance *deviceControl)
 
ComponentResult IDHUpdateDeviceList (ComponentInstance idh, QTAtomContainer *deviceList)
 
ComponentResult IDHGetDeviceTime (ComponentInstance idh, TimeRecord *deviceTime)
 
IDHNotificationUPP NewIDHNotificationUPP (IDHNotificationProcPtr userRoutine)
 
void DisposeIDHNotificationUPP (IDHNotificationUPP userUPP)
 
OSStatus InvokeIDHNotificationUPP (IDHGenericEvent *event, void *userData, IDHNotificationUPP userUPP)
 

Detailed Description

The defines the client API to an Isochronous Data Handler, which is.

Introduced In: xxx put version here xxx
Avaliable From: Universal Interfaces 3.4.1
Copyright: © 1997-2001 by Apple Computer, Inc., all rights reserved.

For bug reports, consult the following page on the World Wide Web:

http://developer.apple.com/bugreporter/

Macro Definition Documentation

◆ NewIDHNotificationUPP

#define NewIDHNotificationUPP (   userRoutine)    (userRoutine)

4_bytes Func(4_bytes, 4_bytes)

Typedef Documentation

◆ IDHDeviceID

typedef UInt32 IDHDeviceID

Holds Device Identification...

◆ IDHEvent

typedef UInt32 IDHEvent

Isochronous Data Handler Events

◆ PsuedoID

typedef struct OpaquePsuedoID* PsuedoID

Need to fix this. For now, cast this as a FWReferenceID

Enumeration Type Documentation

◆ anonymous enum

anonymous enum
Enumerator
kIDHSubtypeDV 

Component type

kIDHSubtypeFireWireConference 

Subtype for DV (over FireWire)

◆ anonymous enum

anonymous enum

Version of Isochronous Data Handler API

◆ anonymous enum

anonymous enum

atom types

Enumerator
kIDHIsochServiceAtomType 

to be defined elsewhere

kIDHDataBufferSizeAtomType 

??? packet size vs. buffer size

kIDHDataIntervalAtomType 

??? packet size vs. buffer size

kIDHVideoMediaAtomType 

same as video out... (what does this comment mean?)

◆ anonymous enum

anonymous enum

I/O Flags

◆ anonymous enum

anonymous enum

Permission Flags

Enumerator
kIDHCloseForReadTransactions 

IDH will hold buffer until ReleaseBuffer()

◆ anonymous enum

anonymous enum

Errors These REALLY need to be moved into Errors.h ©©©©needs officially assigned numbers

◆ anonymous enum

anonymous enum
Enumerator
kIDHEventDeviceRemoved 

A new device has been added to the bus

kIDHEventDeviceChanged 

A device has been removed from the bus

kIDHEventReadEnabled 

Some device has changed state on the bus

kIDHEventReserved1 

A client has enabled a device for read

kIDHEventReadDisabled 

Reserved for future use

kIDHEventWriteEnabled 

A client has disabled a device from read

kIDHEventReserved2 

A client has enabled a device for write

kIDHEventWriteDisabled 

Reserved for future use

kIDHEventEveryEvent 

A client has disabled a device for write

◆ anonymous enum

anonymous enum

selectors for component calls

Function Documentation

◆ DisposeIDHNotificationUPP()

void DisposeIDHNotificationUPP ( IDHNotificationUPP  userUPP)

DisposeIDHNotificationUPP()

Non-Carbon CFM: available as macro/inline
Carbon Lib: in CarbonLib 1.4 and later
Mac OS X: not available

◆ IDHCancelNotification()

ComponentResult IDHCancelNotification ( ComponentInstance  idh,
IDHNotificationID  notificationID 
)

IDHCancelNotification()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHCancelPendingIO()

ComponentResult IDHCancelPendingIO ( ComponentInstance  idh,
IDHParameterBlock pb 
)

IDHCancelPendingIO()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHCloseDevice()

ComponentResult IDHCloseDevice ( ComponentInstance  idh)

IDHCloseDevice()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHDisposeNotification()

ComponentResult IDHDisposeNotification ( ComponentInstance  idh,
IDHNotificationID  notificationID 
)

IDHDisposeNotification()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHGetDeviceClock()

ComponentResult IDHGetDeviceClock ( ComponentInstance  idh,
Component clock 
)

IDHGetDeviceClock()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHGetDeviceConfiguration()

ComponentResult IDHGetDeviceConfiguration ( ComponentInstance  idh,
QTAtomSpec configurationID 
)

IDHGetDeviceConfiguration()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHGetDeviceControl()

ComponentResult IDHGetDeviceControl ( ComponentInstance  idh,
ComponentInstance deviceControl 
)

IDHGetDeviceControl()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHGetDeviceList()

ComponentResult IDHGetDeviceList ( ComponentInstance  idh,
QTAtomContainer *  deviceList 
)

IDHGetDeviceList()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHGetDeviceStatus()

ComponentResult IDHGetDeviceStatus ( ComponentInstance  idh,
const QTAtomSpec configurationID,
IDHDeviceStatus status 
)

IDHGetDeviceStatus()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHGetDeviceTime()

ComponentResult IDHGetDeviceTime ( ComponentInstance  idh,
TimeRecord deviceTime 
)

IDHGetDeviceTime()

Non-Carbon CFM: not available
Carbon Lib: not available in CarbonLib 1.x
Mac OS X: not available

◆ IDHNewNotification()

ComponentResult IDHNewNotification ( ComponentInstance  idh,
IDHDeviceID  deviceID,
IDHNotificationUPP  notificationProc,
void *  userData,
IDHNotificationID *  notificationID 
)

IDHNewNotification()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHNotifyMeWhen()

ComponentResult IDHNotifyMeWhen ( ComponentInstance  idh,
IDHNotificationID  notificationID,
IDHEvent  events 
)

IDHNotifyMeWhen()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHOpenDevice()

ComponentResult IDHOpenDevice ( ComponentInstance  idh,
UInt32  permissions 
)

IDHOpenDevice()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHRead()

ComponentResult IDHRead ( ComponentInstance  idh,
IDHParameterBlock pb 
)

IDHRead()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHReleaseBuffer()

ComponentResult IDHReleaseBuffer ( ComponentInstance  idh,
IDHParameterBlock pb 
)

IDHReleaseBuffer()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHSetDeviceConfiguration()

ComponentResult IDHSetDeviceConfiguration ( ComponentInstance  idh,
const QTAtomSpec configurationID 
)

IDHSetDeviceConfiguration()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHUpdateDeviceList()

ComponentResult IDHUpdateDeviceList ( ComponentInstance  idh,
QTAtomContainer *  deviceList 
)

IDHUpdateDeviceList()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ IDHWrite()

ComponentResult IDHWrite ( ComponentInstance  idh,
IDHParameterBlock pb 
)

IDHWrite()

Non-Carbon CFM: in IDHLib 1.0 and later
Carbon Lib: in CarbonLib 1.3 and later
Mac OS X: not available

◆ InvokeIDHNotificationUPP()

OSStatus InvokeIDHNotificationUPP ( IDHGenericEvent event,
void *  userData,
IDHNotificationUPP  userUPP 
)

InvokeIDHNotificationUPP()

Non-Carbon CFM: available as macro/inline
Carbon Lib: in CarbonLib 1.4 and later
Mac OS X: not available

◆ NewIDHNotificationUPP()

IDHNotificationUPP NewIDHNotificationUPP ( IDHNotificationProcPtr  userRoutine)

NewIDHNotificationUPP()

Non-Carbon CFM: available as macro/inline
Carbon Lib: in CarbonLib 1.4 and later
Mac OS X: not available