TABLE OF CONTENTS

realtime.library/CreatePlayer
realtime.library/DeletePlayer
realtime.library/ExternalSync
realtime.library/FindConductor
realtime.library/GetPlayerAttrA
realtime.library/LockRealTime
realtime.library/NextConductor
realtime.library/SetConductorState
realtime.library/SetPlayerAttrs
realtime.library/UnlockRealTime
realtime.library/CreatePlayer                     realtime.library/CreatePlayer

   NAME
       CreatePlayer -- Create a PlayerInfo and link to a Conductor.

   SYNOPSIS
       struct PlayerInfo *CreatePlayerA (struct TagItem *TagsList)
                                               a0

       struct PlayerInfo *CreatePlayer (Tag tag1, ...)

   FUNCTION
       Creates a PlayerInfo structure with the desired attributes.

       The first form of the function expects a tag array pointer or NULL.
       The second form permits the tag items to exist on the caller's
       stack.  In both cases, the final tag item must be TAG_END.

   INPUTS
       TagList   - optional pointer to tag array.  May be NULL.  For
                   OS v1.3, there are restrictions on the tag array
                   contents.  See NOTE below.

   TAGS
        See SetPlayerAttrsA()

   RESULTS
       A pointer to a PlayerInfo structure on success or NULL on failure.
       When NULL is returned, an error code will be returned if a TagItem
        with an ti_Tag of PLAYER_ErrorCode was provided. The RTE_ error code
        will be put in the ti_Data field.

   NOTE
       Under 1.3 only a restricted tag array may be passed into this
       function. The only special tag values that are supported are those
        documented for Release 2.04. The full range of TAG list operations
        are permitted under 2.0.

   EXAMPLES
       pi = CreatePlayer (
               PLAYER_Conductor, "metric", PLAYER_Priority, 10, TAG_END);

   SEE ALSO
       DeletePlayer(), SetPlayerAttrs()
       2.0 tag docs.
realtime.library/DeletePlayer                     realtime.library/DeletePlayer

   NAME
       DeletePlayer -- Delete a PlayerInfo structure

   SYNOPSIS
       void DeletePlayer (struct PlayerInfo *pi)
                               a0

   FUNCTION
       Deletes the specified PlayerInfo. The following actions are
        automatically performed by this function:

        Flushes the Conductor that the PlayerInfo was connected to if this
        is the last PlayerInfo connected to that Conductor.

   INPUTS
       pi - PlayerInfo to delete. Can be NULL.

   RESULTS
       None

   SEE ALSO
       CreatePlayer()
realtime.library/ExternalSync                     realtime.library/ExternalSync

   NAME
       ExternalSync -- External source clock for a PlayerInfo's Conductor

   SYNOPSIS
       BOOL ExternalSync (struct PlayerInfo *pi, LONG mintime,
                               a0                       d0
                LONG maxtime)
                d1

   FUNCTION
       Allows external application to constrain conductor time between
        mintime and maxtime, with the restraint that time can never run
        backwards. Does nothing if the given PlayerInfo is not the
        current External Sync source (as indicated by the PLAYERF_EXTSYNC
        flag).

   INPUTS
       pi - PlayerInfo referencing the Conductor to change
        mintime, maxtime - time constraints

   RESULTS
       result - TRUE if everything went OK, FALSE if not the current sync
           source or no conductor

realtime.library/FindConductor                   realtime.library/FindConductor

   NAME
       FindConductor -- Find a conductor by name

   SYNOPSIS
       struct Conductor *FindConductor (char *name)
                                         a0

   FUNCTION
       Returns the Conductor with the given name or NULL.
        Conductor links (CD_Conductors) must be locked when called.

   INPUTS
       name - name of conductor to find

   RESULTS
       result - Conductor or NULL

realtime.library/GetPlayerAttrA                 realtime.library/GetPlayerAttrA

   NAME
       GetPlayerAttrA -- Set the attributes of a PlayerInfo

   SYNOPSIS
       ULONG GetPlayerAttrA (struct PlayerInfo *pi, struct TagItem *attrs)
                                       a0          a1

   FUNCTION
       Get attributes of a PlayerInfo.

   INPUTS
       pi - a pointer to the PlayerInfo

       attrs - Attributes to get, terminated with TAG_DONE.  The data
           element of each pair contains the address of the storage
           variable.

   RESULTS
        Count of attributes understood.

   NOTE
        Not implemented yet. Does nothing at this time.

   EXAMPLES

   SEE ALSO
       SetPlayerAttrs()
realtime.library/LockRealTime                     realtime.library/LockRealTime

   NAME
       LockRealTime -- Prevent other tasks from changing internal structures

   SYNOPSIS
       LockRealTime(locktype)
            d0
       APTR LockRealTime( ULONG );

   FUNCTION
       This routine will lock the internal sempahores in the RealTime library.
       If they are already locked by another task, this routine will wait
        until they are free.

   INPUTS
       locktype -- which internal list will be locked.
           RT_Conductors -- locks the internal list of Conductors and
                associated structures.

   RESULT
       If locktype is valid, returns a value that must be passed later
        to UnlockRealTime.

   EXAMPLE

   NOTES

   BUGS

   SEE ALSO
       UnlockRealTime()

