Ejemplo n.º 1
0
 /// <summary>
 /// Request for playing a certain Theme at the desired intensity
 /// </summary>
 /// <remarks>
 /// Please note that there is a hierarchy among the different types of Themes, which will e.g. prevent a Base Mood from interrupting a Theme of type Action Event.
 /// Likewise, a Theme of type Shock Event will interrupt any other Theme that may be currently playing. Please refer to the psai Manual included in the psai SDK for
 /// a description of all the Theme Types and their playback priorities. The general interruption behaviour is as follows:
 /// If a Theme of a lower priority is currently playing when a new Theme is triggered, the psai soundtrack will play the newly triggered Theme immediately and quickly
 /// fade out
 /// the previous Theme. This way it is possible to build up a stack of interrupted Themes: A Base Mood may be interrupted by an Action Event, which is then interrupted
 /// by a Shock Event. When the intensity of the Shock Event has dropped to zero, psai will return to the Action Event, starting with the intensity level that was up at
 /// the time of its interruption. Likewise, when the intensity of the Action Event has reached zero intensity, psai will continue with the Basic Mood.
 /// If another Theme of the same priority is playing when a Theme has been triggered, psai will switch to the next Theme as soon as the Segment currently playing has
 /// reached its end. This can only
 /// work if there is at least one Segment in the newly triggered Theme, that has been marked within the psai® Editor as a compatible follower to the Segment currently playing.
 /// Please refer to the psai® Editor documentation for more information about Segment compatibilites.
 /// If the newly triggered Theme is the very same Theme that is currently playing, psai will set the internal Intensity level to the Intensity-argument of the new trigger-call.
 /// Thus, triggering the same Theme over and over again will not result in an accumulation of the triggered intensity values. Please see the 'Intensity'-section of the psai Manual
 /// for more information about psai's Intensity concept.
 /// If a Theme of type Basic Mood is triggered while a Theme of higher priority is playing, psai will internally store the triggered Basic Mood as the one to switch to, when
 /// the Intensity level of all stacked Themes has dropped to zero. All other trigger-calls to Themes of lower priority are ignored completely.
 /// The Theme will be playing for a timespan as defined by the member "music duration" within the psai Editor. The intensity falloff rate will be automatically adjusted to reach
 /// zero accordingly. To manually override this setting, call the overloaded version of TriggerMusicTheme() with the additional musicDuration parameter.
 /// Troubleshooting: If the soundtrack does not react as expected, please check your 'psai.log' file in your '[current user]/Documents/psai' folder to see what happened, and check back
 /// with your composer to make sure that the Types of the affected Themes have been assigned correctly within the psai Editor authoring software.
 /// </remarks>
 /// <param name="themeId">The id of the Theme to play</param>
 /// <param name="intensity">The initial intensity value. The valid range is between 0.0f and 1.0f.</param>
 /// <returns>
 ///  <list type="table">
 ///  <listheader>
 ///     <term>term</term>
 ///     <description>description</description>
 ///  </listheader>
 ///    <item>
 ///      <term>"PsaiResult.OK</term>
 ///      <description> if successful</description>
 ///    </item>
 ///    <item>
 ///      <term>"PsaiResult.initialization_error</term>
 ///      <description>psai has not been initialized correctly. See psai.log for more information.</description>
 ///    </item>
 ///    <item>
 ///      <term>"PsaiResult.unknown_theme</term>
 ///      <description>the requested Theme does not exist in the current soundtrack</description>
 ///    </item>
 ///    <item>
 ///      <term>"PsaiResult.commandIgnoredMenuModeActive</term>
 ///      <description>the command was ignored, call <see cref="MenuModeLeave">MenuModeLeave()</see> first.</description>
 ///    </item>
 /// </list>
 /// </returns>
 public PsaiResult TriggerMusicTheme(int themeId, float intensity)
 {
     return(m_logik.TriggerMusicTheme(themeId, intensity));
 }