MusicComponent.k.hMusicComponent.k.h
/*
File: MusicComponent.k.h
Contains: QuickTime interfaces
Version: Technology:
Release: QuickTime 2.5 interfaces to use with ETO #20
Copyright: © 1984-1996 by Apple Computer, Inc. All rights reserved.
Bugs?: If you find a problem with this file, send the file and version
information (from above) and the problem description to:
Internet: apple.bugs@applelink.apple.com
AppleLink: APPLE.BUGS
*/
#ifndef __MUSICCOMPONENT_K__
#define __MUSICCOMPONENT_K__
#include
/* MusicSynthesizerFlags*/
/*
* Note that these controller numbers
* are _not_ identical to the MIDI controller numbers.
* These are _signed_ 8.8 values, and the LSB's are
* always sent to a MIDI device. Controllers 32-63 are
* reserved (for MIDI, they are LSB's for 0-31, but we
* always send both).
*
* The full range, therefore, is -128.00 to 127.7f.
*
* _Excepting_ _volume_, all controls default to zero.
*
* Pitch bend is specified in fractional semitones! No
* more "pitch bend range" nonsense. You can bend as far
* as you want, any time you want.
*/
/* InstrumentMatch*/
/* KnobFlags*/
/*
For non-gm instruments, instrument number of tone description == 0
If you want to speed up while running, slam the inst num with what Get instrument number returns
All missing knobs are slammed to the default value
*/
/*
* Structures specific to the GenericMusicComponent
*/
/* knobTypes for MusicDerivedSetKnob */
/* elements of the misc long list */
/*
* Calls specific to the GenericMusicComponent
*/
/*
* Flags in GenericMusicConfigure call
*/
#ifndef MUSIC_BASENAME
#error MUSIC_BASENAME must be defined to use this file
#endif
#ifndef MUSIC_GLOBALS
#error MUSIC_GLOBALS must be defined to use this file
#endif
#define ADD_MUSIC_BASENAME(name) MUSIC_BASENAME()##name
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDescription) (MUSIC_GLOBALS(), SynthesizerDescription * sd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPart) (MUSIC_GLOBALS(), long part, long * midiChannel, long * polyphony);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPart) (MUSIC_GLOBALS(), long part, long midiChannel, long polyphony);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartInstrumentNumber) (MUSIC_GLOBALS(), long part, long instrumentNumber);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartInstrumentNumber) (MUSIC_GLOBALS(), long part);
extern pascal ComponentResult ADD_MUSIC_BASENAME(StorePartInstrument) (MUSIC_GLOBALS(), long part, long instrumentNumber);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartAtomicInstrument) (MUSIC_GLOBALS(), long part, AtomicInstrument * ai, long flags);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartAtomicInstrument) (MUSIC_GLOBALS(), long part, AtomicInstrumentPtr aiP, long flags);
/* Obsolete calls*/
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentKnobDescriptionObsolete) (MUSIC_GLOBALS(), long knobIndex, void * mkd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDrumKnobDescriptionObsolete) (MUSIC_GLOBALS(), long knobIndex, void * mkd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnobDescriptionObsolete) (MUSIC_GLOBALS(), long knobIndex, void * mkd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartKnob) (MUSIC_GLOBALS(), long part, long knobID);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartKnob) (MUSIC_GLOBALS(), long part, long knobID, long knobValue);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnob) (MUSIC_GLOBALS(), long knobID);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetKnob) (MUSIC_GLOBALS(), long knobID, long knobValue);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartName) (MUSIC_GLOBALS(), long part, StringPtr name);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartName) (MUSIC_GLOBALS(), long part, StringPtr name);
extern pascal ComponentResult ADD_MUSIC_BASENAME(FindTone) (MUSIC_GLOBALS(), ToneDescription * td, long * instrumentNumber, unsigned long * fit);
extern pascal ComponentResult ADD_MUSIC_BASENAME(PlayNote) (MUSIC_GLOBALS(), long part, long pitch, long velocity);
extern pascal ComponentResult ADD_MUSIC_BASENAME(ResetPart) (MUSIC_GLOBALS(), long part);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetPartController) (MUSIC_GLOBALS(), long part, MusicController controllerNumber, long controllerValue);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetPartController) (MUSIC_GLOBALS(), long part, MusicController controllerNumber);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetMIDIProc) (MUSIC_GLOBALS(), MusicMIDISendUPP * midiSendProc, long * refCon);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetMIDIProc) (MUSIC_GLOBALS(), MusicMIDISendUPP midiSendProc, long refCon);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentNames) (MUSIC_GLOBALS(), long modifiableInstruments, Handle * instrumentNames, Handle * instrumentCategoryLasts, Handle * instrumentCategoryNames);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDrumNames) (MUSIC_GLOBALS(), long modifiableInstruments, Handle * instrumentNumbers, Handle * instrumentNames);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetMasterTune) (MUSIC_GLOBALS());
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetMasterTune) (MUSIC_GLOBALS(), long masterTune);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentAboutInfo) (MUSIC_GLOBALS(), long part, InstrumentAboutInfo * iai);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDeviceConnection) (MUSIC_GLOBALS(), long index, long * id1, long * id2);
extern pascal ComponentResult ADD_MUSIC_BASENAME(UseDeviceConnection) (MUSIC_GLOBALS(), long id1, long id2);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnobSettingStrings) (MUSIC_GLOBALS(), long knobIndex, long isGlobal, Handle * settingsNames, Handle * settingsCategoryLasts, Handle * settingsCategoryNames);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetMIDIPorts) (MUSIC_GLOBALS(), long * inputPortCount, long * outputPortCount);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SendMIDI) (MUSIC_GLOBALS(), long portIndex, MusicMIDIPacket * mp);
extern pascal ComponentResult ADD_MUSIC_BASENAME(ReceiveMIDI) (MUSIC_GLOBALS(), MusicMIDIReadHookUPP readHook, long refCon);
extern pascal ComponentResult ADD_MUSIC_BASENAME(StartOffline) (MUSIC_GLOBALS(), unsigned long * numChannels, UnsignedFixed * sampleRate, unsigned short * sampleSize, MusicOfflineDataUPP dataProc, long dataProcRefCon);
extern pascal ComponentResult ADD_MUSIC_BASENAME(SetOfflineTimeTo) (MUSIC_GLOBALS(), long newTimeStamp);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentKnobDescription) (MUSIC_GLOBALS(), long knobIndex, KnobDescription * mkd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetDrumKnobDescription) (MUSIC_GLOBALS(), long knobIndex, KnobDescription * mkd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetKnobDescription) (MUSIC_GLOBALS(), long knobIndex, KnobDescription * mkd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInfoText) (MUSIC_GLOBALS(), long selector, Handle * textH, Handle * styleH);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GetInstrumentInfo) (MUSIC_GLOBALS(), long getInstrumentNamesFlags, InstrumentInfoListHandle * infoListH);
extern pascal ComponentResult ADD_MUSIC_BASENAME(Task) (MUSIC_GLOBALS());
extern pascal ComponentResult ADD_MUSIC_BASENAME(GenericConfigure) (MUSIC_GLOBALS(), long mode, long flags, long baseResID);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GenericGetPart) (MUSIC_GLOBALS(), long partNumber, GCPart ** part);
extern pascal ComponentResult ADD_MUSIC_BASENAME(GenericGetKnobList) (MUSIC_GLOBALS(), long knobType, GenericKnobDescriptionListHandle * gkdlH);
extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedMIDISend) (MUSIC_GLOBALS(), MusicMIDIPacket * packet);
extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetKnob) (MUSIC_GLOBALS(), long knobType, long knobNumber, long knobValue, long partNumber, GCPart * p, GenericKnobDescription * gkd);
extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetPart) (MUSIC_GLOBALS(), long partNumber, GCPart * p);
extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetInstrument) (MUSIC_GLOBALS(), long partNumber, GCPart * p);
extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetPartInstrumentNumber) (MUSIC_GLOBALS(), long partNumber, GCPart * p);
extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedSetMIDI) (MUSIC_GLOBALS(), MusicMIDISendProcPtr midiProc, long refcon, long midiChannel);
extern pascal ComponentResult ADD_MUSIC_BASENAME(DerivedStorePartInstrument) (MUSIC_GLOBALS(), long partNumber, GCPart * p, long instrumentNumber);
/* MixedMode ProcInfo constants for component calls */
enum {
uppMusicGetDescriptionProcInfo = 0x000003F0,
uppMusicGetPartProcInfo = 0x00003FF0,
uppMusicSetPartProcInfo = 0x00003FF0,
uppMusicSetPartInstrumentNumberProcInfo = 0x00000FF0,
uppMusicGetPartInstrumentNumberProcInfo = 0x000003F0,
uppMusicStorePartInstrumentProcInfo = 0x00000FF0,
uppMusicGetPartAtomicInstrumentProcInfo = 0x00003FF0,
uppMusicSetPartAtomicInstrumentProcInfo = 0x00003FF0,
uppMusicGetInstrumentKnobDescriptionObsoleteProcInfo = 0x00000FF0,
uppMusicGetDrumKnobDescriptionObsoleteProcInfo = 0x00000FF0,
uppMusicGetKnobDescriptionObsoleteProcInfo = 0x00000FF0,
uppMusicGetPartKnobProcInfo = 0x00000FF0,
uppMusicSetPartKnobProcInfo = 0x00003FF0,
uppMusicGetKnobProcInfo = 0x000003F0,
uppMusicSetKnobProcInfo = 0x00000FF0,
uppMusicGetPartNameProcInfo = 0x00000FF0,
uppMusicSetPartNameProcInfo = 0x00000FF0,
uppMusicFindToneProcInfo = 0x00003FF0,
uppMusicPlayNoteProcInfo = 0x00003FF0,
uppMusicResetPartProcInfo = 0x000003F0,
uppMusicSetPartControllerProcInfo = 0x00003FF0,
uppMusicGetPartControllerProcInfo = 0x00000FF0,
uppMusicGetMIDIProcProcInfo = 0x00000FF0,
uppMusicSetMIDIProcProcInfo = 0x00000FF0,
uppMusicGetInstrumentNamesProcInfo = 0x0000FFF0,
uppMusicGetDrumNamesProcInfo = 0x00003FF0,
uppMusicGetMasterTuneProcInfo = 0x000000F0,
uppMusicSetMasterTuneProcInfo = 0x000003F0,
uppMusicGetInstrumentAboutInfoProcInfo = 0x00000FF0,
uppMusicGetDeviceConnectionProcInfo = 0x00003FF0,
uppMusicUseDeviceConnectionProcInfo = 0x00000FF0,
uppMusicGetKnobSettingStringsProcInfo = 0x0003FFF0,
uppMusicGetMIDIPortsProcInfo = 0x00000FF0,
uppMusicSendMIDIProcInfo = 0x00000FF0,
uppMusicReceiveMIDIProcInfo = 0x00000FF0,
uppMusicStartOfflineProcInfo = 0x0003FFF0,
uppMusicSetOfflineTimeToProcInfo = 0x000003F0,
uppMusicGetInstrumentKnobDescriptionProcInfo = 0x00000FF0,
uppMusicGetDrumKnobDescriptionProcInfo = 0x00000FF0,
uppMusicGetKnobDescriptionProcInfo = 0x00000FF0,
uppMusicGetInfoTextProcInfo = 0x00003FF0,
uppMusicGetInstrumentInfoProcInfo = 0x00000FF0,
uppMusicTaskProcInfo = 0x000000F0,
uppMusicGenericConfigureProcInfo = 0x00003FF0,
uppMusicGenericGetPartProcInfo = 0x00000FF0,
uppMusicGenericGetKnobListProcInfo = 0x00000FF0,
uppMusicDerivedMIDISendProcInfo = 0x000003F0,
uppMusicDerivedSetKnobProcInfo = 0x000FFFF0,
uppMusicDerivedSetPartProcInfo = 0x00000FF0,
uppMusicDerivedSetInstrumentProcInfo = 0x00000FF0,
uppMusicDerivedSetPartInstrumentNumberProcInfo = 0x00000FF0,
uppMusicDerivedSetMIDIProcInfo = 0x00003FF0,
uppMusicDerivedStorePartInstrumentProcInfo = 0x00003FF0
};
#endif /* __MUSICCOMPONENT_K__ */
PM.5/28/96 - 2:00.PM