00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015 #include "pandabase.h"
00016 #ifdef HAVE_RAD_MSS //[
00017
00018 #include "config_milesAudio.h"
00019 #include "milesAudioManager.h"
00020 #include "milesAudioSound.h"
00021 #include "milesAudioSample.h"
00022 #include "milesAudioSequence.h"
00023 #include "milesAudioStream.h"
00024 #include "pandaSystem.h"
00025 #include "dconfig.h"
00026
00027 ConfigureDef(config_milesAudio);
00028 NotifyCategoryDef(milesAudio, ":audio");
00029
00030 ConfigureFn(config_milesAudio) {
00031 init_libMilesAudio();
00032 }
00033
00034 ConfigVariableBool miles_audio_force_midi_reset
00035 ("audio-force-midi-reset", true);
00036
00037 ConfigVariableInt miles_audio_expand_mp3_threshold
00038 ("miles-audio-expand-mp3-threshold", 16384,
00039 PRC_DESC("This enables a Miles workaround in which small MP3 files are "
00040 "expanded in-memory at load time into WAV format, which can "
00041 "work around problems with Miles being unable to correctly "
00042 "report the length of, or seek within, a variable bit-rate encoded "
00043 "MP3 file. Any MP3 file whose length in bytes is less than "
00044 "this value will be expanded. This only applies to files "
00045 "within the miles-audio-preload-threshold."));
00046
00047 ConfigVariableInt miles_audio_preload_threshold
00048 ("miles-audio-preload-threshold", -1,
00049 PRC_DESC("This should be no smaller "
00050 "than miles-audio-expand-mp3-threshold. Files that are smaller "
00051 "than this number of bytes will be preloaded and kept "
00052 "resident in memory, while files that are this size or larger "
00053 "will be streamed from disk. Set this to -1 to preload "
00054 "every file."));
00055
00056 ConfigVariableBool miles_audio_panda_threads
00057 ("miles-audio-panda-threads", true,
00058 PRC_DESC("Set this true to service Miles background audio via Panda's "
00059 "threading interface, instead of Miles' built-in threading "
00060 "interface. This gives Panda more control over the threading, "
00061 "and ensures better lock protection within Panda. This has "
00062 "no meaning unless Panda is compiled with thread support."));
00063
00064
00065
00066
00067
00068
00069
00070
00071
00072 void
00073 init_libMilesAudio() {
00074 static bool initialized = false;
00075 if (initialized) {
00076 return;
00077 }
00078 initialized = true;
00079 MilesAudioManager::init_type();
00080 MilesAudioSound::init_type();
00081 MilesAudioSample::init_type();
00082 MilesAudioSequence::init_type();
00083 MilesAudioStream::init_type();
00084
00085 PandaSystem *ps = PandaSystem::get_global_ptr();
00086 ps->add_system("Miles");
00087 ps->add_system("audio");
00088 ps->set_system_tag("audio", "implementation", "Miles");
00089 }
00090
00091
00092
00093
00094
00095
00096
00097 Create_AudioManager_proc *
00098 get_audio_manager_func_miles_audio() {
00099 init_libMilesAudio();
00100 return &Create_MilesAudioManager;
00101 }
00102
00103 #endif //]