home *** CD-ROM | disk | FTP | other *** search
- TABLE OF CONTENTS
-
- maestix.library/AllocMaestro
- maestix.library/FlushReceive
- maestix.library/FlushTransmit
- maestix.library/FreeMaestro
- maestix.library/GetStatus
- maestix.library/ReceiveData
- maestix.library/SetMaestro
- maestix.library/StartRealtime
- maestix.library/StopRealtime
- maestix.library/TransmitData
-
- maestix.library/AllocMaestro maestix.library/AllocMaestro
-
- NAME
- AllocMaestro -- Allocates the MaestroPro sound board (V35)
-
- SYNOPSIS
- MaestroBase = AllocMaestro(TagList)
- D0.l A0.l
-
- struct MaestroBase* AllocMaestro(struct TagItem*);
-
- MaestroBase = AllocMaestroTags(Tag1,...)
-
- struct MaestroBase* AllocMaestroTags(ULONG,...);
-
- FUNCTION
- This function allocates the MaestroPro sound board and gives
- exclusive access to the client.
-
- The default settings after AllocMaestro() are:
-
- - Input is INPUT_STD,
- - Output is OUTPUT_BYPASS,
- - Studio mode is turned off,
- - Copy protection is turned off,
- - Emphasis is turned off,
- - Source is DAT,
- - Rate is 48kHz,
- - Validity is true,
- - the UDBs are reset.
-
- INPUTS
- TagList -- Reserved for future options. Currently always
- NULL or a pointer to TAG_DONE.
-
- RESULTS
- MaestroBase -- MaestroBase structure (private) or NULL, if
- the board has already been allocated or is
- not present.
-
- NOTES
- This function must be used from DOS process only!
-
- SEE ALSO
- FreeMaestro()
-
- BUGS
- This function cannot prevent the MacroSystem programs (MaestroBR
- and Samplitude) from using MaestroPro, too.
-
- This function tries to detect if such a program is currently
- using the board, and does not allow a second allocation. But
- this try may fail, so be aware! Since some old Maestix failed
- even in the case the board was not allocated, this test was
- removed in V37. Use AllocMstx and FreeMstx to avoid this
- problem.
-
- maestix.library/FlushReceive maestix.library/FlushReceive
-
- NAME
- FlushReceive -- Stops receiver and replies all messages (V36)
-
- SYNOPSIS
- FlushReceive(MaestroBase)
- A0.l
-
- void FlushReceive(struct MaestroBase*);
-
- FUNCTION
- This function stops the receiver.
-
- All messages sent to Maestix by ReceiveData() are replied.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
-
- RESULTS
-
- NOTES
-
- SEE ALSO
- FlushTransmit(), ReceiveData()
-
- BUGS
-
- maestix.library/FlushTransmit maestix.library/FlushTransmit
-
- NAME
- FlushTransmit -- Stops transmission and replies all messages (V36)
-
- SYNOPSIS
- FlushTransmit(MaestroBase)
- A0.l
-
- void FlushTransmit(struct MaestroBase*);
-
- FUNCTION
- This function stops the transmitter.
-
- All messages sent to Maestix by TransmitData() are replied.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
-
- RESULTS
-
- NOTES
-
- SEE ALSO
- FlushReceive(), TransmitData()
-
- BUGS
-
- maestix.library/FreeMaestro maestix.library/FreeMaestro
-
- NAME
- FreeMaestro -- Frees the MaestroPro sound board (V35)
-
- SYNOPSIS
- FreeMaestro(MaestroBase)
- A0.l
-
- void FreeMaestro(struct MaestroBase*);
-
- FUNCTION
- The client must use this function to free the MaestroPro when
- he does not need it any more.
-
- All messages previously sent to Maestix will be replied. The
- FIFOs are cleared, the board is reset and switches to bypass
- mode.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
-
- RESULTS
-
- NOTES
- This function must be used from DOS process only!
-
- SEE ALSO
- AllocMaestro()
-
- BUGS
-
- maestix.library/GetStatus maestix.library/GetStatus
-
- NAME
- GetStatus -- Returns the current board status (V35)
-
- SYNOPSIS
- Status = GetStatus(MaestroBase,InfoType)
- D0.l A0.l D0.l
-
- ULONG GetStatus(struct MaestroBase*,ULONG);
-
- FUNCTION
- The status fitting to the InfoType will be returned.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
- InfoType -- type code (MSTAT_...) of the status value
- that you require.
-
- RESULTS
- Status -- the result of the status query.
-
- NOTES
- The following info types are existing:
-
- MSTAT_TFIFO -- (ULONG) status of transmitter FIFO
- - FIFO_Off -> transmitter is off
- - FIFO_Running -> transmission is running
- - FIFO_Error -> an error occured since
- last query
-
- MSTAT_RFIFO -- (ULONG) status of receiver FIFO
- - FIFO_Off -> receiver is off
- - FIFO_Running -> receiver is running
- - FIFO_Error -> an error occured since
- last query
-
- MSTAT_Signal -- (BOOL) checks the signal at the current
- INPUT. FALSE if there is no signal.
-
- MSTAT_Emphasis -- (BOOL) returns TRUE if the input signal
- has been recorded using emphasis.
-
- MSTAT_DATsrc -- (BOOL) returns TRUE if the data source is
- a DAT or DCC recorder.
-
- MSTAT_CopyProh -- (BOOL) returns TRUE if copy protection is
- requested from source. It is not possible
- to detect if it is an original or a copy!
-
- MSTAT_Rate -- (ULONG) returns input rate.
-
- MSTAT_UDB -- (UBYTE) [V37] returns the current UDBs.
-
- SEE ALSO
-
- BUGS
-
- maestix.library/ReceiveData maestix.library/ReceiveData
-
- NAME
- ReceiveData -- Receives data into a message (V35)
-
- SYNOPSIS
- ReceiveData(MaestroBase,DataMessage)
- A0.l A1.l
-
- void ReceiveData(struct MaestroBase*,struct DataMessage*)
-
- FUNCTION
- The client has to fill out a DataMessage structure with a
- reply port, a pointer to a data buffer and the size of this
- buffer.
-
- This message is queued internally. If the receiver has not
- been started yet, this function will activate it.
-
- The buffer space get filled with the incoming data and will
- be replied to the declared reply port when the space has been
- filled completely.
-
- If there are no more messages in the queue, the receiver
- will be stopped automatically, and an error is reported.
-
- The buffer is filled with signed words. The first word always
- belongs to the left channel, the second to the right, and so
- on.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
- DataMessage -- DataMessage structure to a system message
- with a pointer to a buffer space for
- incoming data.
-
- RESULTS
-
- NOTES
- The buffer space must be public memory. Its address must be
- longword aligned, its length must be aligned to 1024 and the
- size should be big enough (at least 10Kbyte).
-
- A realtime FX must be stopped before!
-
- SEE ALSO
- TransmitData(), FlushReceive(), StopRealtime()
-
- BUGS
- maestix.library/SetMaestro maestix.library/SetMaestro
-
- NAME
- SetMaestro -- Sets the MaestroPro parameters (V35)
-
- SYNOPSIS
- SetMaestro(MaestroBase,TagList)
- A0.l A1.l
-
- void SetMaestro(struct MaestroBase*,struct TagItem*);
-
- SetMaestroTags(MaestroBase,Tag1,...)
-
- void SetMaestroTags(struct MaestroBase*,ULONG,...);
-
- FUNCTION
- The board parameters are changed by the provided tags.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
- TagList -- Tag list with the changes to be done
-
- RESULTS
-
- TAGS
- MTAG_Input -- (ULONG) selects the input that shall be used.
- Default is INPUT_STD, which is the input
- selected by SetMstx. INPUT_OPTICAL and
- INPUT_COAXIAL select the corresponding input.
- INPUT_SRC48K selects the internal 48kHz
- source.
-
- MTAG_Output -- (ULONG) selects the data source for the
- MaestroPro output. Default is OUTPUT_BYPASS
- which leads the incoming data directly to the
- output. OUTPUT_INPUT decodes the input signal
- and encodes it with new channel status bits and
- user data bits. OUTPUT_FIFO encodes the
- transferred data to output.
-
- MTAG_SetCSB -- (ULONG) the 32 bit will be put into the channel
- status bits directly. This tag should be used
- only exceptional.
-
- MTAG_SetUDB -- (ULONG) the 32 bit will be put into the user
- data bits.
-
- MTAG_Studio -- (BOOL) the studio mode is selected if this
- tag is TRUE, otherwise the custom mode is
- selected. Defaults to FALSE.
-
- MTAG_CopyProh -- (ULONG) CPROH_OFF turns the copy protection
- off. CPROH_ON enables the copy protection,
- but one single digital copy can be made.
- CPROH_PROHIBIT turns the copy protection on;
- the signal cannot be recorded. CPROH_INPUT
- turns the copy protection on or off
- corresponding to the input signal. Default
- is CPROH_OFF.
-
- MTAG_Emphasis -- (ULONG) EMPH_OFF turns emphasis off.
- EMPH_50us (= EMPH_ON) turns standard emphasis
- on. When using studio mode, EMPH_CCITT and
- EMPH_MANUAL can be selected, too. EMPH_INPUT
- chooses the emphasis corresponding to the
- input signal. Default is EMPH_OFF.
-
- MTAG_Source -- (ULONG) selects the source category code.
- Default is SRC_DAT. Other codes are SRC_DSR,
- SRC_CD, SRC_ADCONV and SRC_INSTR. SRC_INPUT
- selects SRC_DAT or SRC_CD, corresponding to
- the input signal.
-
- MTAG_Rate -- (ULONG) selects the rate. RATE_48000 is
- default, RATE_44100, RATE_32000 and
- RATE_48000MANU are possible, too. RATE_INPUT
- chooses a rate corresponding to the input
- signal.
-
- MTAG_Validity -- (BOOL) TRUE if the output signal is valid,
- otherwise FALSE. Most receivers do not react
- if MTAG_Validity is FALSE.
-
- MTAG_ResetUDB -- if this tag occures, UDBs are reset and will
- not be put out any more.
-
- MTAG_ResetLSA -- [V37] this tag clears the local sample address
- which is used in studio mode transfers only.
-
-
- NOTES
- Note that MTAG_Rate will only be transmitted in the channel
- status bits and is completely independent to the rate that
- MaestrPro uses for data transfer. MaestroPro is only capable
- to generate a 48kHz rate (INPUT_SRC48K). If another rate is
- required, it must be put to the choosen input.
-
- Some receivers do not accept the incoming signal if the
- transmitted rate is not equal to the transfer rate.
-
- A DAT delay will be executed if the current input/output are
- changed by MSTAG_Input and/or MSTAG_Output. Note that this
- delay may wait up to 30 seconds!
-
- This function must be used from DOS process only!
-
- SEE ALSO
-
- BUGS
- maestix.library/StartRealtime maestix.library/StartRealtime
-
- NAME
- StartRealtime -- Starts realtime FX (V38)
-
- SYNOPSIS
- StartRealtime(MaestroBase,TagList)
- A0.l A1.l
-
- void StartRealtime(struct MaestroBase*,struct TagItem*);
-
- StartRealtimeTags(MaestroBase,Tag1,...)
-
- void StartRealtimeTags(struct MaestroBase*,ULONG,...);
-
- FUNCTION
- This function starts a realtime effect. Before that, the used
- input and OUTPUT_FIFO should be selected.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
- TagList -- TagList with the effect parameter
-
- RESULTS
-
- TAGS
- MTAG_Effect -- (ULONG) selects one of the internal effects
- (default: RFX_Bypass). See include file for
- all available effects.
- MTAG_A0 -- (APTR) effect parameter
- MTAG_A1 -- (APTR) effect parameter
- MTAG_D2 -- (APTR) effect parameter
- MTAG_D3 -- (APTR) effect parameter
- MTAG_CustomCall -- (APTR) pointer to a custom effect routine,
- written in highly optimized assembly!
-
- NOTES
- The custom effect routine gets the following parameters:
-
- -> D0.w -- left data word
- -> D1.w -- right data word
- -> D2.l -- see MTAG_D2
- -> D3.l -- see MTAG_D3
- -> D6.l -- scratch
- -> D7.l -- scratch
- -> A0.l -- see MTAG_A0
- -> A1.l -- see MTAG_A1
- -> A2.l -- return address to be JMPed to...
-
- The routine's results are:
-
- <- D0.w -- new left data word
- <- D1.w -- new right data word
-
- The register D2 to D5 and A0 to A7 must not be changed!
-
- Use "JMP (A2)" to return from the effect routine. Don't use RTS.
-
- The effect routine must be in MEMF_PUBLIC memory. Note that a task
- must not be necessarily in MEMF_PUBLIC memory! This routine should
- be coded in high optimized assembly language.
-
- If the effect routine is too slow on the used processor, this
- function will be stopped automatically, and MSTAT_TFIFO and
- MSTAT_RFIFO result FIFO_Error.
-
- SEE ALSO
- StopRealtime()
-
- BUGS
- maestix.library/StopRealtime maestix.library/StopRealtime
-
- NAME
- StopRealtime -- Stops the realtime FX (V38)
-
- SYNOPSIS
- StopRealtime(MaestroBase)
- A0.l
-
- void StopRealtime(struct MaestroBase*);
-
- FUNCTION
- This function stops a realtime effect.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
-
- RESULTS
-
- NOTES
- Before using TransmitData() or ReceiveData(), a currently running
- realtime effect must be stopped by this function!
-
- SEE ALSO
- StartRealtime()
-
- BUGS
- maestix.library/TransmitData maestix.library/TransmitData
-
- NAME
- TransmitData -- Transmits data from a message (V35)
-
- SYNOPSIS
- TransmitData(MaestroBase,DataMessage)
- A0.l A1.l
-
- void TransmitData(struct MaestroBase*,struct DataMessage*);
-
- FUNCTION
- The client has to fill out a DataMessage structure with a
- reply port, a pointer to a data buffer and the size of this
- buffer.
-
- This message is queued internally. If the transmitter has not
- been started yet, this function will activate it.
-
- The buffer space will be put out and then be replied to the
- declared reply port.
-
- If there are no more messages in the queue, the transmitter
- will be stopped automatically, and an error is reported.
-
- The buffer contains signed words. The first word always belongs
- to the left channel, the second to the right, and so on.
-
- INPUTS
- MaestroBase -- MaestroBase structure from AllocMaestro().
- DataMessage -- a system message containing a pointer to a
- buffer space for incoming data.
-
- RESULTS
-
- NOTES
- The buffer space must be public memory. Its address must be
- longword aligned, its length must be aligned to 1024 and the
- size should be big enough (at least 10Kbyte).
-
- SEE ALSO
- ReceiveData(), FlushTransmit(), StopRealtime()
-
- BUGS
-
-