Cabal Common Library Doc Music
Contents
Overview
This is the main class for the event driven inflight music for missions.
The script handles incoming data from worldScripts to play music in specific situations. OXPs can place or remove their sets fairly simple and a few parameters are handled. The inserted data is associated to the inserting worldScript by ID and the whole group of events can be easily de/activated at every time via .changeStatus(). Additionally a property can be assigned to a specific event, means that different entries can be de/activated by using different properties.
Note: Length, volume and fadeIn/fadeOut in the audio itself are important factors for a smooth transition between musicfiles. For the volume it is adviced to use at least -9 db (peak) to avoid conflicts with spoken inflight messages and digital clipping.
Properties
requestHandlerSet
On startUp created set of handlers (Array) for Cabal_Common_Music.
var a = worldScripts.Cabal_Common_Music.requestHandlerSet;
a -> [ [aegis, enter, exit], [alert, red, ... ] ... ] |
Functions
addMedia()
addMedia = function( obj ) |
Adds incoming object to the list and associates the entries to the sending worldScript. Internally every entry gets a group ID, so don't pass non-writable, sealed or frozen objects.
Properties:
- who
- String. Required. Name of the sending worldScript.
- start
- Boolean. Required. Starting state for the group after insertion.
- aegis
- Object. Allowed members: enter3, exit3.
- alert
- Object. Allowed members: red, yellow1, green1.
- destroyed
- Object. Allowed members: ent.
- exitWS
- Object. Allowed members: inter, goneNova, doNova, standard, any.
- launch
- Object. Allowed members: ent, inter, goneNova, doNova, main, any.
- planet
- Object. Allowed members: ent3, enterMain3, enterSun3, exitMain3, exitSun3.
- scooped
- Object. Allowed members: ent2.
- track
- Object. Allowed members: byName.
Returns
- Boolean
- True on success, false on failure.
1 If other handlers have fired blocked for 10 seconds.
2 The handler is only fired for scripted pods.
3 Can collide, because aegis and planet vicinities can be close together.
The above mentioned members are all of type Array and are holding the music related objects.
See Structure for a overview.
removeMedia()
removeMedia = function( who ) |
Removes all entries of a group from the stored list.
Properties:
- who
- String. Name of the worldScript.
Returns
- Boolean
- True on success, false on failure.
changeStatus()
changeStatus = function( who, status ) |
Changes the group state for a specific group.
Properties:
- who
- String. Name of the worldScript.
- status
- Boolean. Sets the group flag for all inserted files of a specific worldScript group.
Returns
- Boolean
- True on success, false on failure.
Structure
A short overview about the expected structure:
var eventMusic = {
}; |
The objects that are holding the music itself have a set of available properties as well.
- dist
- Number. Min. distance to entity. Required in track.byName.
- ent
- String/Number. Either entity.name (String) or entity.radius (Number). Required in destroyed.ent, launch.ent, planet.ent (radius), scooped.ent and track.byName.
- fadeQ
- Number. Optional. Sound as transition between musicfiles. If used must be 1 (will be expanded).
- music
- String. Required. Filename with fileextension.
- prop
- String. Optional. Name of worldScript property to be checked.