Difference between revisions of "Cabal Common Library Doc Music"

From Elite Wiki
m
m (Overview)
Line 1: Line 1:
 
== Overview ==
 
== Overview ==
This is the main class for the event driven inflight music for missions.
+
This is the main class for the event driven inflight music for missions and part of the [[Cabal_Common_Library]].
   
 
The script handles incoming data from worldScripts to play music in specific situations.
 
The script handles incoming data from worldScripts to play music in specific situations.
Line 13: Line 13:
 
musicfiles. For the volume it is adviced to use at least -9 db (peak) to avoid conflicts with spoken inflight messages
 
musicfiles. For the volume it is adviced to use at least -9 db (peak) to avoid conflicts with spoken inflight messages
 
and digital clipping.
 
and digital clipping.
 
   
 
== Properties ==
 
== Properties ==

Revision as of 23:49, 29 May 2012

Overview

This is the main class for the event driven inflight music for missions and part of the Cabal_Common_Library.

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 )
Profiler
Native 0.000097s
Extension 0.000032s
JS 0.000455s

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 )
Profiler
Native 0.000040s
Extension 0.000012s
JS 0.000346s

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 )
Profiler
Native 0.000040s
Extension 0.000017s
JS 0.000104s

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 = {
who:this.name,
start:true,
aegis:{
exit:[
{prop:"myProperty",music:"myMusic.ogg"}
]
}

};
worldScripts.Cabal_Common_Music.addMedia(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.