realtime.library/NextConductor                   realtime.library/NextConductor

   NAME
       NextConductor -- Return next Conductor on RealTime Conductor list

   SYNOPSIS
       struct Conductor *NextConductor (struct Conductor *last)
                                         a0

   FUNCTION
       Returns the next Conductor on RealTime Conductor list. If last is NULL,
        returns the first Conductor. Returns NULL if no more Conductors.
        Conductor links (RT_Conductors) must be locked when called.

   INPUTS
       last - previous Conductor or NULL to get first Conductor

   RESULTS
       next - next Conductor or NULL

realtime.library/SetConductorState           realtime.library/SetConductorState

   NAME
       SetConductorState -- Change the play state of a PlayerInfo's conductor

   SYNOPSIS
       LONG SetConductorState (struct PlayerInfo *pi, LONG state, LONG time)
                               a0                       d0          d1

   FUNCTION
       Changes the play state of the Conductor referenced by the
        PlayerInfo. The states can be CLOCKSTATE_STOPPED, CLOCKSTATE_PAUSED,
        CLOCKSTATE_LOCATE, CLOCKSTATE_RUNNING, or the special value
        CLOCKSTATE_METRIC which asks the highest priority conducted node
        to do a CLOCKSTATE_LOCATE, or the special value CLOCKSTATE_SHUTTLE
        which informs the players that the clock value is changing, but the
        clock isn't actually running. Note that going from CLOCKSTATE_PAUSED
        to CLOCKSTATE_RUNNING does not reset the ClockTime of the Conductor.


   INPUTS
       pi - PlayerInfo referencing the Conductor to change
        state - new play state of Conductor
        time - start time offset in RealTime heartbeat units

   RESULTS
       result - 0 if everything went OK, else an error code
realtime.library/SetPlayerAttrs                 realtime.library/SetPlayerAttrs

   NAME
       SetPlayerAttrs -- Set the attributes of a PlayerInfo

   SYNOPSIS
       BOOL SetPlayerAttrsA (struct PlayerInfo *pi, struct TagItem *tags)
                                       a0          a1

       BOOL SetPlayerAttrs (struct PlayerInfo *pi, ...)

   FUNCTION
       Sets the attributes of a PlayerInfo, using a Tag List.

       The first form of the function expects a tag array pointer or NULL.
       The second form permits the tag items to exist on the caller's
       stack.  In both cases, the final tag item must be TAG_END.

   INPUTS
       pi - a pointer to the PlayerInfo structure

       TagList   - optional pointer to tag array.  May be NULL.  For
                   OS v1.3, there are restrictions on the tag array
                   contents.  See NOTE below.

   TAGS
       PLAYER_Name         STRPTR - ti_Data points to the new name of
                   the PlayerInfo (generally the Application name)

       PLAYER_Hook         struct Hook * - this hook will be called when
                   time changes occur.

       PLAYER_Priority     BYTE - new priority for the PlayerInfo

       PLAYER_Conductor    STRPTR - ti_Data points to the name of the
                   Conductor to link with. If NULL, delink from conductor.
                    If ~0, create private conductor.

       PLAYER_Ready        BOOL - set/clear the "ready" flag

       PLAYER_SignalTask   struct Task * - task to signal on notify or alarm

       PLAYER_AlarmSigBit  BYTE - signal bit to use on alarm or
                    -1 to disable

       PLAYER_Quiet        BOOL - when TRUE, this node is ignored. Mainly
                    used by external sync applications

       PLAYER_UserData     void * - sets UserData field

       PLAYER_ID           UWORD - sets PlayerID field

       PLAYER_AlarmTime    LONG - sets the AlarmTime and the ALARMSET flag

       PLAYER_AlarmOn      BOOL - if TRUE sets the ALARMSET flag, FALSE clears
                    the flag

       PLAYER_Conducted    BOOL - if TRUE sets the CONDUCTED flag, FALSE clears
                    the flag

       PLAYER_ExtSync      BOOL - attempt to become external sync source (TRUE)
                   or release external sync (FALSE)

   RESULTS
       TRUE if all changes were made successfully or FALSE on failure.
       When FALSE is returned, an error code will be returned if a TagItem
        with an ti_Tag of PLAYER_ErrorCode was provided. The RTE_ error code
        will be put in the ti_Data field.

   NOTE
       Under 1.3 only a restricted tag array may be passed into this
       function. The only special tag values that are supported are those
        documented for Release 2.04. The full range of TAG list operations
        are permitted under 2.0.

   EXAMPLES
       result = SetPlayerAttrs (pi,
               PLAYER_Conductor, "metric", PLAYER_Priority, 10, TAG_END);

       Modifies a PlayerInfo to so it links to the Conductor named "metric"
       and sets the priorityof the PlayerInfo to +10.

   SEE ALSO
       CreatePlayer(), DeletePlayer()
       2.0 tag docs.
realtime.library/UnlockRealTime                 realtime.library/UnlockRealTime

   NAME
       UnlockRealTime -- Unlock internal lists

   SYNOPSIS
       UnlockRealTime(lock)
                       a0
       void UnlockRealTime( APTR );

   FUNCTION
       Undoes the effects of LockRealTime().

   INPUTS
       lock -- value returned by LockRealTime(). Can be NULL.

   EXAMPLE

   SEE ALSO
       LockRealTime()

