realtime
CreatePlayerA() | DeletePlayer() | ExternalSync() | FindConductor() |
GetPlayerAttrsA() | LockRealTime() | NextConductor() | SetConductorState() |
SetPlayerAttrsA() | UnlockRealTime() |
CreatePlayerA()
Synopsis
struct Player * CreatePlayerA( struct TagItem * tagList ); struct Player * CreatePlayer( TAG tag, ... );
Function
Create a player.
Inputs
tagList -- pointer to an array of tags describing the player's attributes or NULL.
Tags
PLAYER_Name (STRPTR) -- The name of the player; default is no name. PLAYER_Hook (struct Hook *) -- Function to call every time the time changes; default is none. The hook is called with a0 -- address of Hook structure a1 -- message (see <libraries/realtime.h>) a2 -- address of Player structure Be aware of that the function is not necessarily called TICK_FREQ times per second: this is the upper limit of times it may be called. PLAYER_Priority (BYTE) -- The priority of the player; default is 0. PLAYER_Conductor (STRPTR) -- The name of the conductor to link the player to. If the conductor doesn't exist, it's created automatically. Passing ~0 creates a private conductor. PLAYER_Ready (BOOL) -- Set / clear the ready flag; default is TRUE. PLAYER_AlarmTime (LONG) -- Set player's alarm time; implies setting the PLAYERF_ALARMSET flag. PLAYER_Alarm (BOOL) -- Set / clear the PLAYERF_ALARMSET flag; default is FALSE. PLAYER_AlarmSigTask (struct Task *) -- The task to signal when the alarm goes off; default is no task. If no task is specified PLAYERF_ALARMSET is turned off. PLAYER_AlarmSigBit (BYTE) -- Signal bit to use for the alarm or -1 to disable signalling; default is -1. PLAYER_Quiet (BOOL) -- Specify whether this player should be ignored or not; default is FALSE. Generally only used by external sync applications. PLAYER_UserData (VOID *) -- Set pointer to user specific data; default is NULL. PLAYER_ID (UWORD) -- Set the player's ID; default is 0. PLAYER_Conducted (BOOL) -- Set / clear the PLAYERF_CONDUCTED flag; default is FALSE. PLAYER_ExtSync (BOOL) -- If TRUE, this player attempts to become the external sync source. PLAYER_ErrorCode (LONG *) -- Optional pointer to a LONG that will contain an error code if the function fails. Possible error values are: RTE_NOMEMORY -- memory allocation failed RTE_NOTIMER -- timer allocation failed
Result
A pointer to a player structure or NULL if failure. In case of a failure additional information may be retreived from the LONG variable pointed to by PLAYER_ErrorCode if you have specified that tag.
DeletePlayer()
Synopsis
VOID DeletePlayer( struct Player * player );
Function
Delete a player. If this was the last player of a specific conductor, this conductor is deleted too.
Inputs
player -- Player to delete; may be NULL in which case this function does nothing.
See also
ExternalSync()
Synopsis
BOOL ExternalSync( struct Player * player, LONG minTime, LONG maxTime );
Function
Constrain conductor time between 'minTime' and 'maxTime' (however, time can never run backwards). If the specified player isn't the current external synchronizing source, this function does nothing.
Inputs
player -- The player in question minTime -- Lower time bound maxTime -- Upper time bound
Result
A BOOL specifying if the success of this function; FALSE means that the player was not the external source or that no conductor was found for the player.
FindConductor()
Synopsis
struct Conductor * FindConductor( STRPTR name );
Function
Get the conductor with name 'name' or NULL if no conductor exists with that name.
Inputs
name -- The name of the conductor to find.
Result
A pointer to the conductor you wanted or NULL if it didn't exist.
Notes
You have to lock the conductors with LockRealTime(RT_CONDUCTORS) before calling this function.
GetPlayerAttrsA()
Synopsis
BOOL GetPlayerAttrsA( struct Player * player, struct TagItem * tagList ); BOOL GetPlayerAttrs( struct Player * player, TAG tag, ... );
Function
Query the attributes of a player. For each tagitem ti_Tag specifies the attribute and ti_Data a pointer to the IPTR variable in which you want the value to be stored.
Inputs
player -- The player the attributes of which to set; may be NULL, in which case the result is 0. tagList -- Pointer to an array of tags describing the player's attributes or NULL.
Tags
See CreatePlayerA().
Result
The number of items successfully filled in.
See also
LockRealTime()
Synopsis
APTR LockRealTime( ULONG lockType );
Function
Lock a RealTime.library internal semaphore.
Inputs
lockType -- The type of lock to aquire, see <libraries/realtime.h> for further information.
Result
A handle to pass to UnlockRealTime() to unlock the semaphore. If 'lockType' is invalid, NULL is returned.
See also
NextConductor()
Synopsis
struct Conductor * NextConductor( struct Conductor * previousConductor );
Function
Return the next conductor on the conductor list. If 'previousConductor' is NULL, return the first conductor in the list; if not, return the conductor following 'previousConductor'. If 'previousConductor' is the last conductor, this function returns NULL.
Inputs
previousConductor -- The previous conductor or NULL to get the first conductor.
Result
A pointer to the next conductor or NULL if there are no more conductors.
Notes
You have to lock the conductors with LockRealTime(RT_CONDUCTORS) before calling this function.
SetConductorState()
Synopsis
LONG SetConductorState( struct Player * player, ULONG state, LONG time );
Function
Changes the state of the conductor connected to a specified player. The possible states are CONDSTATE_STOPPED CONDSTATE_PAUSED CONDSTATE_LOCATE CONDSTATE_RUNNING other possible "states" are CONDSTATE_METRIC -- Ask the highest priority conducted node to do a CONDSTATE_LOCATE CONDSTATE_SHUTTLE -- Inform the players that the clock value is changing without the clock running
Inputs
player -- The player in question state -- The new state of the conductor time -- Start time offset in realtime.library units
Result
0 if OK, otherwise an error code. For now, these are RTE_PLAYING and RTE_NOCONDUCTOR.
Notes
Going from CONDSTATE_PAUSED to CONDSTATE_RUNNING does not reset the cdt_ClockTime of the conductor.
SetPlayerAttrsA()
Synopsis
BOOL SetPlayerAttrsA( struct Player * player, struct TagItem * tagList ); BOOL SetPlayerAttrs( struct Player * player, TAG tag, ... );
Function
Sets the attributes of a player. An attribute not specified in the array of tags is unchanged after this procedure.
Inputs
player -- The player the attributes of which to set. tagList -- Pointer to an array of tags describing the player's attributes or NULL.
Tags
The same tags as for CreatePlayerA().
Result
Success/failure indicator. If failure, then, in case the PLAYER_ErrorCode is provided, more information can be obtained via that pointer.
See also
UnlockRealTime()
Synopsis
VOID UnlockRealTime( APTR lockHandle );
Function
Unlock a RealTime.library internal semaphore.
Inputs
lockHandle -- Handle returned by LockRealTime(); may be NULL.