cri_atom_ex.h

説明を見る。
00001 /****************************************************************************
00002  *
00003  * CRI Middleware SDK
00004  *
00005  * Copyright (c) 2010-2016 CRI Middleware Co., Ltd.
00006  *
00007  * Library  : CRI Atom
00008  * Module   : AtomEx.
00009  * File     : cri_atom_ex.h
00010  *
00011  ****************************************************************************/
00016 /* 多重定義防止                 */
00017 /* Prevention of redefinition   */
00018 #ifndef CRI_INCL_CRI_ATOM_EX_H
00019 #define CRI_INCL_CRI_ATOM_EX_H
00020 
00021 /***************************************************************************
00022  *      インクルードファイル
00023  *      Include files
00024  ***************************************************************************/
00025 #include <cri_xpt.h>
00026 #include <cri_atom.h>
00027 #include <cri_file_system.h>
00028 
00029 /***************************************************************************
00030  *      定数マクロ
00031  *      Macro Constants
00032  ***************************************************************************/
00033 /* バージョン情報 */
00034 /* Version Number */
00035 #define CRIATOMEX_VERSION               (0x02200200)
00036 #define CRIATOMEX_VER_NUM               "2.20.02"
00037 #define CRIATOMEX_VER_NAME              "CRI AtomEx"
00038 #define CRIATOMEX_VER_OPTION
00039 
00040 /*==========================================================================
00041  *      CRI AtomEx API
00042  *=========================================================================*/
00051 #define CRIATOMEX_MAX_VIRTUAL_VOICES    (32767)
00052 
00053 /*==========================================================================
00054  *      CRI AtomEx ACF API
00055  *=========================================================================*/
00063 #define CRIATOMEX_INVALID_AISAC_CONTROL_ID  (0xffff)
00064 
00072 #define CRIATOMEXACF_MAX_BUSES          (64)
00073 
00081 #define CRIATOMEXACF_MAX_FXES           (8)
00082 
00090 #define CRIATOMEXACF_INVALID_CUE_LIMITS     (0xffffffff)
00091 
00102 #define CRIATOMEXACF_MAX_NAME_STRING_COUNT  (64)
00103 
00104 /*==========================================================================
00105  *      CRI AtomEx Voice Pool API
00106  *=========================================================================*/
00116 #define CRIATOMEX_DEFAULT_VOICES_PER_POOL   (8)
00117 
00118 /*==========================================================================
00119  *      CRI AtomEx Player API
00120  *=========================================================================*/
00132 #define CRIATOMEXPLAYER_NO_GROUP_LIMITATION (-1)
00133 
00139 #define CRIATOMEXPLAYER_NO_LOOP_LIMITATION  (CRIATOMPLAYER_NO_LOOP_LIMITATION)  
00140 #define CRIATOMEXPLAYER_IGNORE_LOOP         (CRIATOMPLAYER_IGNORE_LOOP)         
00141 #define CRIATOMEXPLAYER_FORCE_LOOP          (CRIATOMPLAYER_FORCE_LOOP)          
00150 #define CRIATOMEXPLAYER_MAX_ASR_RACKS       (8)
00151 
00152 /*==========================================================================
00153  *      CRI AtomEx Playback API
00154  *=========================================================================*/
00170 #define CRIATOMEX_INVALID_PLAYBACK_ID   (0xFFFFFFFF)
00171 
00181 #define CRIATOMEX_INVALID_BLOCK_INDEX   (0xFFFFFFFF)
00182 
00183 /*==========================================================================
00184  *      CRI AtomEx Fader API
00185  *=========================================================================*/
00195 #define CRIATOMEX_IGNORE_FADE_OUT       (-1)
00196 
00197 /*==========================================================================
00198  *      CRI AtomEx D-BAS API
00199  *=========================================================================*/
00207 #define CRIATOMEXDBAS_ILLEGAL_ID        (CRIATOMDBAS_ILLEGAL_ID)
00208 
00209 /* ========================================================================*/
00210 /*       CRI AtomEx Streaming Cache API                                    */
00211 /* ========================================================================*/
00219 #define CRIATOMEX_STREAMING_CACHE_ILLEGAL_ID    (CRIATOM_STREAMING_CACHE_ILLEGAL_ID)
00220 
00221 /***************************************************************************
00222  *      処理マクロ
00223  *      Macro Functions
00224  ***************************************************************************/
00225 /*==========================================================================
00226  *      CRI AtomEx API
00227  *=========================================================================*/
00259 #define criAtomEx_SetUserAllocator(p_malloc_func, p_free_func, p_obj)   \
00260     criAtom_SetUserAllocator((p_malloc_func), (p_free_func), (p_obj))
00261 
00272 #define criAtomEx_SetDefaultConfig(p_config)    \
00273 {\
00274     (p_config)->thread_model = CRIATOMEX_THREAD_MODEL_MULTI;\
00275     (p_config)->server_frequency = 60.0f;\
00276     (p_config)->parameter_update_interval = 1;\
00277     (p_config)->enable_atom_sound_disabled_mode = CRI_FALSE;\
00278     (p_config)->max_virtual_voices = 16;\
00279     (p_config)->max_parameter_blocks = 1024;\
00280     (p_config)->max_voice_limit_groups = 16;\
00281     (p_config)->max_categories = 16;\
00282     (p_config)->max_aisacs = 8;\
00283     (p_config)->categories_per_playback = 4;\
00284     (p_config)->max_sequences = (p_config)->max_virtual_voices;\
00285     (p_config)->max_tracks = (p_config)->max_virtual_voices * 2;\
00286     (p_config)->max_track_items = (p_config)->max_virtual_voices * 2;\
00287     (p_config)->max_aisac_auto_modulations = 0;\
00288     (p_config)->max_pitch = 2400.0f;\
00289     (p_config)->max_faders = 4;\
00290     (p_config)->coordinate_system = CRIATOMEX_COORDINATE_SYSTEM_LEFT_HANDED;\
00291     (p_config)->enable_auto_matching_in_pan_type_auto = CRI_FALSE;\
00292     (p_config)->enable_category_override_by_ex_player = CRI_FALSE;\
00293     (p_config)->sequence_prepare_ratio = 1.5;\
00294     (p_config)->rng_if = NULL;\
00295     (p_config)->fs_config = NULL;\
00296     (p_config)->acf_info = NULL;\
00297     (p_config)->context = NULL;\
00298     (p_config)->version = CRI_ATOM_VERSION;\
00299     (p_config)->version_ex = CRIATOMEX_VERSION;\
00300 }
00301 
00342 #define criAtomEx_AttachPerformanceMonitor()    criAtom_AttachPerformanceMonitor()
00343 
00355 #define criAtomEx_DetachPerformanceMonitor()    criAtom_DetachPerformanceMonitor()
00356 
00367 #define criAtomEx_ResetPerformanceMonitor()     criAtom_ResetPerformanceMonitor()
00368 
00378 #define criAtomEx_GetPerformanceInfo(p_info)    criAtom_GetPerformanceInfo(p_info)
00379 
00394 #define criAtomEx_SetChannelMapping(nch, type)  \
00395     criAtom_SetChannelMapping((nch), (type))
00396 
00408 #define criAtomEx_CalculateAdxBitrate(num_channels, sampling_rate) \
00409     criAtom_CalculateAdxBitrate(num_channels, sampling_rate)
00410 
00425 #define criAtomEx_CalculateHcaBitrate(num_channels, sampling_rate, quality) \
00426     criAtom_CalculateHcaBitrate(num_channels, sampling_rate, quality)
00427 
00442 #define criAtomEx_CalculateHcaMxBitrate(num_channels, sampling_rate, quality) \
00443     criAtom_CalculateHcaMxBitrate(num_channels, sampling_rate, quality)
00444 
00457 #define criAtomEx_CalculateWaveBitrate(num_channels, sampling_rate, num_bits)   \
00458     criAtom_CalculateWaveBitrate(num_channels, sampling_rate, num_bits)
00459 
00472 #define criAtomEx_CalculateAiffBitrate(num_channels, sampling_rate, num_bits)   \
00473     criAtom_CalculateAiffBitrate(num_channels, sampling_rate, num_bits)
00474 
00475 /*==========================================================================
00476  *      CRI AtomEx HCA-MX API
00477  *=========================================================================*/
00486 #define criAtomExHcaMx_SetDefaultConfig(p_config)   \
00487 {\
00488     (p_config)->server_frequency = 60.0f;\
00489     (p_config)->num_mixers = 1;\
00490     (p_config)->max_voices = 16;\
00491     (p_config)->max_input_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
00492     (p_config)->max_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
00493     (p_config)->output_channels = CRIATOM_DEFAULT_OUTPUT_CHANNELS;\
00494     (p_config)->output_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
00495     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
00496 }
00497 
00498 /*==========================================================================
00499  *      CRI AtomEx Voice Pool API
00500  *=========================================================================*/
00510 #define criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(p_config)   \
00511 {\
00512     (p_config)->identifier = 0;\
00513     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00514     criAtomPlayer_SetDefaultConfigForStandardPlayer(&(p_config)->player_config);\
00515 }
00516 
00526 #define criAtomExVoicePool_SetDefaultConfigForAdxVoicePool(p_config)    \
00527 {\
00528     (p_config)->identifier = 0;\
00529     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00530     criAtomPlayer_SetDefaultConfigForAdxPlayer(&(p_config)->player_config);\
00531 }
00532 
00542 #define criAtomExVoicePool_SetDefaultConfigForHcaVoicePool(p_config)    \
00543 {\
00544     (p_config)->identifier = 0;\
00545     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00546     criAtomPlayer_SetDefaultConfigForHcaPlayer(&(p_config)->player_config);\
00547 }
00548 
00558 #define criAtomExVoicePool_SetDefaultConfigForHcaMxVoicePool(p_config)  \
00559 {\
00560     (p_config)->identifier = 0;\
00561     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00562     criAtomPlayer_SetDefaultConfigForHcaMxPlayer(&(p_config)->player_config);\
00563 }
00564 
00574 #define criAtomExVoicePool_SetDefaultConfigForWaveVoicePool(p_config)   \
00575 {\
00576     (p_config)->identifier = 0;\
00577     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00578     criAtomPlayer_SetDefaultConfigForWavePlayer(&(p_config)->player_config);\
00579 }
00580 
00590 #define criAtomExVoicePool_SetDefaultConfigForAiffVoicePool(p_config)   \
00591 {\
00592     (p_config)->identifier = 0;\
00593     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00594     criAtomPlayer_SetDefaultConfigForAiffPlayer(&(p_config)->player_config);\
00595 }
00596 
00606 #define criAtomExVoicePool_SetDefaultConfigForRawPcmVoicePool(p_config) \
00607 {\
00608     (p_config)->identifier = 0;\
00609     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00610     criAtomPlayer_SetDefaultConfigForRawPcmPlayer(&(p_config)->player_config);\
00611 }
00612 
00625 #define criAtomExVoicePool_SetDefaultConfigForInstrumentVoicePool(p_config) \
00626 {\
00627     (p_config)->identifier = 0;\
00628     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
00629     criAtomPlayer_SetDefaultConfigForInstrumentPlayer(&(p_config)->player_config);\
00630 }
00631 /*==========================================================================
00632  *      CRI AtomEx Player API
00633  *=========================================================================*/
00643 #define criAtomExPlayer_SetDefaultConfig(p_config)  \
00644 {\
00645     (p_config)->voice_allocation_method = CRIATOMEX_ALLOCATE_VOICE_ONCE;\
00646     (p_config)->max_path_strings = 1;\
00647     (p_config)->max_path = 0;\
00648     (p_config)->updates_time = CRI_TRUE;\
00649     (p_config)->enable_audio_synced_timer = CRI_FALSE;\
00650     (p_config)->max_aisacs = 8;\
00651 }
00652 
00653 /*==========================================================================
00654  *      CRI AtomEx Fader API
00655  *=========================================================================*/
00665 #define criAtomExFader_SetDefaultConfig(p_config)   \
00666 {\
00667     (p_config)->reserved = 0;\
00668 }
00669 
00670 /*==========================================================================
00671  *      CRI AtomEx D-BAS API
00672  *=========================================================================*/
00682 #define criAtomExDbas_SetDefaultConfig(p_config)    \
00683     criAtomDbas_SetDefaultConfig(p_config)
00684 
00703 #define criAtomExDbas_CalculateWorkSize(config) \
00704     criAtomDbas_CalculateWorkSize(config)
00705 
00724 #define criAtomExDbas_Create(config, work, work_size)   \
00725     criAtomDbas_Create((config), (work), (work_size))
00726 
00735 #define criAtomExDbas_Destroy(atom_dbas_id) \
00736     criAtomDbas_Destroy(atom_dbas_id);
00737 
00764 #define criAtomExDbas_GetStreamingPlayerHandles(dbas_id, players, length)   \
00765     criAtomDbas_GetStreamingPlayerHandles((dbas_id), (players), (length))
00766 
00767 /* ========================================================================*/
00768 /*       CRI AtomEx Streaming Cache API                                    */
00769 /* ========================================================================*/
00780 #define criAtomExStreamingCache_SetDefaultConfig(p_config)  \
00781     criAtomStreamingCache_SetDefaultConfig(p_config)
00782 
00795 #define criAtomExStreamingCache_CalculateWorkSize(p_config) \
00796     criAtomStreamingCache_CalculateWorkSize(p_config)
00797 
00820 #define criAtomExStreamingCache_Create(config, work, work_size) \
00821     criAtomStreamingCache_Create((config), (work), (work_size));
00822 
00834 #define criAtomExStreamingCache_Destroy(stm_cache_id)   \
00835     criAtomStreamingCache_Destroy(stm_cache_id)
00836 
00851 #define criAtomExStreamingCache_Clear(cache_id) \
00852     criAtomStreamingCache_Clear(cache_id)
00853 
00869 #define criAtomExStreamingCache_IsCachedWaveId(stm_cache_id, awb, id)   \
00870     criAtomStreamingCache_IsCachedWaveId((stm_cache_id), (awb), (id))
00871 
00885 #define criAtomExStreamingCache_IsCachedFile(stm_cache_id, src_binder, path)    \
00886     criAtomStreamingCache_IsCachedFile((stm_cache_id), (src_binder), (path))
00887 
00888 /*==========================================================================
00889  *      CRI AtomEx 3D API
00890  *=========================================================================*/
00900 #define criAtomEx3dSource_SetDefaultConfig(p_config)    \
00901 {\
00902     (p_config)->enable_voice_priority_decay = CRI_FALSE;\
00903 }
00904 
00914 #define criAtomEx3dSourceList_SetDefaultConfig(p_config)    \
00915 {\
00916     (p_config)->reserved = 0;\
00917 }
00918 
00928 #define criAtomEx3dListener_SetDefaultConfig(p_config)  \
00929 {\
00930     (p_config)->reserved = 0;\
00931 }
00932 
00942 #define criAtomEx3dRegion_SetDefaultConfig(p_config)    \
00943 {\
00944     (p_config)->reserved = 0;\
00945 }
00946 
00956 #define criAtomEx3dTransceiver_SetDefaultConfig(p_config)   \
00957 {\
00958     (p_config)->reserved = 0;\
00959 }
00960 
00980 #define criAtomEx3dSource_SetMinMaxDistance(ex_3d_source, min_attenuation_distance, max_attenuation_distance) \
00981     criAtomEx3dSource_SetMinMaxAttenuationDistance((ex_3d_source), (min_attenuation_distance), (max_attenuation_distance))
00982 
01001 #define criAtomEx3dSource_ChangeDefaultMinMaxDistance(min_attenuation_distance, max_attenuation_distance) \
01002     criAtomEx3dSource_ChangeDefaultMinMaxAttenuationDistance((min_attenuation_distance), (max_attenuation_distance))
01003 
01004 /*==========================================================================
01005  *      CRI AtomEx DSP API
01006  *=========================================================================*/
01007 
01017 #define criAtomExVoicePool_SetDefaultConfigForDspPitchShifter(p_config) \
01018 {\
01019     (p_config)->num_dsp = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
01020     (p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
01021     (p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
01022     (p_config)->specific.mode = 0;\
01023     (p_config)->specific.window_size = 1024;\
01024     (p_config)->specific.overlap_times = 4;\
01025 }
01026 
01036 #define criAtomExVoicePool_SetDefaultConfigForDspTimeStretch(p_config)  \
01037 {\
01038     (p_config)->num_dsp = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
01039     (p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
01040     (p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
01041     (p_config)->specific.reserved = 0;\
01042 }
01043 
01044 /*==========================================================================
01045  *      CRI AtomEx Tween API
01046  *=========================================================================*/
01057 #define criAtomExTween_SetDefaultConfig(p_config)   \
01058 {\
01059     (p_config)->id.parameter_id = CRIATOMEX_PARAMETER_ID_VOLUME;\
01060     (p_config)->parameter_type = CRIATOMEX_PARAMETER_TYPE_BASIC;\
01061 }
01062 
01063 /*==========================================================================
01064  *      CRI AtomEx Sound Object API
01065  *=========================================================================*/
01075 #define criAtomExSoundObject_SetDefaultConfig(p_config) \
01076 {\
01077     (p_config)->enable_voice_limit_scope = CRI_FALSE;\
01078     (p_config)->enable_category_cue_limit_scope = CRI_FALSE;\
01079 }
01080 
01081 /***************************************************************************
01082  *      データ型宣言
01083  *      Data Type Declarations
01084  ***************************************************************************/
01085 /*==========================================================================
01086  *      CRI AtomEx API
01087  *=========================================================================*/
01095 typedef CriAtomMallocFunc CriAtomExMallocFunc;
01096 
01104 typedef CriAtomFreeFunc CriAtomExFreeFunc;
01105 
01115 typedef enum CriAtomExThreadModelTag {
01123     CRIATOMEX_THREAD_MODEL_MULTI = 0,
01124     
01135     CRIATOMEX_THREAD_MODEL_MULTI_USER_DRIVEN = 3,
01136     
01144     CRIATOMEX_THREAD_MODEL_USER_MULTI = 1,
01145     
01154     CRIATOMEX_THREAD_MODEL_SINGLE = 2,
01155     
01156     /* enum size is 4bytes */
01157     CRIATOMEX_THREAD_MODEL_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01158 } CriAtomExThreadModel;
01159 
01169 typedef enum CriAtomExCoordinateSystemTag {
01175     CRIATOMEX_COORDINATE_SYSTEM_LEFT_HANDED = 0,
01176     
01182     CRIATOMEX_COORDINATE_SYSTEM_RIGHT_HANDED = 1,
01183     
01184     /* enum size is 4bytes */
01185     CRIATOMEX_COORDINATE_SYSTEM_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01186 } CriAtomExCoordinateSystem;
01187 
01197 typedef enum CriAtomExAcfLocationInfoTypeTag {
01198     CRIATOMEX_ACF_LOCATION_INFO_TYPE_NONE = 0,  
01199     CRIATOMEX_ACF_LOCATION_INFO_TYPE_NAME,      
01200     CRIATOMEX_ACF_LOCATION_INFO_TYPE_ID,        
01201     CRIATOMEX_ACF_LOCATION_INFO_TYPE_DATA,      
01202     CRIATOMEX_ACF_LOCATION_INFO_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01203 } CriAtomExAcfLocationInfoType;
01204 
01209 typedef void *CriAtomExRngHn;
01210 
01215 typedef struct CriAtomExRngInterfaceTag {
01222     CriSint32 (*CalculateWorkSize)(void);
01223 
01233     CriAtomExRngHn (*Create)(void* work, CriSint32 work_size);
01234 
01241     void (*Destroy)(CriAtomExRngHn rng);
01242 
01253     CriSint32 (*Generate)(CriAtomExRngHn rng, CriSint32 min, CriSint32 max);
01254 
01262     void (*SetSeed)(CriAtomExRngHn rng, CriUint32 seed);
01263 
01264 } CriAtomExRngInterface;
01265 
01293 typedef struct CriAtomExAcfRegistrationInfoTag {
01295     CriAtomExAcfLocationInfoType type;
01296 
01298     union CriAtomExAcfLocationInfoTag {
01300         struct CriAtomExAcfLocationInfoNameTag {
01301             CriFsBinderHn binder;   
01302             const CriChar8 *path;   
01303         } name;
01305         struct CriAtomExAcfLocationInfoIdTag {
01306             CriFsBinderHn binder;   
01307             CriSint32 id;           
01308         } id;
01310         struct CriAtomExAcfLocationInfoDataTag {
01311             void *buffer;           
01312             CriSint32 size;         
01313         } data;
01314     } info; 
01315 } CriAtomExAcfRegistrationInfo;
01316 
01336 typedef struct CriAtomExConfigTag {
01343     CriAtomExThreadModel thread_model;
01344     
01396     CriFloat32 server_frequency;
01397     
01425     CriSint32 parameter_update_interval;
01426     
01438     CriBool enable_atom_sound_disabled_mode;
01439     
01461     CriSint32 max_virtual_voices;
01462     
01480     CriSint32 max_parameter_blocks;
01481     
01494     CriSint32 max_voice_limit_groups;
01495 
01507     CriSint32 max_categories;
01508 
01517     CriUint8 max_aisacs;
01518 
01531     CriSint32 categories_per_playback;
01532 
01545     CriSint32 max_sequences;
01546 
01559     CriUint32 max_tracks;
01560 
01576     CriUint32 max_track_items;
01577     
01584     CriUint32 max_aisac_auto_modulations;
01585 
01614     CriFloat32 max_pitch;
01615 
01622     CriUint32 max_faders;
01623 
01629     CriAtomExCoordinateSystem coordinate_system;
01630 
01638     CriBool enable_auto_matching_in_pan_type_auto;
01639 
01650     CriBool enable_category_override_by_ex_player;
01651 
01661     CriFloat32 sequence_prepare_ratio;
01662 
01669     const CriAtomExRngInterface *rng_if;
01670 
01678     const CriFsConfig *fs_config;
01679 
01700     const CriAtomExAcfRegistrationInfo *acf_info;
01701 
01712     void *context;
01713 
01722     CriUint32 version;
01723 
01732     CriUint32 version_ex;
01733 } CriAtomExConfig;
01734 
01743 typedef CriAtomPerformanceInfo CriAtomExPerformanceInfo;
01744 
01753 typedef CriSint32 CriAtomExWaveId;
01754 
01761 typedef CriSint32 CriAtomExVibrationId;
01762 
01771 typedef CriAtomFormat CriAtomExFormat;
01772 #define CRIATOMEX_FORMAT_NONE           (CRIATOM_FORMAT_NONE)           
01773 #define CRIATOMEX_FORMAT_ADX            (CRIATOM_FORMAT_ADX)            
01774 #define CRIATOMEX_FORMAT_HCA            (CRIATOM_FORMAT_HCA)            
01775 #define CRIATOMEX_FORMAT_HCA_MX         (CRIATOM_FORMAT_HCA_MX)         
01776 #define CRIATOMEX_FORMAT_WAVE           (CRIATOM_FORMAT_WAVE)           
01777 #define CRIATOMEX_FORMAT_AIFF           (CRIATOM_FORMAT_AIFF)           
01778 #define CRIATOMEX_FORMAT_RAW_PCM        (CRIATOM_FORMAT_RAW_PCM)        
01779 #define CRIATOMEX_FORMAT_VIBRATION      (CRIATOM_FORMAT_VIBRATION)      
01780 #define CRIATOMEX_FORMAT_AUDIO_BUFFER   (CRIATOM_FORMAT_AUDIO_BUFFER)   
01781 #define CRIATOMEX_FORMAT_HW1            (CRIATOM_FORMAT_HW1)            
01782 #define CRIATOMEX_FORMAT_HW2            (CRIATOM_FORMAT_HW2)            
01796 typedef struct CriAtomExFormatInfoTag {
01797     CriAtomExFormat format;             
01798     CriSint32 sampling_rate;            
01799     CriSint64 num_samples;              
01800     CriSint64 loop_offset;              
01801     CriSint64 loop_length;              
01802     CriSint32 num_channels;             
01803     CriUint32 reserved[1];              
01804 } CriAtomExFormatInfo;
01805 
01815 typedef enum CriAtomExResumeModeTag {
01816     CRIATOMEX_RESUME_ALL_PLAYBACK = 0,          
01817     CRIATOMEX_RESUME_PAUSED_PLAYBACK = 1,       
01818     CRIATOMEX_RESUME_PREPARED_PLAYBACK = 2,     
01819     CRIATOMEX_RESUME_MODE_RESERVED = 3,
01820     CRIATOMEX_RESUME_MODE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01821 } CriAtomExResumeMode;
01822 
01831 typedef enum CriAtomExBiquadFilterTypeTag {
01832     CRIATOMEX_BIQUAD_FILTER_TYPE_OFF = 0,           
01833     CRIATOMEX_BIQUAD_FILTER_TYPE_LOWPASS = 1,       
01834     CRIATOMEX_BIQUAD_FILTER_TYPE_HIGHPASS = 2,      
01835     CRIATOMEX_BIQUAD_FILTER_TYPE_NOTCH = 3,         
01836     CRIATOMEX_BIQUAD_FILTER_TYPE_LOWSHELF = 4,      
01837     CRIATOMEX_BIQUAD_FILTER_TYPE_HIGHSHELF = 5,     
01838     CRIATOMEX_BIQUAD_FILTER_TYPE_PEAKING = 6,       
01840     /* enum size is 4bytes */
01841     CRIATOMEX_BIQUAD_FILTER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01842 } CriAtomExBiquadFilterType;
01843 
01859 typedef enum CriAtomExSilentModeTag {
01865     CRIATOMEX_SILENT_MODE_NORMAL = 0,
01866 
01872     CRIATOMEX_SILENT_MODE_STOP = 1,
01873 
01879     CRIATOMEX_SILENT_MODE_VIRTUAL = 2,
01880 
01886     CRIATOMEX_SILENT_MODE_VIRTUAL_RETRIGGER = 3,
01887 
01888     /* enum size is 4bytes */
01889     CRIATOMEX_SILENT_MODE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01890 } CriAtomExSilentMode;
01891 
01900 typedef enum CriAtomExPanTypeTag {
01910     CRIATOMEX_PAN_TYPE_UNKNOWN = -1,
01916     CRIATOMEX_PAN_TYPE_PAN3D = 0,
01922     CRIATOMEX_PAN_TYPE_3D_POS,
01929     CRIATOMEX_PAN_TYPE_AUTO,
01930     /* enum size is 4bytes */
01931     CRIATOMEX_PAN_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01932 } CriAtomExPanType;
01933 
01944 typedef enum CriAtomExPanSpeakerTypeTag {
01951     CRIATOMEX_PAN_SPEAKER_TYPE_4CH = 0,
01952 
01958     CRIATOMEX_PAN_SPEAKER_TYPE_5CH = 1,
01959 
01965     CRIATOMEX_PAN_SPEAKER_TYPE_6CH = 2,
01966 
01972     CRIATOMEX_PAN_SPEAKER_TYPE_7CH = 3,
01973 
01974     /* enum size is 4bytes */
01975     CRIATOMEX_PAN_SPEAKER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
01976 } CriAtomExPanSpeakerType;
01977 
01986 typedef enum CriAtomExPanAngleTypeTag {
01997     CRIATOMEX_PAN_ANGLE_TYPE_OFFSET = 0,
02011     CRIATOMEX_PAN_ANGLE_TYPE_FIX = 1,
02017     CRIATOMEX_PAN_ANGLE_TYPE_AMBIENCE_MIX = 4,
02023     CRIATOMEX_PAN_ANGLE_TYPE_AMBIENCE_STRAIGHT = 5,
02024 
02025     /* enum size is 4bytes */
02026     CRIATOMEX_PAN_ANGLE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02027 } CriAtomExPanAngleType;
02028 
02037 typedef CriUint32 CriAtomExSpeakerSystem;
02038 
02053 #define CRIATOMEX_SPEAKER_SYSTEM_SURROUND_5_1 (0)
02054 
02071 #define CRIATOMEX_SPEAKER_SYSTEM_SURROUND_7_1 (1)
02072 
02083 typedef CriSint32 CriAtomExBlockIndex;
02084 
02093 typedef CriUint32 CriAtomExGameVariableId;
02094 
02103 typedef struct CriAtomExGameVariableInfoTag {
02104     const CriChar8* name;       
02105     CriAtomExGameVariableId id; 
02106     CriFloat32 value;           
02107 } CriAtomExGameVariableInfo;
02108 
02116 typedef CriAtomStreamingInfo CriAtomExStreamingInfo;
02117 
02124 typedef enum CriAtomExCharacterEncodingTag {
02125     CRIATOMEX_CHARACTER_ENCODING_UTF8 = 0,  
02126     CRIATOMEX_CHARACTER_ENCODING_SJIS = 1,  
02128     /* enum size is 4bytes */
02129     CRIATOMEX_CHARACTER_ENCODING_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02130 } CriAtomExCharacterEncoding;
02131 
02138 typedef struct CriAtomExResourceUsageTag {
02139     CriUint32 use_count;    
02140     CriUint32 limit;        
02141 } CriAtomExResourceUsage;
02142 
02143 /*==========================================================================
02144  *      CRI AtomEx Debug API
02145  *=========================================================================*/
02156 typedef struct CriAtomExDebugResourcesInfoTag {
02158     CriAtomExResourceUsage virtual_voice_usage;
02160     CriAtomExResourceUsage sequence_usage;
02162     CriAtomExResourceUsage sequence_track_usage;
02164     CriAtomExResourceUsage sequence_track_item_usage;
02165 } CriAtomExDebugResourcesInfo;
02166 
02167 /*==========================================================================
02168  *      CRI AtomEx HCA-MX API
02169  *=========================================================================*/
02185 typedef struct CriAtomExHcaMxConfigTag {
02195     CriFloat32 server_frequency;
02196     
02212     CriSint32 num_mixers;
02213     
02221     CriSint32 max_voices;
02222     
02236     CriSint32 max_input_channels;
02237     
02248     CriSint32 max_sampling_rate;
02249 
02263     CriSint32 output_channels;
02264     
02274     CriSint32 output_sampling_rate;
02275     
02288     CriAtomSoundRendererType sound_renderer_type;
02289 } CriAtomExHcaMxConfig;
02290 
02291 /*==========================================================================
02292  *      CRI AtomEx Decrypter API
02293  *=========================================================================*/
02305 typedef CriAtomDecrypterConfig CriAtomExDecrypterConfig;
02306 
02315 typedef CriAtomDecrypterHn CriAtomExDecrypterHn;
02316 
02317 /*==========================================================================
02318  *      CRI AtomEx ACF API
02319  *=========================================================================*/
02327 typedef struct CriAtomExAcfInfoTag {
02328     const CriChar8* name;                           
02329     CriUint32 size;                                 
02330     CriUint32 version;                              
02331     CriAtomExCharacterEncoding character_encoding;  
02332     CriSint32 num_dsp_settings;                     
02333     CriSint32 num_categories;                       
02334     CriSint32 num_categories_per_playback;          
02335     CriSint32 num_reacts;                           
02336     CriSint32 num_aisac_controls;                   
02337     CriSint32 num_global_aisacs;                    
02338     CriSint32 num_game_variables;                   
02339     CriSint32 max_buses_of_dsp_bus_settings;        
02340     CriSint32 num_buses;                            
02341     CriSint32 num_voice_limit_groups;               
02342 } CriAtomExAcfInfo;
02343 
02352 typedef CriUint32 CriAtomExAisacControlId;
02353 
02362 typedef struct CriAtomExAisacControlInfoTag {
02363     const CriChar8*         name;       
02364     CriAtomExAisacControlId id;         
02365 } CriAtomExAisacControlInfo;
02366 
02375 typedef struct CriAtomExAisacInfoTag {
02376     const CriChar8* name;       
02377     CriBool default_control_flag;       
02378     CriFloat32 default_control_value;   
02379     CriAtomExAisacControlId control_id;         
02380     const CriChar8* control_name;   
02381 } CriAtomExAisacInfo;
02382 
02391 typedef struct CriAtomExAcfDspSettingInfoTag {
02392     const CriChar8* name;                                   
02393     CriUint16 bus_indexes[CRIATOMEXACF_MAX_BUSES];          
02394     CriUint16 extend_bus_indexes[CRIATOMEXACF_MAX_BUSES];   
02395     CriUint16 snapshot_start_index;                         
02396     CriUint8 num_buses;                                     
02397     CriUint8 num_extend_buses;                              
02398     CriUint16 num_snapshots;                                
02399     CriUint16 snapshot_work_size;                           
02400 } CriAtomExAcfDspSettingInfo;
02401 
02408 typedef struct CriAtomExAcfDspSettingSnapshotInfoTag {
02409     const CriChar8* name;                                   
02410     CriUint8 num_buses;                                     
02411     CriUint8 num_extend_buses;                              
02412     CriUint8 reserved[2];                                   
02413     CriUint16 bus_indexes[CRIATOMEXACF_MAX_BUSES];          
02414     CriUint16 extend_bus_indexes[CRIATOMEXACF_MAX_BUSES];   
02415 } CriAtomExAcfDspSettingSnapshotInfo;
02416 
02425 typedef struct CriAtomExAcfDspBusInfoTag {
02426     const CriChar8* name;                               
02427     CriFloat32 volume;                                  
02428     CriFloat32 pan3d_volume;                            
02429     CriFloat32 pan3d_angle;                             
02430     CriFloat32 pan3d_distance;                          
02431     CriUint16 fx_indexes[CRIATOMEXACF_MAX_FXES];        
02432     CriUint16 bus_link_indexes[CRIATOMEXACF_MAX_BUSES]; 
02433     CriUint16 bus_no;                                   
02434     CriUint8 num_fxes;                                  
02435     CriUint8 num_bus_links;                             
02436 } CriAtomExAcfDspBusInfo;
02437 
02443 typedef enum CriAtomExAcfDspBusLinkTypeTag {
02444     CRIATOMEXACF_DSP_BUS_LINK_TYPE_PRE_VOLUME,      
02445     CRIATOMEXACF_DSP_BUS_LINK_TYPE_POST_VOLUME,     
02446     CRIATOMEXACF_DSP_BUS_LINK_TYPE_POST_PAN,        
02447     /* enum size is 4bytes */
02448     CRIATOMEXACF_DSP_BUS_LINK_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02449 } CriAtomExAcfDspBusLinkType;
02450 
02459 typedef struct CriAtomExAcfDspBusLinkInfoTag {
02460     CriAtomExAcfDspBusLinkType type;    
02461     CriFloat32 send_level;              
02462     CriUint16 bus_no;                   
02463     CriUint16 bus_id;                   
02464 } CriAtomExAcfDspBusLinkInfo;
02465 
02471 typedef enum CriAtomExAcfAisacTypeTag {
02472     CRIATOMEXACF_AISAC_TYPE_NORMAL,             
02473     CRIATOMEXACF_AISAC_TYPE_AUTO_MODULATION,    
02474     /* enum size is 4bytes */
02475     CRIATOMEXACF_AISAC_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02476 } CriAtomExAcfAisacType;
02477 
02478 
02490 typedef struct CriAtomExGlobalAisacInfoTag {
02491     const CriChar8* name;               
02492     CriUint16 index;                    
02493     CriUint16 num_graphs;               
02494     CriAtomExAcfAisacType type;         
02495     CriFloat32 random_range;            
02496     CriUint16 control_id;               
02497     CriUint16 dummy;                    
02498 } CriAtomExGlobalAisacInfo;
02499 
02500 /* Aisacグラフタイプ */
02508 typedef enum CriAtomExAisacGraphTypeTag {
02509     CRIATOMEX_AISAC_GRAPH_TYPE_NON = 0,                 
02510     CRIATOMEX_AISAC_GRAPH_TYPE_VOLUME,                  
02511     CRIATOMEX_AISAC_GRAPH_TYPE_PITCH,                   
02512     CRIATOMEX_AISAC_GRAPH_TYPE_BANDPASS_HI,             
02513     CRIATOMEX_AISAC_GRAPH_TYPE_BANDPASS_LOW,            
02514     CRIATOMEX_AISAC_GRAPH_TYPE_BIQUAD_FREQ,             
02515     CRIATOMEX_AISAC_GRAPH_TYPE_BIQUAD_Q,                
02516     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_0_SEND,              
02517     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_1_SEND,              
02518     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_2_SEND,              
02519     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_3_SEND,              
02520     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_4_SEND,              
02521     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_5_SEND,              
02522     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_6_SEND,              
02523     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_7_SEND,              
02524     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_ANGLE,             
02525     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_VOLUME,            
02526     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_INTERIOR_DISTANCE, 
02527     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_CENTER,            
02528     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_LFE,               
02529     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_0,                 
02530     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_1,                 
02531     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_2,                 
02532     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_3,                 
02533     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_4,                 
02534     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_5,                 
02535     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_6,                 
02536     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_7,                 
02537     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_8,                 
02538     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_9,                 
02539     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_10,                
02540     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_11,                
02541     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_12,                
02542     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_13,                
02543     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_14,                
02544     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_15,                
02545     CRIATOMEX_AISAC_GRAPH_TYPE_PRIORITY,                
02546     CRIATOMEX_AISAC_GRAPH_TYPE_PRE_DELAY_TIME,          
02547     CRIATOMEX_AISAC_GRAPH_TYPE_BIQUAD_GAIN,             
02548     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_MIXDOWN_CENTER,    
02549     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_MIXDOWN_LFE,       
02550     CRIATOMEX_AISAC_GRAPH_TYPE_EG_ATTACK,               
02551     CRIATOMEX_AISAC_GRAPH_TYPE_EG_RELEASE,              
02552     CRIATOMEX_AISAC_GRAPH_TYPE_PLAYBACK_RATIO,          
02553     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_L,              
02554     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_R,              
02555     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_CENTER,         
02556     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_LFE,            
02557     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_SL,             
02558     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_SR,             
02559     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_EX1,            
02560     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_EX2,            
02561     CRIATOMEX_AISAC_GRAPH_TYPE_PAN_SPREAD,              
02563     /* enum size is 4bytes */
02564     CRIATOMEX_AISAC_GRAPH_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02565 } CriAtomExAisacGraphType;
02566 
02575 typedef struct CriAtomExAisacGraphInfoTag {
02576     CriAtomExAisacGraphType type;       
02577 } CriAtomExAisacGraphInfo;
02578 
02588 typedef struct CriAtomExSelectorInfoTag {
02589     const CriChar8* name;               
02590     CriUint16 index;                    
02591     CriUint16 num_labels;               
02592     CriUint16 global_label_index;       
02593 } CriAtomExSelectorInfo;
02594 
02603 typedef struct CriAtomExSelectorLabelInfoTag {
02604     const CriChar8* selector_name;          
02605     const CriChar8* label_name;             
02606 } CriAtomExSelectorLabelInfo;
02607 
02608 /*==========================================================================
02609  *      CRI AtomEx Category API
02610  *=========================================================================*/
02619 typedef CriUint32 CriAtomExCategoryId;
02620 
02627 #define CRIATOMEXCATEGORY_MAX_CATEGORIES_PER_PLAYBACK   (16)
02628 
02637 typedef struct CriAtomExCategoryInfoTag {
02638     CriUint32 group_no;         
02639     CriUint32 id;               
02640     const CriChar8* name;       
02641     CriUint32 num_cue_limits;   
02642     CriFloat32 volume;          
02643 } CriAtomExCategoryInfo;
02644 
02652 typedef enum CriAtomExReactTypeTag {
02653     CRIATOMEX_REACT_TYPE_DUCKER = 0,                    
02654     CRIATOMEX_REACT_TYPE_AISAC_MODULATION_TRIGGER,      
02656     /* enum size is 4bytes */
02657     CRIATOMEX_REACT_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02658 } CriAtomExReactType;
02659 
02667 typedef enum CriAtomExReactDuckerTargetTypeTag {
02668     CRIATOMEX_REACT_DUCKER_TARGET_TYPE_VOLUME = 0,                  
02669     CRIATOMEX_REACT_DUCKER_TARGET_TYPE_AISAC_CONTROL_VALUE,         
02671     /* enum size is 4bytes */
02672     CRIATOMEX_REACT_DUCKER_TARGET_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02673 } CriAtomExReactDuckerTargetType;
02674 
02682 typedef enum CriAtomExReactDuckerCurveTypeTag {
02683     CRIATOMEX_REACT_DUCKER_CURVE_TYPE_LINEAR = 0,       
02684     CRIATOMEX_REACT_DUCKER_CURVE_TYPE_SQUARE,           
02685     CRIATOMEX_REACT_DUCKER_CURVE_TYPE_SQUARE_REVERSE,   
02686     CRIATOMEX_REACT_DUCKER_CURVE_TYPE_S,                
02687     CRIATOMEX_REACT_DUCKER_CURVE_TYPE_FLAT_AT_HALF,     
02689     /* enum size is 4bytes */
02690     CRIATOMEX_REACT_DUCKER_CURVE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02691 } CriAtomExReactDuckerCurveType;
02692 
02700 typedef struct CriAtomExReactFadeParameterTag {
02701     CriAtomExReactDuckerCurveType   curve_type;         
02702     CriFloat32                      curve_strength;     
02703     CriUint16                       fade_time_ms;       
02704 } CriAtomExReactFadeParameter;
02705 
02713 typedef enum CriAtomExReactHoldTypeTag {
02714     CRIATOMEX_REACT_HOLD_TYPE_WHILE_PLAYING,        
02715     CRIATOMEX_REACT_HOLD_TYPE_FIXED_TIME,           
02717     /* enum size is 4bytes */
02718     CRIATOMEX_REACT_HOLD_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02719 } CriAtomExReactHoldType;
02720 
02728 typedef struct CriAtomExReactDuckerParameterTag {
02729     union {
02730         struct {
02731             CriFloat32  level;                          
02732         } volume;
02733         struct {
02734             CriUint16   control_id;                     
02735             CriFloat32  control_value;                  
02736         } aisac_control_value;
02737     } target;
02738     CriAtomExReactDuckerTargetType  target_type;        
02739     CriAtomExReactFadeParameter     entry;              
02740     CriAtomExReactFadeParameter     exit;               
02741     CriAtomExReactHoldType          hold_type;          
02742     CriUint16                       hold_time_ms;       
02743 } CriAtomExReactDuckerParameter;
02744 
02752 typedef struct CriAtomExReactAisacModulationParameterTag {
02753     CriBool     enable_decrement_aisac_modulation_key;  
02754     CriUint32   decrement_aisac_modulation_key;         
02755     CriBool     enable_increment_aisac_modulation_key;  
02756     CriUint32   increment_aisac_modulation_key;         
02757 } CriAtomExReactAisacModulationParameter;
02758 
02767 typedef struct CriAtomExReactParameterTag {
02768     union {
02769         CriAtomExReactDuckerParameter           ducker;             
02770         CriAtomExReactAisacModulationParameter  aisac_modulation;   
02771     } parameter;
02772     CriAtomExReactType  type;                                       
02773     CriBool             enable_pausing_cue;                         
02774 } CriAtomExReactParameter;
02775 
02776 /*==========================================================================
02777  *      CRI AtomEx ACB API
02778  *=========================================================================*/
02779 struct CriAtomExAcbTag;
02780 typedef struct CriAtomExAcbTag CriAtomExAcbObj;
02790 typedef CriAtomExAcbObj *CriAtomExAcbHn;
02791 
02800 typedef CriSint32 CriAtomExCueId;
02801 
02812 typedef CriSint32 CriAtomExCueIndex;
02813 
02821 typedef struct CriAtomExAcbInfoTag {
02822     const CriChar8* name;                           
02823     CriUint32 size;                                 
02824     CriUint32 version;                              
02825     CriAtomExCharacterEncoding character_encoding;  
02826     CriFloat32 volume;                              
02827     CriSint32 num_cues;                             
02828 } CriAtomExAcbInfo;
02829 
02837 /* Waveform information */
02838 typedef struct CriAtomExWaveformInfoTag {
02839     CriAtomExWaveId wave_id;    
02840     CriAtomExFormat format;     
02841     CriSint32 sampling_rate;    
02842     CriSint32 num_channels;     
02843     CriSint64 num_samples;      
02844     CriBool streaming_flag;     
02845     CriUint32 reserved[1];      
02846 } CriAtomExWaveformInfo;
02847 
02853 typedef enum CriAtomExAcbCueTypeTag {
02854     CRIATOMEXACB_CUE_TYPE_POLYPHONIC = (0),     
02855     CRIATOMEXACB_CUE_TYPE_SEQUENTIAL,           
02856     CRIATOMEXACB_CUE_TYPE_SHUFFLE,              
02857     CRIATOMEXACB_CUE_TYPE_RANDOM,               
02858     CRIATOMEXACB_CUE_TYPE_RANDOM_NO_REPEAT,     
02859     CRIATOMEXACB_CUE_TYPE_SWITCH_GAME_VARIABLE, 
02860     CRIATOMEXACB_CUE_TYPE_COMBO_SEQUENTIAL,     
02861     CRIATOMEXACB_CUE_TYPE_SWITCH_SELECTOR,      
02862     CRIATOMEXACB_CUE_TYPE_TRACK_TRANSITION_BY_SELECTOR,     
02863     /* enum size is 4bytes */
02864     CRIATOMEXACB_CUE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
02865 } CriAtomExAcbCueType;
02866 
02874 typedef struct CriAtomExCuePos3dInfoTag {
02875     CriFloat32 cone_inside_angle;       
02876     CriFloat32 cone_outside_angle;      
02877     CriFloat32 min_distance;            
02878     CriFloat32 max_distance;            
02879     CriFloat32 source_radius;           
02880     CriFloat32 interior_distance;       
02881     CriFloat32 doppler_factor;          
02882     CriUint16 distance_aisac_control;   
02883     CriUint16 listener_base_angle_aisac_control;        
02884     CriUint16 source_base_angle_aisac_control;          
02885     CriUint16 listener_base_elevation_aisac_control;    
02886     CriUint16 source_base_elevation_aisac_control;      
02887     CriUint16 reserved[1];              
02888 } CriAtomExCuePos3dInfo;
02889 
02897 typedef struct CriAtomExCueInfoTag {
02898     CriAtomExCueId id;                  
02899     CriAtomExAcbCueType type;           
02900     const CriChar8* name;               
02901     const CriChar8* user_data;          
02902     CriSint64 length;                   
02903     CriUint16 categories[CRIATOMEXCATEGORY_MAX_CATEGORIES_PER_PLAYBACK];            
02904     CriSint16 num_limits;               
02905     CriUint16 num_blocks;               
02906     CriUint16 num_tracks;               
02907     CriUint16 num_related_waveforms;    
02908     CriUint8 priority;                  
02909     CriUint8 header_visibility;         
02910     CriUint8 ignore_player_parameter;   
02911     CriUint8 probability;               
02912     CriAtomExPanType pan_type;          
02913     CriAtomExCuePos3dInfo pos3d_info;   
02914     CriAtomExGameVariableInfo game_variable_info;   
02915 } CriAtomExCueInfo;
02916 
02931 typedef CriBool (CRIAPI *CriAtomExAcbHandleCbFunc)(void *obj, CriAtomExAcbHn acb_hn);
02932 
02952 typedef void (CRIAPI *CriAtomExAcbDetectionInGamePreviewDataCbFunc)(
02953     void *obj, const CriChar8* acb_name);
02954 
02955 /*==========================================================================
02956  *      CRI AtomEx Voice Pool API
02957  *=========================================================================*/
02958 struct CriAtomExVoicePoolTag;
02959 typedef struct CriAtomExVoicePoolTag CriAtomExVoicePoolObj;
02971 typedef struct CriAtomExVoicePoolTag *CriAtomExVoicePoolHn;
02972 
02990 typedef CriUint32 CriAtomExVoicePoolIdentifier;
02991 
03004 typedef struct CriAtomExStandardVoicePoolConfigTag {
03005     CriAtomExVoicePoolIdentifier identifier;    
03006     CriSint32 num_voices;                       
03007     CriAtomStandardPlayerConfig player_config;  
03008 } CriAtomExStandardVoicePoolConfig;
03009 
03022 typedef struct CriAtomExAdxVoicePoolConfigTag {
03023     CriAtomExVoicePoolIdentifier identifier;    
03024     CriSint32 num_voices;                       
03025     CriAtomAdxPlayerConfig player_config;       
03026 } CriAtomExAdxVoicePoolConfig;
03027 
03040 typedef struct CriAtomExHcaVoicePoolConfigTag {
03041     CriAtomExVoicePoolIdentifier identifier;    
03042     CriSint32 num_voices;                       
03043     CriAtomHcaPlayerConfig player_config;       
03044 } CriAtomExHcaVoicePoolConfig;
03045 
03058 typedef struct CriAtomExHcaMxVoicePoolConfigTag {
03059     CriAtomExVoicePoolIdentifier identifier;    
03060     CriSint32 num_voices;                       
03061     CriAtomHcaMxPlayerConfig player_config;     
03062 } CriAtomExHcaMxVoicePoolConfig;
03063 
03076 typedef struct CriAtomExWaveVoicePoolConfigTag {
03077     CriAtomExVoicePoolIdentifier identifier;    
03078     CriSint32 num_voices;                       
03079     CriAtomWavePlayerConfig player_config;      
03080 } CriAtomExWaveVoicePoolConfig;
03081 
03094 typedef struct CriAtomExAiffVoicePoolConfigTag {
03095     CriAtomExVoicePoolIdentifier identifier;    
03096     CriSint32 num_voices;                       
03097     CriAtomAiffPlayerConfig player_config;      
03098 } CriAtomExAiffVoicePoolConfig;
03099 
03112 typedef struct CriAtomExRawPcmVoicePoolConfigTag {
03113     CriAtomExVoicePoolIdentifier identifier;    
03114     CriSint32 num_voices;                       
03115     CriAtomRawPcmPlayerConfig player_config;        
03116 } CriAtomExRawPcmVoicePoolConfig;
03117 
03130 typedef struct CriAtomExInstrumentVoicePoolConfigTag {
03131     CriAtomExVoicePoolIdentifier identifier;        
03132     CriSint32 num_voices;                           
03133     CriAtomInstrumentPlayerConfig player_config;    
03134 } CriAtomExInstrumentVoicePoolConfig;
03135 
03136 /*==========================================================================
03137  *      CRI AtomEx Player API
03138  *=========================================================================*/
03147 typedef enum CriAtomExVoiceAllocationMethodTag {
03148     CRIATOMEX_ALLOCATE_VOICE_ONCE = 0,      
03149     CRIATOMEX_RETRY_VOICE_ALLOCATION,       
03150     CRIATOMEX_VOICE_ALLOCATION_METHOD_IS_4BYTE = 0x7FFFFFFF
03151 } CriAtomExVoiceAllocationMethod;
03152 
03169 typedef struct CriAtomExPlayerConfigTag {
03210     CriAtomExVoiceAllocationMethod voice_allocation_method;
03211     
03229     CriSint32 max_path_strings;
03230     
03250     CriSint32 max_path;
03251     
03260     CriUint8 max_aisacs;
03261 
03273     CriBool updates_time;
03274 
03290     CriBool enable_audio_synced_timer;
03291 } CriAtomExPlayerConfig;
03292 
03293 struct CriAtomExPlayerTag;
03294 typedef struct CriAtomExPlayerTag CriAtomExPlayerObj;
03307 typedef CriAtomExPlayerObj *CriAtomExPlayerHn;
03308 
03351 typedef enum CriAtomExPlayerStatusTag {
03352     CRIATOMEXPLAYER_STATUS_STOP = 0,        
03353     CRIATOMEXPLAYER_STATUS_PREP,            
03354     CRIATOMEXPLAYER_STATUS_PLAYING,         
03355     CRIATOMEXPLAYER_STATUS_PLAYEND,         
03356     CRIATOMEXPLAYER_STATUS_ERROR,           
03357     CRIATOMEXPLAYER_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
03358 } CriAtomExPlayerStatus;
03359 
03368 typedef enum CriAtomExVoiceControlMethodTag {
03369     CRIATOMEX_PREFER_LAST = 0,              
03370     CRIATOMEX_PREFER_FIRST = 1,             
03371     CRIATOMEX_PREFER_DATA = 2,              
03372     CRIATOMEX_CONTROL_METHOD_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
03373 } CriAtomExVoiceControlMethod;
03374 
03383 typedef enum CriAtomExSpeakerIdTag {
03384     CRIATOMEX_SPEAKER_FRONT_LEFT = 0,           
03385     CRIATOMEX_SPEAKER_FRONT_RIGHT = 1,          
03386     CRIATOMEX_SPEAKER_FRONT_CENTER = 2,         
03387     CRIATOMEX_SPEAKER_LOW_FREQUENCY = 3,        
03388     CRIATOMEX_SPEAKER_SURROUND_LEFT = 4,        
03389     CRIATOMEX_SPEAKER_SURROUND_RIGHT = 5,       
03390     CRIATOMEX_SPEAKER_SURROUND_BACK_LEFT = 6,   
03391     CRIATOMEX_SPEAKER_SURROUND_BACK_RIGHT = 7,  
03393     /* enum size is 4bytes */
03394     CRIATOMEX_SPEAKER_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
03395 } CriAtomExSpeakerId;
03396 
03407 typedef CriUint32 CriAtomExPlaybackId;
03408 
03426 typedef void (CRIAPI *CriAtomExPlayerCbFunc)(void *obj, CriAtomExPlayerHn player);
03427 
03500 typedef void (CRIAPI *CriAtomExPlayerDataRequestCbFunc)(
03501     void *obj, CriAtomExPlaybackId id, CriAtomPlayerHn player);
03502 
03556 typedef void (CRIAPI *CriAtomExPlayerFilterCbFunc)(
03557     void *obj, CriAtomExPlaybackId id, CriAtomPcmFormat format,
03558     CriSint32 num_channels, CriSint32 num_samples, void *data[]);
03559 
03585 typedef void (CRIAPI *CriAtomExPlayerBlockTransitionCbFunc)(
03586     void *obj, CriAtomExPlaybackId id, CriAtomExBlockIndex index);
03587 
03592 typedef struct CriAtomExPlaybackTrackInfoTag {
03593     CriAtomExPlaybackId id;             
03594     CriAtomExAcbCueType sequence_type;  
03595     CriAtomExPlayerHn player;           
03596     CriUint16 track_no;                 
03597     CriUint16 reserved[1];              
03598 } CriAtomExPlaybackTrackInfo;
03599 
03622 typedef void (CRIAPI *CriAtomExPlayerPlaybackTrackInfoNotificationCbFunc)(
03623     void *obj, const CriAtomExPlaybackTrackInfo* info);
03624 
03634 typedef enum CriAtomExParameterIdTag {
03635     CRIATOMEX_PARAMETER_ID_VOLUME                   =  0,   
03636     CRIATOMEX_PARAMETER_ID_PITCH                    =  1,   
03637     CRIATOMEX_PARAMETER_ID_PAN3D_ANGLE              =  2,   
03638     CRIATOMEX_PARAMETER_ID_PAN3D_DISTANCE           =  3,   
03639     CRIATOMEX_PARAMETER_ID_PAN3D_VOLUME             =  4,   
03640     CRIATOMEX_PARAMETER_ID_PAN_TYPE                 =  5,   
03641     CRIATOMEX_PARAMETER_ID_PAN_SPEAKER_TYPE         =  6,   
03642     CRIATOMEX_PARAMETER_ID_PAN_CH0                  =  7,   
03643     CRIATOMEX_PARAMETER_ID_PAN_CH1                  =  8,   
03644     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_0         =  9,   
03645     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_1         = 10,   
03646     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_2         = 11,   
03647     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_3         = 12,   
03648     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_4         = 13,   
03649     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_5         = 14,   
03650     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_6         = 15,   
03651     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_7         = 16,   
03652     CRIATOMEX_PARAMETER_ID_BANDPASS_FILTER_COF_LOW  = 17,   
03653     CRIATOMEX_PARAMETER_ID_BANDPASS_FILTER_COF_HIGH = 18,   
03654     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_TYPE       = 19,   
03655     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_FREQ       = 20,   
03656     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_Q          = 21,   
03657     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_GAIN       = 22,   
03658     CRIATOMEX_PARAMETER_ID_ENVELOPE_ATTACK_TIME     = 23,   
03659     CRIATOMEX_PARAMETER_ID_ENVELOPE_HOLD_TIME       = 24,   
03660     CRIATOMEX_PARAMETER_ID_ENVELOPE_DECAY_TIME      = 25,   
03661     CRIATOMEX_PARAMETER_ID_ENVELOPE_RELEASE_TIME    = 26,   
03662     CRIATOMEX_PARAMETER_ID_ENVELOPE_SUSTAIN_LEVEL   = 27,   
03663     CRIATOMEX_PARAMETER_ID_START_TIME               = 28,   
03664     CRIATOMEX_PARAMETER_ID_PRIORITY                 = 31,   
03665     CRIATOMEX_PARAMETER_ID_SILENT_MODE              = 32,   
03666     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_0          = 33,   
03667     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_1          = 34,   
03668     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_2          = 35,   
03669     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_3          = 36,   
03670     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_4          = 37,   
03671     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_5          = 38,   
03672     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_6          = 39,   
03673     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_7          = 40,   
03675     /* enum size is 4bytes */
03676     CRIATOMEX_PARAMETER_ID_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
03677 } CriAtomExParameterId;
03678 
03679 /*==========================================================================
03680  *      CRI AtomEx Sequencer API
03681  *=========================================================================*/
03689 typedef enum CriAtomExSequecneEventTypeTag {
03695     CRIATOMEX_SEQUENCE_EVENT_TYPE_CALLBACK = 0,
03696         
03697     /* enum size is 4bytes */
03698     CRIATOMEX_SEQUENCE_EVENT_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
03699 } CriAtomExSequecneEventType;
03700 
03705 typedef struct CriAtomExSequenceEventInfoTag {
03706     CriUint64 position;                 
03707     CriAtomExPlayerHn player;           
03708     const CriChar8* string;             
03709     CriAtomExPlaybackId id;             
03710     CriAtomExSequecneEventType type;    
03711     CriUint32 value;                    
03712     CriUint32 reserved[1];              
03713 } CriAtomExSequenceEventInfo;
03714 
03732 typedef CriSint32 (CRIAPI *CriAtomExSequencerEventCbFunc)(void* obj, const CriAtomExSequenceEventInfo* info);
03733 
03734 /*==========================================================================
03735  *      CRI AtomEx Beat Sync API
03736  *=========================================================================*/
03741 typedef struct CriAtomExBeatSyncInfoTag {
03742     CriAtomExPlayerHn player;           
03743     CriAtomExPlaybackId playback_id;    
03744     CriUint32 bar_count;                
03745     CriUint32 beat_count;               
03746     CriFloat32 beat_progress;           
03747     CriFloat32 bpm;                     
03748     CriSint32 offset;                   
03749     CriUint32 num_beats;                
03750 } CriAtomExBeatSyncInfo;
03751 
03769 typedef CriSint32 (CRIAPI *CriAtomExBeatSyncCbFunc)(void* obj, const CriAtomExBeatSyncInfo* info);
03770 
03771 /*==========================================================================
03772  *      CRI AtomEx Playback API
03773  *=========================================================================*/
03801 typedef enum CriAtomExPlaybackStatusTag {
03802     CRIATOMEXPLAYBACK_STATUS_PREP = 1,  
03803     CRIATOMEXPLAYBACK_STATUS_PLAYING,   
03804     CRIATOMEXPLAYBACK_STATUS_REMOVED,   
03805     CRIATOMEXPLAYBACK_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
03806 } CriAtomExPlaybackStatus;
03807 
03815 typedef enum CriAtomExSourceTypeTag {
03816     CRIATOMEX_SOURCE_TYPE_NONE = 0,             
03817     CRIATOMEX_SOURCE_TYPE_CUE_ID,               
03818     CRIATOMEX_SOURCE_TYPE_CUE_NAME,             
03819     CRIATOMEX_SOURCE_TYPE_CUE_INDEX,            
03820     CRIATOMEX_SOURCE_TYPE_DATA,                 
03821     CRIATOMEX_SOURCE_TYPE_FILE,                 
03822     CRIATOMEX_SOURCE_TYPE_CONTENT_ID,           
03823     CRIATOMEX_SOURCE_TYPE_WAVE_ID,              
03824     CRIATOMEX_SOURCE_TYPE_VIBRATION_ID,         
03825     CRIATOMEX_SOURCE_TYPE_SOUND_GENERATOR_ID,   
03826     CRIATOMEX_SOURCE_TYPE_RAW_PCM_FLOAT_ID,     
03827     CRIATOMEX_SOURCE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
03828 } CriAtomExSourceType;
03829 
03858 typedef struct CriAtomExSourceInfoTag {
03860     CriAtomExSourceType type;
03861 
03863     union CriAtomExSourceInfoInfoTag {
03865         struct CriAtomExSourceInfoCueIdTag {
03867             CriAtomExAcbHn acb;
03869             CriAtomExCueId id;
03870         } cue_id;
03872         struct CriAtomExSourceInfoCueNameTag {
03874             CriAtomExAcbHn acb;
03876             const CriChar8 *name;
03877         } cue_name;
03879         struct CriAtomExSourceInfoCueIndexTag {
03881             CriAtomExAcbHn acb;
03883             CriAtomExCueIndex index;
03884         } cue_index;
03886         struct CriAtomExSourceInfoDataTag {
03888             void *buffer;
03890             CriSint32 size;
03891         } data;
03893         struct CriAtomExSourceInfoFileTag {
03895             CriFsBinderHn binder;
03897             const CriChar8 *path;
03898         } file;
03900         struct CriAtomExSourceInfoContentIdTag {
03902             CriFsBinderHn binder;
03904             CriSint32 id;
03905         } content_id;
03907         struct CriAtomExSourceInfoWaveIdTag {
03909             CriAtomAwbHn awb;
03911             CriAtomExWaveId id;
03912         } wave_id;
03914         struct CriAtomExSourceInfoVibrationIdTag {
03916             CriAtomExVibrationId id;
03917         } vibration_id;
03918         struct CriAtomExSourceInfoVibrationNameTag {
03920             const CriChar8 *name;
03921         } vibration_name;
03922         /* サウンドジェネレータID情報 */
03923         struct CriAtomExSourceInfoSoundGeneratorParameterTag {
03925             CriFloat32 frequency;
03927             CriAtomWaveType wave_type;
03928         } sound_generator_parameter;
03929         /* RawPCM FloatID情報 */
03930         struct CriAtomExSourceInfoRawPcmFloatParameterTag {
03932             CriFloat32 *data;
03934             CriUint32 total_samples;
03935         } raw_pcm_float_parameter;
03936     } info;
03937 } CriAtomExSourceInfo;
03938 
03947 typedef enum CriAtomExPlaybackEventTag {
03955     CRIATOMEX_PLAYBACK_EVENT_ALLOCATE = 0,
03956     
03967     CRIATOMEX_PLAYBACK_EVENT_FROM_VIRTUAL_TO_NORMAL,
03968     
03987     CRIATOMEX_PLAYBACK_EVENT_FROM_NORMAL_TO_VIRTUAL,
03988     
03998     CRIATOMEX_PLAYBACK_EVENT_REMOVE,
03999     
04000     CRIATOMEX_PLAYBACK_EVENT_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
04001 } CriAtomExPlaybackEvent;
04002 
04011 typedef struct CriAtomExPlaybackInfoDetailTag {
04012     CriAtomExPlayerHn player;           
04013     CriAtomExPlaybackId id;             
04014 } CriAtomExPlaybackInfoDetail;
04015 
04031 typedef void (CRIAPI *CriAtomExPlaybackEventCbFunc)(void *obj,
04032     CriAtomExPlaybackEvent playback_event, const CriAtomExPlaybackInfoDetail *info);
04033 
04034 /*==========================================================================
04035  *      CRI AtomEx Fader API
04036  *=========================================================================*/
04048 typedef struct CriAtomExFaderConfigTag {
04049     CriSint32 reserved;                 
04050 } CriAtomExFaderConfig;
04051 
04052 /*==========================================================================
04053  *      CRI AtomEx D-BAS API
04054  *=========================================================================*/
04065 typedef CriAtomDbasId CriAtomExDbasId;
04066 
04078 typedef CriAtomDbasConfig CriAtomExDbasConfig;
04079 
04080 /* ========================================================================*/
04081 /*       CRI AtomEx Streaming Cache API                                      */
04082 /* ========================================================================*/
04091 typedef CriAtomStreamingCacheId CriAtomExStreamingCacheId;
04092 
04107 typedef CriAtomStreamingCacheConfig CriAtomExStreamingCacheConfig;
04108 
04109 /*==========================================================================
04110  *      CRI AtomEx 3D API
04111  *=========================================================================*/
04119 typedef struct CriAtomExVectorTag {
04120     CriFloat32 x;   
04121     CriFloat32 y;   
04122     CriFloat32 z;   
04123 } CriAtomExVector;
04124 
04135 typedef struct CriAtomEx3dSourceConfigTag {
04153     CriBool enable_voice_priority_decay;
04154 } CriAtomEx3dSourceConfig;
04155 
04166 typedef struct CriAtomEx3dSourceListConfigTag {
04167     CriSint32 reserved;
04168 } CriAtomEx3dSourceListConfig;
04169 
04180 typedef struct CriAtomEx3dListenerConfigTag {
04181     CriSint32 reserved;
04182 } CriAtomEx3dListenerConfig;
04183 
04184 struct CriAtomEx3dSourceObjTag;
04185 typedef struct CriAtomEx3dSourceObjTag CriAtomEx3dSourceObj;
04196 typedef CriAtomEx3dSourceObj *CriAtomEx3dSourceHn;
04197 
04198 struct CriAtomEx3dSourceListObjTag;
04199 typedef struct CriAtomEx3dSourceListObjTag CriAtomEx3dSourceListObj;
04208 typedef CriAtomEx3dSourceListObj *CriAtomEx3dSourceListHn;
04209 
04210 struct CriAtomEx3dListenerObjTag;
04211 typedef struct CriAtomEx3dListenerObjTag CriAtomEx3dListenerObj;
04222 typedef CriAtomEx3dListenerObj *CriAtomEx3dListenerHn;
04223 
04234 typedef struct CriAtomEx3dRegionConfigTag {
04235     CriSint32 reserved;                 
04236 } CriAtomEx3dRegionConfig;
04237 
04238 struct CriAtomEx3dRegionObjTag;
04239 typedef struct CriAtomEx3dRegionObjTag CriAtomEx3dRegionObj;
04248 typedef CriAtomEx3dRegionObj *CriAtomEx3dRegionHn;
04249 
04260 typedef struct CriAtomEx3dTransceiverConfigTag {
04261     CriSint32 reserved;                 
04262 } CriAtomEx3dTransceiverConfig;
04263 
04264 struct CriAtomEx3dTransceiverObjTag;
04265 typedef struct CriAtomEx3dTransceiverObjTag CriAtomEx3dTransceiverObj;
04276 typedef CriAtomEx3dTransceiverObj *CriAtomEx3dTransceiverHn;
04277 
04278 /*==========================================================================
04279  *      CRI AtomEx DSP API
04280  *=========================================================================*/
04281 
04293 typedef struct CriAtomExDspPitchShifterConfigTag {
04299     CriSint32 num_dsp;
04300     
04307     CriSint32 max_channels;
04308     
04315     CriSint32 max_sampling_rate;
04316     
04323     CriAtomDspPitchShifterConfig specific;
04324 } CriAtomExDspPitchShifterConfig;
04325 
04337 typedef struct CriAtomExDspTimeStretchConfigTag {
04343     CriSint32 num_dsp;
04344     
04351     CriSint32 max_channels;
04352     
04359     CriSint32 max_sampling_rate;
04360     
04367     CriAtomDspTimeStretchConfig specific;
04368 } CriAtomExDspTimeStretchConfig;
04369 
04370 /*==========================================================================
04371  *      CRI AtomEx Tween API
04372  *=========================================================================*/
04380 typedef enum CriAtomExTweenParameterTypeTag {
04386     CRIATOMEX_PARAMETER_TYPE_BASIC,
04387 
04393     CRIATOMEX_PARAMETER_TYPE_AISAC,
04394 
04395     /* enum size is 4bytes */
04396     CRIATOMEX_PARAMETER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
04397 } CriAtomExTweenParameterType;
04398 
04409 typedef struct CriAtomExTweenConfigTag {
04415     union CriAtomExTweenConfigParameterIdTag {
04421         CriAtomExParameterId parameter_id;
04422 
04428         CriAtomExAisacControlId aisac_control_id;
04429     } id;
04430 
04436     CriAtomExTweenParameterType parameter_type;
04437 } CriAtomExTweenConfig;
04438 
04453 typedef struct CriAtomExTweenTag *CriAtomExTweenHn;
04454 
04455 /*==========================================================================
04456  *      CRI AtomEx Voice Event API
04457  *=========================================================================*/
04466 typedef enum CriAtomExVoiceEventTag {
04472     CRIATOMEX_VOICE_EVENT_ALLOCATE = 0,
04473     
04484     CRIATOMEX_VOICE_EVENT_ALLOCATE_AND_REMOVE,
04485     
04495     CRIATOMEX_VOICE_EVENT_ALLOCATE_AND_REMOVE_IN_GROUP,
04496     
04513     CRIATOMEX_VOICE_EVENT_ALOOCATE_AND_REMOVE_TWO,
04514     
04522     CRIATOMEX_VOICE_EVENT_REJECT,
04523     
04531     CRIATOMEX_VOICE_EVENT_REJECT_BY_GROUP_LIMIT,
04532     
04539     CRIATOMEX_VOICE_EVENT_REMOVE,
04540     
04541     CRIATOMEX_VOICE_EVENT_ENUM_IS_4BYTE = 0x7FFFFFFF
04542 } CriAtomExVoiceEvent;
04543 
04552 typedef struct CriAtomExVoiceInfoDetailTag {
04553     CriAtomExPlaybackId playback_id;                    
04554     CriAtomExSourceInfo cue_info;                       
04555     CriAtomExSourceInfo wave_info;                      
04556     CriSint32 group_no;                                 
04557     CriSint32 priority;                                 
04558     CriAtomExVoiceControlMethod control_method;         
04559     CriAtomExVoiceAllocationMethod allocation_method;   
04560     CriUint32 identifier;                               
04561     CriAtomExFormat format;                             
04562     CriSint32 sampling_rate;                            
04563     CriSint32 num_channels;                             
04564     CriBool streaming_flag;                             
04565     CriAtomPlayerHn atom_player;                        
04566 } CriAtomExVoiceInfoDetail;
04567 
04631 typedef void (CRIAPI *CriAtomExVoiceEventCbFunc)(
04632     void *obj, CriAtomExVoiceEvent voice_event,
04633     const CriAtomExVoiceInfoDetail *request,
04634     const CriAtomExVoiceInfoDetail *removed,
04635     const CriAtomExVoiceInfoDetail *removed_in_group);
04636 
04651 typedef void (CRIAPI *CriAtomExVoiceInfoCbFunc)(
04652     void *obj, const CriAtomExVoiceInfoDetail *voice_info);
04653 
04662 typedef struct CriAtomExMonitoringVoiceStopInfoTag {
04663     CriAtomExPlaybackId playback_id;        
04664     CriAtomVoiceStopReason reason;          
04665     CriAtomPlayerHn atom_player;            
04666 } CriAtomExMonitoringVoiceStopInfo;
04667 
04681 typedef void (CRIAPI *CriAtomExMonitoringVoiceStopCbFunc)(void *obj, CriAtomExMonitoringVoiceStopInfo* voice_stop);
04682 
04683 
04684 /*==========================================================================
04685  *      CRI AtomEx Cue Link Callback API
04686  *=========================================================================*/
04691 typedef enum CriAtomExCueLinkTypeTag {
04692     CRIATOMEX_CUELINK_TYPE_STATIC       =  0,   
04693     CRIATOMEX_CUELINK_TYPE_DYNAMIC      =  1,   
04695     /* enum size is 4bytes */
04696     CRIATOMEX_CUELINK_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
04697 } CriAtomExCueLinkType;
04698 
04703 typedef struct CriAtomExCueLinkInfoTag {
04704     CriAtomExPlayerHn player;           
04705     CriAtomExPlaybackId base_id;        
04706     CriAtomExSourceInfo base_cue;       
04707     CriAtomExPlaybackId target_id;      
04708     CriAtomExSourceInfo target_cue;     
04709     CriAtomExCueLinkType link_type;     
04710 } CriAtomExCueLinkInfo;
04711 
04729 typedef CriSint32 (CRIAPI *CriAtomExCueLinkCbFunc)(void* obj, const CriAtomExCueLinkInfo* info);
04730 
04731 /*==========================================================================
04732  *      CRI AtomEx Playback Cancel Callback API
04733  *=========================================================================*/
04741 typedef enum CriAtomExPlaybackCancelTypeTag {
04747     CRIATOMEX_PLAYBACK_CANCEL_TYPE_CUE_LIMIT = 0,
04748 
04754     CRIATOMEX_PLAYBACK_CANCEL_TYPE_CATEGORY_CUE_LIMIT,
04755     
04761     CRIATOMEX_PLAYBACK_CANCEL_TYPE_PROBABILITY,
04762 
04768     CRIATOMEX_PLAYBACK_CANCEL_TYPE_STOP_BY_CUE_LIMIT,
04769         
04775     CRIATOMEX_PLAYBACK_CANCEL_TYPE_SWITCH,
04776 
04777 
04778     CRIATOMEX_PLAYBACK_CANCEL_TYPE_ENUM_IS_4BYTE = 0x7FFFFFFF
04779 } CriAtomExPlaybackCancelType;
04780 
04785 typedef struct CriAtomExPlaybackCancelInfoTag {
04786     CriAtomExPlaybackCancelType type;   
04787     CriAtomExPlayerHn player;           
04788     CriAtomExPlaybackId id;             
04789 } CriAtomExPlaybackCancelInfo;
04790 
04808 typedef void (CRIAPI *CriAtomExPlaybackCancelCbFunc)(void *obj, const CriAtomExPlaybackCancelInfo* info);
04809 
04810 /*==========================================================================
04811  *      CRI AtomEx Track Transition Callback API
04812  *=========================================================================*/
04817 typedef struct CriAtomExTrackTransitionBySelectorInfoTag {
04818     CriAtomExPlayerHn player;           
04819     CriAtomExPlaybackId id;             
04820     const CriChar8* selector;           
04821     const CriChar8* label;              
04822 } CriAtomExTrackTransitionBySelectorInfo;
04823 
04842 typedef void (CRIAPI *CriAtomExTrackTransitionBySelectorCbFunc)(void *obj, const CriAtomExTrackTransitionBySelectorInfo* info);
04843 
04844 
04845 /*==========================================================================
04846  *      CRI AtomEx Sound Object API
04847  *=========================================================================*/
04864 typedef struct CriAtomExSoundObjectConfigTag {
04876     CriBool enable_voice_limit_scope;
04888     CriBool enable_category_cue_limit_scope;
04889 } CriAtomExSoundObjectConfig;
04890 
04891 struct CriAtomExSoundObjectTag;
04892 typedef struct CriAtomExSoundObjectTag CriAtomExSoundObjectObj;
04916 typedef CriAtomExSoundObjectObj *CriAtomExSoundObjectHn;
04917 
04918 /***************************************************************************
04919  *      変数宣言
04920  *      Prototype Variables
04921  ***************************************************************************/
04922 
04923 /***************************************************************************
04924  *      関数宣言
04925  *      Prototype Functions
04926  ***************************************************************************/
04927 #ifdef __cplusplus
04928 extern "C" {
04929 #endif
04930 
04931 /*==========================================================================
04932  *      CRI AtomEx API
04933  *=========================================================================*/
04963 CriSint32 CRIAPI criAtomEx_CalculateWorkSize(const CriAtomExConfig *config);
04964 
05126 CriBool CRIAPI criAtomEx_Initialize(
05127     const CriAtomExConfig *config, void *work, CriSint32 work_size);
05128 
05138 void CRIAPI criAtomEx_Finalize(void);
05139 
05150 CriBool CRIAPI criAtomEx_IsInitialized(void);
05151 
05182 void CRIAPI criAtomEx_ExecuteMain(void);
05183 
05204 void CRIAPI criAtomEx_ExecuteAudioProcess(void);
05205 
05239 void CRIAPI criAtomEx_Lock(void);
05240 
05248 void CRIAPI criAtomEx_Unlock(void);
05249 
05258 CriUint64 CRIAPI criAtomEx_GetTimeMicro(void);
05259 
05270 void CRIAPI criAtomEx_ResetTimer(void);
05271 
05293 void CRIAPI criAtomEx_PauseTimer(CriBool sw);
05294 
05360 void CRIAPI criAtomEx_SetConfigForWorkSizeCalculation(const CriAtomExConfig *config);
05361 
05384 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForRegisterAcfData(
05385     void *acf_data, CriSint32 acf_data_size);
05386 
05421 void CRIAPI criAtomEx_RegisterAcfData(
05422     void *acf_data, CriSint32 acf_data_size, void *work, CriSint32 work_size);
05423 
05449 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForRegisterAcfFile(
05450     CriFsBinderHn binder, const CriChar8 *path);
05451 
05468 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForRegisterAcfFileById(
05469     CriFsBinderHn binder, CriUint16 id);
05470 
05524 CriBool CRIAPI criAtomEx_RegisterAcfFile(
05525     CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size);
05526 
05546 CriBool CRIAPI criAtomEx_RegisterAcfFileById(
05547     CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size);
05548 
05561 void CRIAPI criAtomEx_UnregisterAcf(void);
05562 
05574 CriUint32 CRIAPI criAtomEx_GetAcfVersion(
05575     void *acf_data, CriSint32 acf_data_size, CriBool *flag);
05576 
05608 CriUint32 CRIAPI criAtomEx_GetAcfVersionFromFile(
05609     CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size, CriBool *flag);
05610 
05628 CriUint32 CRIAPI criAtomEx_GetAcfVersionFromFileById(
05629     CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size, CriBool *flag);
05630 
05641 void CRIAPI criAtomEx_GetSupportedAcfVersion(
05642     CriUint32 *version_low, CriUint32 *version_high);
05643 
05669 CriBool CRIAPI criAtomEx_AnalyzeAudioHeader(
05670     const void *buffer, CriSint32 buffer_size, CriAtomExFormatInfo *info);
05671 
05683 void CRIAPI criAtomEx_SetRandomSeed(CriUint32 seed);
05684 
05714 CriBool CRIAPI criAtomEx_IsDataPlaying(void *buffer, CriSint32 size);
05715 
05734 #define criAtomEx_GetStreamingInfo(streaming_info) \
05735     criAtom_GetStreamingInfo(streaming_info)
05736 
05760 #define criAtomEx_SetFreeTimeBufferingFlagForDefaultDevice(flag) \
05761     criAtom_SetFreeTimeBufferingFlagForDefaultDevice(flag)
05762 
05787 #define criAtomEx_SetAdx1KeyString(key_string)  \
05788     criAtom_SetAdx1KeyString(key_string)
05789 
05809 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForDspBusSetting(
05810     const CriChar8 *setting);
05811 
05844 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForDspBusSettingFromAcfData(
05845     void *acf_data, CriSint32 acf_buffer_size, const CriChar8 *setting_name);
05846 
05876 void CRIAPI criAtomEx_AttachDspBusSetting(
05877     const CriChar8 *setting, void *work, CriSint32 work_size);
05878 
05895 void CRIAPI criAtomEx_DetachDspBusSetting(void);
05896 
05907 void CRIAPI criAtomEx_ApplyDspBusSnapshot(const CriChar8 *snapshot_name, CriSint32 time_ms);
05908 
05919 const CriChar8* CRIAPI criAtomEx_GetAppliedDspBusSnapshotName(void);
05920 
05943 void CRIAPI criAtomEx_SetCueLinkCallback(CriAtomExCueLinkCbFunc func, void* obj);
05944 
05966 void CRIAPI criAtomEx_SetSpeakerAngles(CriFloat32 angle_l, CriFloat32 angle_r, CriFloat32 angle_sl, CriFloat32 angle_sr);
05967 
05990 void CRIAPI criAtomEx_SetSpeakerAngleArray(CriAtomExSpeakerSystem speaker_system, const CriFloat32 *angle_array);
05991 
06006 void CRIAPI criAtomEx_SetVirtualSpeakerAngleArray(CriAtomExSpeakerSystem speaker_system, const CriFloat32 *angle_array);
06007 
06022 void CRIAPI criAtomEx_ControlVirtualSpeakerSetting(CriBool sw);
06023 
06035 CriSint32 CRIAPI criAtomEx_GetNumGameVariables(void);
06036 
06048 CriBool CRIAPI criAtomEx_GetGameVariableInfo(CriUint16 index, CriAtomExGameVariableInfo* info);
06049 
06060 CriFloat32 CRIAPI criAtomEx_GetGameVariableById(CriAtomExGameVariableId id);
06061 
06072 CriFloat32 CRIAPI criAtomEx_GetGameVariableByName(const CriChar8* name);
06073 
06085 void CRIAPI criAtomEx_SetGameVariableById(CriAtomExGameVariableId id, CriFloat32 value);
06086 
06098 void CRIAPI criAtomEx_SetGameVariableByName(const CriChar8* name, CriFloat32 value);
06099 
06122 void CRIAPI criAtomEx_SetPlaybackCancelCallback(CriAtomExPlaybackCancelCbFunc func, void* obj);
06123 
06136 void CRIAPI criAtomEx_ControlAcfConsistencyCheck(CriBool sw);
06137 
06146 void CRIAPI criAtomEx_SetAcfConsistencyCheckErrorLevel(CriErrorLevel level);
06147 
06170 void CRIAPI criAtomEx_SetTrackTransitionBySelectorCallback(CriAtomExTrackTransitionBySelectorCbFunc func, void* obj);
06171 
06172 /*==========================================================================
06173  *      CRI AtomEx Debug API
06174  *=========================================================================*/
06185 void CRIAPI criAtomExDebug_GetResourcesInfo(CriAtomExDebugResourcesInfo *resources_info);
06186 
06187 /*==========================================================================
06188  *      CRI AtomEx HCA-MX API
06189  *=========================================================================*/
06218 CriSint32 CRIAPI criAtomExHcaMx_CalculateWorkSize(const CriAtomExHcaMxConfig *config);
06219 
06267 void CRIAPI criAtomExHcaMx_SetConfigForWorkSizeCalculation(const CriAtomExHcaMxConfig *config);
06268 
06300 void CRIAPI criAtomExHcaMx_Initialize(
06301     const CriAtomExHcaMxConfig *config, void *work, CriSint32 work_size);
06302 
06320 void CRIAPI criAtomExHcaMx_Finalize(void);
06321 
06335 void CRIAPI criAtomExHcaMx_SetBusSendLevelByName(
06336     CriSint32 mixer_id, const CriChar8* bus_name, CriFloat32 level);
06337 
06352 void CRIAPI criAtomExHcaMx_SetFrequencyRatio(CriSint32 mixer_id, CriFloat32 ratio);
06353 
06369 void CRIAPI criAtomExHcaMx_SetAsrRackId(CriSint32 mixer_id, CriSint32 rack_id);
06370 
06371 /*==========================================================================
06372  *      CRI Atom Decrypter API
06373  *=========================================================================*/
06395 #define criAtomExDecrypter_CalculateWorkSize(p_config)  \
06396     criAtomDecrypter_CalculateWorkSize(p_config)
06397 
06454 #define criAtomExDecrypter_Create(p_config, p_work, work_size)  \
06455     criAtomDecrypter_Create((p_config), (p_work), (work_size))
06456 
06474 #define criAtomExDecrypter_Destroy(decrypter_hn)    \
06475     criAtomDecrypter_Destroy(decrypter_hn)
06476 
06477 /*==========================================================================
06478  *      CRI AtomEx ACF API
06479  *=========================================================================*/
06488 CriSint32 CRIAPI criAtomExAcf_GetNumAisacControls(void);
06489 
06500 CriBool CRIAPI criAtomExAcf_GetAisacControlInfo(CriUint16 index, CriAtomExAisacControlInfo* info);
06501 
06511 CriAtomExAisacControlId CRIAPI criAtomExAcf_GetAisacControlIdByName(const CriChar8* name);
06512 
06522 const CriChar8 * CRIAPI criAtomExAcf_GetAisacControlNameById(CriAtomExAisacControlId id);
06523 
06533 CriSint32 CRIAPI criAtomExAcf_GetNumDspSettings(void);
06534 
06548 CriSint32 CRIAPI criAtomExAcf_GetNumDspSettingsFromAcfData(
06549     void *acf_data, CriSint32 acf_data_size);
06550 
06563 const CriChar8 * CRIAPI criAtomExAcf_GetDspSettingNameByIndex(CriUint16 index);
06564 
06580 const CriChar8 * CRIAPI criAtomExAcf_GetDspSettingNameByIndexFromAcfData(
06581     void *acf_data, CriSint32 acf_data_size, CriUint16 index);
06582 
06594 CriBool CRIAPI criAtomExAcf_GetDspSettingInformation(const CriChar8* name, CriAtomExAcfDspSettingInfo* info);
06595 
06609 CriBool CRIAPI criAtomExAcf_GetDspSettingSnapshotInformation(CriUint16 index, CriAtomExAcfDspSettingSnapshotInfo* info);
06610 
06622 CriBool CRIAPI criAtomExAcf_GetDspBusInformation(CriUint16 index, CriAtomExAcfDspBusInfo* info);
06623 
06638 CriUint32 CRIAPI criAtomExAcf_GetDspFxType(CriUint16 index);
06639 
06652 const CriChar8* CRIAPI criAtomExAcf_GetDspFxName(CriUint16 index);
06653 
06669 CriBool CRIAPI criAtomExAcf_GetDspFxParameters(CriUint16 index, void* parameters, CriSint32 size);
06670 
06682 CriBool CRIAPI criAtomExAcf_GetDspBusLinkInformation(CriUint16 index, CriAtomExAcfDspBusLinkInfo* info);
06683 
06697 CriSint32 CRIAPI criAtomExAcf_GetNumCategoriesFromAcfData(
06698     void *acf_data, CriSint32 acf_data_size);
06699 
06707 CriSint32 CRIAPI criAtomExAcf_GetNumCategories(void);
06708 
06722 CriSint32 CRIAPI criAtomExAcf_GetNumCategoriesPerPlaybackFromAcfData(
06723     void *acf_data, CriSint32 acf_data_size);
06724 
06732 CriSint32 CRIAPI criAtomExAcf_GetNumCategoriesPerPlayback(void);
06733 
06744 CriBool CRIAPI criAtomExAcf_GetCategoryInfo(CriUint16 index, CriAtomExCategoryInfo* info);
06745 
06756 CriBool CRIAPI criAtomExAcf_GetCategoryInfoByName(const CriChar8* name, CriAtomExCategoryInfo* info);
06757 
06768 CriBool CRIAPI criAtomExAcf_GetCategoryInfoById(CriUint32 id, CriAtomExCategoryInfo* info);
06769 
06777 CriSint32 CRIAPI criAtomExAcf_GetNumGlobalAisacs(void);
06778 
06789 CriBool CRIAPI criAtomExAcf_GetGlobalAisacInfo(CriUint16 index, CriAtomExGlobalAisacInfo* info);
06790 
06801 CriBool CRIAPI criAtomExAcf_GetGlobalAisacInfoByName(const CriChar8* name, CriAtomExGlobalAisacInfo* info);
06802 
06814 CriBool CRIAPI criAtomExAcf_GetGlobalAisacGraphInfo(
06815     const CriAtomExGlobalAisacInfo* aisac_info,
06816     CriUint16 graph_index,
06817     CriAtomExAisacGraphInfo* graph_info);
06818 
06831 CriBool CRIAPI criAtomExAcf_GetGlobalAisacValue(
06832     const CriAtomExGlobalAisacInfo* aisac_info,
06833     CriFloat32 control,
06834     CriAtomExAisacGraphType type,
06835     CriFloat32* value);
06836 
06846 CriBool CRIAPI criAtomExAcf_GetAcfInfo(CriAtomExAcfInfo *acf_info);
06847 
06866 CriBool CRIAPI criAtomExAcf_GetAcfInfoFromAcfData(
06867     void *acf_data, CriSint32 acf_data_size, CriAtomExAcfInfo *acf_info);
06868 
06876 CriSint32 CRIAPI criAtomExAcf_GetNumSelectors(void);
06877 
06888 CriBool CRIAPI criAtomExAcf_GetSelectorInfoByIndex(CriUint16 index, CriAtomExSelectorInfo* info);
06889 
06900 CriBool CRIAPI criAtomExAcf_GetSelectorInfoByName(const CriChar8* name, CriAtomExSelectorInfo* info);
06901 
06913 CriBool CRIAPI criAtomExAcf_GetSelectorLabelInfo(
06914     const CriAtomExSelectorInfo* selector_info,
06915     CriUint16 label_index,
06916     CriAtomExSelectorLabelInfo* label_info);
06917 
06929 void CRIAPI criAtomExAcf_SetGlobalLabelToSelectorByName(const CriChar8* selsector_name, const CriChar8* label_name);
06930 
06942 void CRIAPI criAtomExAcf_SetGlobalLabelToSelectorByIndex(CriUint16 selsector_index, CriUint16 label_index);
06943 
06957 CriSint32 CRIAPI criAtomExAcf_GetNumBusesFromAcfData(
06958     void *acf_data, CriSint32 acf_data_size);
06959 
06967 CriSint32 CRIAPI criAtomExAcf_GetNumBuses(void);
06968 
06982 CriSint32 CRIAPI criAtomExAcf_GetMaxBusesOfDspBusSettingsFromAcfData(
06983     void *acf_data, CriSint32 acf_data_size);
06984 
06992 CriSint32 CRIAPI criAtomExAcf_GetMaxBusesOfDspBusSettings(void);
06993 
07003 const CriChar8* CRIAPI criAtomExAcf_FindBusName(const CriChar8* bus_name);
07004 
07005 
07006 /*==========================================================================
07007  *      CRI AtomEx ACB API
07008  *=========================================================================*/
07035 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbData(
07036     void *acb_data, CriSint32 acb_data_size,
07037     CriFsBinderHn awb_binder, const CriChar8 *awb_path);
07038 
07057 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbDataById(
07058     void *acb_data, CriSint32 acb_data_size, CriFsBinderHn awb_binder, CriUint16 awb_id);
07059 
07116 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbData(
07117     void *acb_data, CriSint32 acb_data_size,
07118     CriFsBinderHn awb_binder, const CriChar8 *awb_path,
07119     void *work, CriSint32 work_size);
07120 
07139 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbDataById(
07140     void *acb_data, CriSint32 acb_data_size, CriFsBinderHn awb_binder, CriUint16 awb_id,
07141     void *work, CriSint32 work_size);
07142 
07179 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbFile(
07180     CriFsBinderHn acb_binder, const CriChar8 *acb_path,
07181     CriFsBinderHn awb_binder, const CriChar8 *awb_path);
07182 
07201 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbFileById(
07202     CriFsBinderHn acb_binder, CriUint16 acb_id, CriFsBinderHn awb_binder, CriUint16 awb_id);
07203 
07259 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbFile(
07260     CriFsBinderHn acb_binder, const CriChar8 *acb_path,
07261     CriFsBinderHn awb_binder, const CriChar8 *awb_path,
07262     void *work, CriSint32 work_size);
07263 
07282 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbFileById(
07283     CriFsBinderHn acb_binder, CriUint16 acb_id, CriFsBinderHn awb_binder, CriUint16 awb_id,
07284     void *work, CriSint32 work_size);
07285 
07310 void CRIAPI criAtomExAcb_Release(CriAtomExAcbHn acb_hn);
07311 
07340 CriBool CRIAPI criAtomExAcb_IsReadyToRelease(CriAtomExAcbHn acb_hn);
07341 
07364 void CRIAPI criAtomExAcb_ReleaseAll(void);
07365 
07393 CriSint32 CRIAPI criAtomExAcb_EnumerateHandles(CriAtomExAcbHandleCbFunc func, void *obj);
07394 
07406 CriUint32 CRIAPI criAtomExAcb_GetVersion(
07407     void *acb_data, CriSint32 acb_data_size, void *flag);
07408 
07441 CriUint32 CRIAPI criAtomExAcb_GetVersionFromFile(
07442     CriFsBinderHn acb_binder, const CriChar8 *acb_path, void *work, CriSint32 work_size, CriBool *flag);
07443 
07454 void CRIAPI criAtomExAcb_GetSupportedVersion(
07455     CriUint32 *version_low, CriUint32 *version_high);
07456 
07467 CriSint32 CRIAPI criAtomExAcb_GetNumCues(CriAtomExAcbHn acb_hn);
07468 
07482 CriBool CRIAPI criAtomExAcb_ExistsId(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
07483 
07497 CriBool CRIAPI criAtomExAcb_ExistsName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
07498 
07512 CriBool CRIAPI criAtomExAcb_ExistsIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
07513 
07531 CriAtomExCueId CRIAPI criAtomExAcb_GetCueIdByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
07532 
07550 CriAtomExCueId CRIAPI criAtomExAcb_GetCueIdByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
07551 
07569 const CriChar8 * CRIAPI criAtomExAcb_GetCueNameByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
07570 
07588 const CriChar8 * CRIAPI criAtomExAcb_GetCueNameById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
07589 
07607 CriAtomExCueIndex CRIAPI criAtomExAcb_GetCueIndexById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
07608 
07626 CriAtomExCueIndex CRIAPI criAtomExAcb_GetCueIndexByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
07627 
07645 const CriChar8 * CRIAPI criAtomExAcb_GetUserDataById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
07646 
07664 const CriChar8 * CRIAPI criAtomExAcb_GetUserDataByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
07665 
07683 CriSint64 CRIAPI criAtomExAcb_GetLengthById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
07684 
07702 CriSint64 CRIAPI criAtomExAcb_GetLengthByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
07703 
07722 CriSint32 CRIAPI criAtomExAcb_GetNumUsableAisacControlsById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
07723 
07742 CriSint32 CRIAPI criAtomExAcb_GetNumUsableAisacControlsByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
07743 
07764 CriBool CRIAPI criAtomExAcb_GetUsableAisacControlById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriUint16 index, CriAtomExAisacControlInfo* info);
07765 
07786 CriBool CRIAPI criAtomExAcb_GetUsableAisacControlByName(CriAtomExAcbHn acb_hn, const CriChar8 *name, CriUint16 index, CriAtomExAisacControlInfo* info);
07787 
07807 CriBool CRIAPI criAtomExAcb_IsUsingAisacControlById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriAtomExAisacControlId aisac_control_id);
07808 
07828 CriBool CRIAPI criAtomExAcb_IsUsingAisacControlByName(CriAtomExAcbHn acb_hn, const CriChar8 *name, const CriChar8 *aisac_control_name);
07829 
07848 CriSint32 CRIAPI criAtomExAcb_GetCuePriorityById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
07849 
07868 CriSint32 CRIAPI criAtomExAcb_GetCuePriorityByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
07869 
07889 CriBool CRIAPI criAtomExAcb_GetWaveformInfoById(
07890     CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriAtomExWaveformInfo *waveform_info);
07891 
07911 CriBool CRIAPI criAtomExAcb_GetWaveformInfoByName(
07912     CriAtomExAcbHn acb_hn, const CriChar8 *name, CriAtomExWaveformInfo *waveform_info);
07913 
07941 CriAtomAwbHn CRIAPI criAtomExAcb_GetOnMemoryAwbHandle(CriAtomExAcbHn acb_hn);
07942 
07970 CriAtomAwbHn CRIAPI criAtomExAcb_GetStreamingAwbHandle(CriAtomExAcbHn acb_hn);
07971 
07991 CriBool CRIAPI criAtomExAcb_GetCueInfoByName(CriAtomExAcbHn acb_hn, const CriChar8* name, CriAtomExCueInfo* info);
07992 
08012 CriBool CRIAPI criAtomExAcb_GetCueInfoById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriAtomExCueInfo* info);
08013 
08033 CriBool CRIAPI criAtomExAcb_GetCueInfoByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index, CriAtomExCueInfo* info);
08034 
08053 CriSint32 CRIAPI criAtomExAcb_GetNumCuePlayingCountByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
08054 
08073 CriSint32 CRIAPI criAtomExAcb_GetNumCuePlayingCountById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
08074 
08093 CriSint32 CRIAPI criAtomExAcb_GetNumCuePlayingCountByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
08094 
08114 CriAtomExBlockIndex CRIAPI criAtomExAcb_GetBlockIndexByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index, const CriChar8* block_name);
08115 
08135 CriAtomExBlockIndex CRIAPI criAtomExAcb_GetBlockIndexById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, const CriChar8* block_name);
08136 
08156 CriAtomExBlockIndex CRIAPI criAtomExAcb_GetBlockIndexByName(CriAtomExAcbHn acb_hn, const CriChar8* name, const CriChar8* block_name);
08157 
08178 void CRIAPI criAtomExAcb_SetDetectionInGamePreviewDataCallback(CriAtomExAcbDetectionInGamePreviewDataCbFunc func, void* obj);
08179 
08192 CriBool CRIAPI criAtomExAcb_GetAcbInfo(CriAtomExAcbHn acb_hn, CriAtomExAcbInfo *acb_info);
08193 
08210 void CRIAPI criAtomExAcb_ResetCueTypeStateByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
08211 
08228 void CRIAPI criAtomExAcb_ResetCueTypeStateById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
08229 
08246 void CRIAPI criAtomExAcb_ResetCueTypeStateByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
08247 
08294 void CRIAPI criAtomExAcb_AttachAwbFile(
08295     CriAtomExAcbHn acb_hn,
08296     CriFsBinderHn awb_binder,
08297     const CriChar8* awb_path,
08298     const CriChar8* awb_name,
08299     void* work,
08300     CriSint32 work_size);
08301 
08314 void CRIAPI criAtomExAcb_DetachAwbFile(
08315     CriAtomExAcbHn acb_hn,
08316     const CriChar8* awb_name);
08317 
08332 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForAttachAwbFile(
08333     CriFsBinderHn awb_binder,
08334     const CriChar8* awb_path);
08335 
08344 CriSint32 CRIAPI criAtomExAcb_GetNumAwbFileSlots(
08345     CriAtomExAcbHn acb_hn);
08346 
08358 const CriChar8* CRIAPI criAtomExAcb_GetAwbFileSlotName(
08359     CriAtomExAcbHn acb_hn, CriUint16 index);
08360 
08370 CriBool CRIAPI criAtomExAcb_IsAttachedAwbFile(
08371     CriAtomExAcbHn acb_hn,
08372     const CriChar8* awb_name);
08373 
08393 void CRIAPI criAtomExAcb_Decrypt(
08394     CriAtomExAcbHn acb_hn, CriUint64 key, CriUint64 nonce);
08395 
08396 /*==========================================================================
08397  *      CRI AtomEx Voice Pool API
08398  *=========================================================================*/
08432 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForStandardVoicePool(
08433     const CriAtomExStandardVoicePoolConfig *config);
08434 
08522 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateStandardVoicePool(
08523     const CriAtomExStandardVoicePoolConfig *config, void *work, CriSint32 work_size);
08524 
08558 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForAdxVoicePool(
08559     const CriAtomExAdxVoicePoolConfig *config);
08560 
08646 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateAdxVoicePool(
08647     const CriAtomExAdxVoicePoolConfig *config, void *work, CriSint32 work_size);
08648 
08682 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForHcaVoicePool(
08683     const CriAtomExHcaVoicePoolConfig *config);
08684 
08770 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateHcaVoicePool(
08771     const CriAtomExHcaVoicePoolConfig *config, void *work, CriSint32 work_size);
08772 
08806 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForHcaMxVoicePool(
08807     const CriAtomExHcaMxVoicePoolConfig *config);
08808 
08899 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateHcaMxVoicePool(
08900     const CriAtomExHcaMxVoicePoolConfig *config, void *work, CriSint32 work_size);
08901 
08935 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForWaveVoicePool(
08936     const CriAtomExWaveVoicePoolConfig *config);
08937 
09029 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateWaveVoicePool(
09030     const CriAtomExWaveVoicePoolConfig *config, void *work, CriSint32 work_size);
09031 
09065 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForAiffVoicePool(
09066     const CriAtomExAiffVoicePoolConfig *config);
09067 
09159 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateAiffVoicePool(
09160     const CriAtomExAiffVoicePoolConfig *config, void *work, CriSint32 work_size);
09161 
09195 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForRawPcmVoicePool(
09196     const CriAtomExRawPcmVoicePoolConfig *config);
09197 
09270 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateRawPcmVoicePool(
09271     const CriAtomExRawPcmVoicePoolConfig *config, void *work, CriSint32 work_size);
09272 
09300 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateInstrumentVoicePool(
09301     const CriAtomExInstrumentVoicePoolConfig *config, void *work, CriSint32 work_size);
09302 
09323 void CRIAPI criAtomExVoicePool_Free(CriAtomExVoicePoolHn pool);
09324 
09344 void CRIAPI criAtomExVoicePool_FreeAll(void);
09345 
09356 void CRIAPI criAtomExVoicePool_GetNumUsedVoices(
09357     CriAtomExVoicePoolHn pool, CriSint32 *cur_num, CriSint32 *limit);
09358 
09370 CriAtomPlayerHn CRIAPI criAtomExVoicePool_GetPlayerHandle(
09371     CriAtomExVoicePoolHn pool, CriSint32 index);
09372 
09391 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForInstrumentVoicePool(
09392     const CriAtomExInstrumentVoicePoolConfig *config);
09393 
09394 /*==========================================================================
09395  *      CRI AtomEx Category API
09396  *=========================================================================*/
09408 void CRIAPI criAtomExCategory_SetVolumeById(CriAtomExCategoryId id, CriFloat32 volume);
09409 
09418 CriFloat32 CRIAPI criAtomExCategory_GetVolumeById(CriAtomExCategoryId id);
09419 
09431 CriFloat32 CRIAPI criAtomExCategory_GetTotalVolumeById(CriAtomExCategoryId id);
09432 
09444 void CRIAPI criAtomExCategory_SetVolumeByName(const CriChar8* name, CriFloat32 volume);
09445 
09454 CriFloat32 CRIAPI criAtomExCategory_GetVolumeByName(const CriChar8* name);
09455 
09467 CriFloat32 CRIAPI criAtomExCategory_GetTotalVolumeByName(const CriChar8* name);
09468 
09477 void CRIAPI criAtomExCategory_MuteById(CriAtomExCategoryId id, CriBool mute);
09478 
09487 CriBool CRIAPI criAtomExCategory_IsMutedById(CriAtomExCategoryId id);
09488 
09497 void CRIAPI criAtomExCategory_MuteByName(const CriChar8* name, CriBool mute);
09498 
09507 CriBool CRIAPI criAtomExCategory_IsMutedByName(const CriChar8* name);
09508 
09520 void CRIAPI criAtomExCategory_SoloById(CriAtomExCategoryId id, CriBool solo, CriFloat32 mute_volume);
09521 
09530 CriBool CRIAPI criAtomExCategory_IsSoloedById(CriAtomExCategoryId id);
09531 
09543 void CRIAPI criAtomExCategory_SoloByName(const CriChar8* name, CriBool solo, CriFloat32 mute_volume);
09544 
09553 CriBool CRIAPI criAtomExCategory_IsSoloedByName(const CriChar8* name);
09554 
09572 void CRIAPI criAtomExCategory_PauseById(CriAtomExCategoryId id, CriBool sw);
09573 
09582 CriBool CRIAPI criAtomExCategory_IsPausedById(CriAtomExCategoryId id);
09583 
09594 void CRIAPI criAtomExCategory_PauseByName(const CriChar8* name, CriBool sw);
09595 
09604 CriBool CRIAPI criAtomExCategory_IsPausedByName(const CriChar8* name);
09605 
09615 void CRIAPI criAtomExCategory_SetFadeInTimeById(CriAtomExCategoryId id, CriUint16 ms);
09616 
09626 void CRIAPI criAtomExCategory_SetFadeInTimeByName(const CriChar8* name, CriUint16 ms);
09627 
09637 void CRIAPI criAtomExCategory_SetFadeOutTimeById(CriAtomExCategoryId id, CriUint16 ms);
09638 
09648 void CRIAPI criAtomExCategory_SetFadeOutTimeByName(const CriChar8* name, CriUint16 ms);
09649 
09665 void CRIAPI criAtomExCategory_SetAisacControlById(
09666     CriAtomExCategoryId id,
09667     CriAtomExAisacControlId control_id,
09668     CriFloat32 control_value
09669 );
09670 
09684 void CRIAPI criAtomExCategory_SetAisacControlByName(
09685     const CriChar8* name,
09686     const CriChar8* control_name,
09687     CriFloat32 control_value
09688 );
09689 
09701 CriBool CRIAPI criAtomExCategory_ResetAllAisacControlById(CriAtomExCategoryId category_id);
09702 
09714 CriBool CRIAPI criAtomExCategory_ResetAllAisacControlByName(const CriChar8* category_name);
09715 
09738 void CRIAPI criAtomExCategory_AttachAisacById(CriAtomExCategoryId id, const CriChar8* global_aisac_name);
09739 
09750 void CRIAPI criAtomExCategory_AttachAisacByName(const CriChar8* name, const CriChar8* global_aisac_name);
09751 
09764 void CRIAPI criAtomExCategory_DetachAisacById(CriAtomExCategoryId id, const CriChar8* global_aisac_name);
09765 
09776 void CRIAPI criAtomExCategory_DetachAisacByName(const CriChar8* name, const CriChar8* global_aisac_name);
09777 
09785 void CRIAPI criAtomExCategory_DetachAisacAllById(CriAtomExCategoryId id);
09786 
09794 void CRIAPI criAtomExCategory_DetachAisacAllByName(const CriChar8* name);
09795 
09805 CriSint32 CRIAPI criAtomExCategory_GetNumAttachedAisacsById(CriAtomExCategoryId id);
09806 
09816 CriSint32 CRIAPI criAtomExCategory_GetNumAttachedAisacsByName(const CriChar8* name);
09817 
09831 CriBool CRIAPI criAtomExCategory_GetAttachedAisacInfoById(
09832     CriAtomExCategoryId id, 
09833     CriSint32 aisac_attached_index,
09834     CriAtomExAisacInfo *aisac_info
09835 );
09836 
09850 CriBool CRIAPI criAtomExCategory_GetAttachedAisacInfoByName(
09851     const CriChar8* name,
09852     CriSint32 aisac_attached_index,
09853     CriAtomExAisacInfo *aisac_info
09854 );
09855 
09869 CriBool CRIAPI criAtomExCategory_GetCurrentAisacControlValueById(
09870     CriAtomExCategoryId category_id,
09871     CriAtomExAisacControlId aisac_control_id,
09872     CriFloat32 * control_value
09873 );
09874 
09888 CriBool CRIAPI criAtomExCategory_GetCurrentAisacControlValueByName(
09889     const CriChar8* category_name,
09890     const CriChar8* aisac_control_name,
09891     CriFloat32 * control_value
09892 );
09893 
09905 void CRIAPI criAtomExCategory_SetReactParameter(
09906     const CriChar8* react_name, 
09907     const CriAtomExReactParameter* react_parameter);
09908 
09921 CriBool CRIAPI criAtomExCategory_GetReactParameter(
09922     const CriChar8* react_name, 
09923     CriAtomExReactParameter* react_parameter);
09924 
09934 CriSint32 CRIAPI criAtomExCategory_GetNumCuePlayingCountById(CriAtomExCategoryId id);
09935 
09945 CriSint32 CRIAPI criAtomExCategory_GetNumCuePlayingCountByName(const CriChar8* name);
09946 
09954 void CRIAPI criAtomExCategory_StopById(CriAtomExCategoryId id);
09955 
09963 void CRIAPI criAtomExCategory_StopByName(const CriChar8* name);
09964 
09972 void CRIAPI criAtomExCategory_StopWithoutReleaseTimeById(CriAtomExCategoryId id);
09973 
09981 void CRIAPI criAtomExCategory_StopWithoutReleaseTimeByName(const CriChar8* name);
09982     
09983 /*==========================================================================
09984  *      CRI AtomEx Player API
09985  *=========================================================================*/
10017 CriSint32 CRIAPI criAtomExPlayer_CalculateWorkSize(
10018     const CriAtomExPlayerConfig *config);
10019 
10183 CriAtomExPlayerHn CRIAPI criAtomExPlayer_Create(
10184     const CriAtomExPlayerConfig *config, void *work, CriSint32 work_size);
10185 
10204 void CRIAPI criAtomExPlayer_Destroy(CriAtomExPlayerHn player);
10205 
10251 void CRIAPI criAtomExPlayer_SetCueId(
10252     CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, CriAtomExCueId id);
10253 
10298 void CRIAPI criAtomExPlayer_SetCueName(
10299     CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, const CriChar8 *cue_name);
10300 
10350 void CRIAPI criAtomExPlayer_SetCueIndex(
10351     CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
10352 
10404 void CRIAPI criAtomExPlayer_SetData(
10405     CriAtomExPlayerHn player, void *buffer, CriSint32 size);
10406 
10467 void CRIAPI criAtomExPlayer_SetFile(
10468     CriAtomExPlayerHn player, CriFsBinderHn binder, const CriChar8 *path);
10469 
10536 void CRIAPI criAtomExPlayer_SetContentId(
10537     CriAtomExPlayerHn player, CriFsBinderHn binder, CriSint32 id);
10538 
10589 void CRIAPI criAtomExPlayer_SetWaveId(
10590     CriAtomExPlayerHn player, CriAtomAwbHn awb, CriAtomExWaveId id);
10591 
10694 CriAtomExPlaybackId CRIAPI criAtomExPlayer_Start(CriAtomExPlayerHn player);
10695 
10784 CriAtomExPlaybackId CRIAPI criAtomExPlayer_Prepare(CriAtomExPlayerHn player);
10785 
10809 void CRIAPI criAtomExPlayer_Stop(CriAtomExPlayerHn player);
10810 
10836 void CRIAPI criAtomExPlayer_StopWithoutReleaseTime(CriAtomExPlayerHn player);
10837 
10859 void CRIAPI criAtomExPlayer_StopAllPlayers(void);
10860 
10884 void CRIAPI criAtomExPlayer_StopAllPlayersWithoutReleaseTime(void);
10885 
10905 void CRIAPI criAtomExPlayer_EnumeratePlayers(CriAtomExPlayerCbFunc func, void *obj);
10906 
10935 void CRIAPI criAtomExPlayer_Pause(CriAtomExPlayerHn player, CriBool sw);
10936 
10971 void CRIAPI criAtomExPlayer_Resume(CriAtomExPlayerHn player, CriAtomExResumeMode mode);
10972 
10991 CriBool CRIAPI criAtomExPlayer_IsPaused(CriAtomExPlayerHn player);
10992 
11059 CriAtomExPlayerStatus CRIAPI criAtomExPlayer_GetStatus(CriAtomExPlayerHn player);
11060 
11075 CriSint32 CRIAPI criAtomExPlayer_GetNumPlaybacks(CriAtomExPlayerHn player);
11076 
11087 CriAtomExPlaybackId CRIAPI criAtomExPlayer_GetLastPlaybackId(CriAtomExPlayerHn player);
11088 
11143 CriSint64 CRIAPI criAtomExPlayer_GetTime(CriAtomExPlayerHn player);
11144 
11160 void CRIAPI criAtomExPlayer_SetFormat(
11161     CriAtomExPlayerHn player, CriAtomExFormat format);
11162 
11178 void CRIAPI criAtomExPlayer_SetNumChannels(
11179     CriAtomExPlayerHn player, CriSint32 num_channels);
11180 
11196 void CRIAPI criAtomExPlayer_SetSamplingRate(
11197     CriAtomExPlayerHn player, CriSint32 sampling_rate);
11198 
11214 void CRIAPI criAtomExPlayer_SetSoundRendererType(
11215     CriAtomExPlayerHn player, CriAtomSoundRendererType type);
11216 
11239 void CRIAPI criAtomExPlayer_SetGroupNumber(
11240     CriAtomExPlayerHn player, CriSint32 group_no);
11241 
11285 void CRIAPI criAtomExPlayer_SetVoiceControlMethod(
11286     CriAtomExPlayerHn player, CriAtomExVoiceControlMethod method);
11287 
11303 void CRIAPI criAtomExPlayer_SetVoicePoolIdentifier(
11304     CriAtomExPlayerHn player, CriAtomExVoicePoolIdentifier identifier);
11305 
11323 void CRIAPI criAtomExPlayer_SetHcaMxMixerId(CriAtomExPlayerHn player, CriSint32 mixer_id);
11324 
11352 void CRIAPI criAtomExPlayer_SetAsrRackId(CriAtomExPlayerHn player, CriSint32 rack_id);
11353 
11389 void CRIAPI criAtomExPlayer_SetAsrRackIdArray(
11390     CriAtomExPlayerHn player, const CriSint32 *rack_id_array, CriSint32 num_racks);
11391 
11425 void CRIAPI criAtomExPlayer_SetStartTime(
11426     CriAtomExPlayerHn player, CriSint64 start_time_ms);
11427 
11480 void CRIAPI criAtomExPlayer_SetSyncPlaybackId(
11481     CriAtomExPlayerHn player, CriAtomExPlaybackId playback_id);
11482 
11499 void CRIAPI criAtomExPlayer_SetPlaybackRatio(
11500     CriAtomExPlayerHn player, CriFloat32 playback_ratio);
11501 
11546 void CRIAPI criAtomExPlayer_LimitLoopCount(CriAtomExPlayerHn player, CriSint32 count);
11547 
11570 void CRIAPI criAtomExPlayer_UpdateAll(CriAtomExPlayerHn player);
11571 
11595 void CRIAPI criAtomExPlayer_Update(
11596     CriAtomExPlayerHn player, CriAtomExPlaybackId id);
11597 
11630 void CRIAPI criAtomExPlayer_ResetParameters(CriAtomExPlayerHn player);
11631 
11643 CriFloat32 CRIAPI criAtomExPlayer_GetParameterFloat32(CriAtomExPlayerHn player, CriAtomExParameterId id);
11644 
11656 CriUint32 CRIAPI criAtomExPlayer_GetParameterUint32(CriAtomExPlayerHn player, CriAtomExParameterId id);
11657 
11669 CriSint32 CRIAPI criAtomExPlayer_GetParameterSint32(CriAtomExPlayerHn player, CriAtomExParameterId id);
11670 
11748 void CRIAPI criAtomExPlayer_SetVolume(
11749     CriAtomExPlayerHn player, CriFloat32 volume);
11750 
11812 void CRIAPI criAtomExPlayer_SetPitch(CriAtomExPlayerHn player, CriFloat32 pitch);
11813 
11841 void CRIAPI criAtomExPlayer_SetMaxPitch(CriAtomExPlayerHn player, CriFloat32 pitch);
11842 
11888 void CRIAPI criAtomExPlayer_SetPan3dAngle(
11889     CriAtomExPlayerHn player, CriFloat32 pan3d_angle);
11890 
11935 void CRIAPI criAtomExPlayer_SetPan3dInteriorDistance(
11936     CriAtomExPlayerHn player, CriFloat32 pan3d_interior_distance);
11937 
11978 void CRIAPI criAtomExPlayer_SetPan3dVolume(
11979     CriAtomExPlayerHn player, CriFloat32 pan3d_volume);
11980 
12001 void CRIAPI criAtomExPlayer_SetPanType(
12002     CriAtomExPlayerHn player, CriAtomExPanType pan_type);
12003 
12025 void CRIAPI criAtomExPlayer_SetPanSpeakerType(
12026     CriAtomExPlayerHn player, CriAtomExPanSpeakerType pan_speaker_type);
12027 
12043 void CRIAPI criAtomExPlayer_AddMixDownCenterVolumeOffset(
12044     CriAtomExPlayerHn player, CriFloat32 mixdown_center_volume_offset);
12045 
12061 void CRIAPI criAtomExPlayer_AddMixDownLfeVolumeOffset(
12062     CriAtomExPlayerHn player, CriFloat32 mixdown_lfe_volume_offset);
12063 
12083 void CRIAPI criAtomExPlayer_ChangeDefaultPanSpeakerType(
12084     CriAtomExPanSpeakerType pan_speaker_type);
12085 
12108 void CRIAPI criAtomExPlayer_SetPanAngleType(
12109     CriAtomExPlayerHn player, CriAtomExPanAngleType pan_angle_type);
12110 
12132 void CRIAPI criAtomExPlayer_SetPanSpread(CriAtomExPlayerHn player, CriFloat32 spread);
12133 
12233 void CRIAPI criAtomExPlayer_SetSendLevel(
12234     CriAtomExPlayerHn player, CriSint32 ch, CriAtomExSpeakerId spk, CriFloat32 level);
12235 
12283 void CRIAPI criAtomExPlayer_SetBusSendLevelByName(
12284     CriAtomExPlayerHn player, const CriChar8* bus_name, CriFloat32 level);
12285 
12304 void CRIAPI criAtomExPlayer_SetBusSendLevelOffsetByName(
12305     CriAtomExPlayerHn player, const CriChar8* bus_name, CriFloat32 level_offset);
12306 
12348 void CRIAPI criAtomExPlayer_SetPanAdx1Compatible(
12349     CriAtomExPlayerHn player, CriSint32 ch, CriFloat32 pan);
12350 
12406 void CRIAPI criAtomExPlayer_SetBandpassFilterParameters(
12407     CriAtomExPlayerHn player, CriFloat32 cof_low, CriFloat32 cof_high);
12408 
12477 void CRIAPI criAtomExPlayer_SetBiquadFilterParameters(
12478     CriAtomExPlayerHn player, CriAtomExBiquadFilterType type, CriFloat32 frequency,
12479     CriFloat32 gain, CriFloat32 q_value);
12480 
12535 void CRIAPI criAtomExPlayer_SetVoicePriority(
12536     CriAtomExPlayerHn player, CriSint32 priority);
12537 
12589 void CRIAPI criAtomExPlayer_SetAisacControlById(
12590     CriAtomExPlayerHn player, CriAtomExAisacControlId control_id, CriFloat32 control_value);
12591 
12631 void CRIAPI criAtomExPlayer_SetAisacControlByName(
12632     CriAtomExPlayerHn player, const CriChar8 *control_name, CriFloat32 control_value);
12633 
12644 void CRIAPI criAtomExPlayer_ClearAisacControls(CriAtomExPlayerHn player);
12645 
12646 
12701 void CRIAPI criAtomExPlayer_Set3dSourceHn(
12702     CriAtomExPlayerHn player, CriAtomEx3dSourceHn source);
12703 
12767 void CRIAPI criAtomExPlayer_Set3dSourceListHn(
12768     CriAtomExPlayerHn player, CriAtomEx3dSourceListHn source_list);
12769 
12823 void CRIAPI criAtomExPlayer_Set3dListenerHn(
12824     CriAtomExPlayerHn player, CriAtomEx3dListenerHn listener);
12825 
12852 CriFloat32 CRIAPI criAtomExPlayer_GetAisacControlById(
12853     CriAtomExPlayerHn player, CriAtomExAisacControlId control_id);
12854 
12881 CriFloat32 CRIAPI criAtomExPlayer_GetAisacControlByName(
12882     CriAtomExPlayerHn player, const CriChar8 *control_name);
12883 
12913 void CRIAPI criAtomExPlayer_SetCategoryById(
12914     CriAtomExPlayerHn player, CriUint32 category_id);
12915 
12936 void CRIAPI criAtomExPlayer_SetCategoryByName(
12937     CriAtomExPlayerHn player, const CriChar8 *category_name);
12938 
12952 void CRIAPI criAtomExPlayer_UnsetCategory(CriAtomExPlayerHn player);
12953 
12962 CriSint32 CRIAPI criAtomExPlayer_GetNumCategories(CriAtomExPlayerHn player);
12963 
12975 CriBool CRIAPI criAtomExPlayer_GetCategoryInfo(CriAtomExPlayerHn player, CriUint16 index, CriAtomExCategoryInfo* info);
12976 
13011 void CRIAPI criAtomExPlayer_SetTrackInfo(CriAtomExPlayerHn player,
13012     CriSint32 num_tracks, const CriSint32 *channels_per_track);
13013 
13037 void CRIAPI criAtomExPlayer_SetTrackVolume(
13038     CriAtomExPlayerHn player, CriSint32 track_no, CriFloat32 volume);
13039 
13069 void CRIAPI criAtomExPlayer_SetSilentMode(
13070     CriAtomExPlayerHn player, CriAtomExSilentMode silent_mode);
13071 
13097 void CRIAPI criAtomExPlayer_SetCuePriority(
13098     CriAtomExPlayerHn player, CriSint32 cue_priority);
13099 
13119 void CRIAPI criAtomExPlayer_SetPreDelayTime(
13120     CriAtomExPlayerHn player, CriFloat32 predelay_time_ms);
13121 
13150 void CRIAPI criAtomExPlayer_SetEnvelopeAttackTime(
13151     CriAtomExPlayerHn player, CriFloat32 attack_time_ms);
13152 
13181 void CRIAPI criAtomExPlayer_SetEnvelopeHoldTime(
13182     CriAtomExPlayerHn player, CriFloat32 hold_time_ms);
13183 
13212 void CRIAPI criAtomExPlayer_SetEnvelopeDecayTime(
13213     CriAtomExPlayerHn player, CriFloat32 decay_time_ms);
13214 
13243 void CRIAPI criAtomExPlayer_SetEnvelopeReleaseTime(
13244     CriAtomExPlayerHn player, CriFloat32 release_time_ms);
13245 
13274 void CRIAPI criAtomExPlayer_SetEnvelopeSustainLevel(
13275     CriAtomExPlayerHn player, CriFloat32 susutain_level);
13276 
13418 void CRIAPI criAtomExPlayer_SetDataRequestCallback(
13419     CriAtomExPlayerHn player, CriAtomExPlayerDataRequestCbFunc func, void *obj);
13420 
13458 void CRIAPI criAtomExPlayer_SetFilterCallback(
13459     CriAtomExPlayerHn player, CriAtomExPlayerFilterCbFunc func, void *obj);
13460 
13472 void CRIAPI criAtomExPlayer_SetRandomSeed(CriAtomExPlayerHn player, CriUint32 seed);
13473 
13487 void CRIAPI criAtomExPlayer_SetDspParameter(
13488     CriAtomExPlayerHn player, CriSint32 param_id, CriFloat32 param_val);
13489 
13522 void CRIAPI criAtomExPlayer_AttachAisac(CriAtomExPlayerHn player, const CriChar8* global_aisac_name);
13523 void CRIAPI criAtomExPlayer_AttachAisacByIndex(CriAtomExPlayerHn player, CriUint16 global_aisac_index);
13524 
13540 void CRIAPI criAtomExPlayer_DetachAisac(CriAtomExPlayerHn player, const CriChar8* global_aisac_name);
13541 void CRIAPI criAtomExPlayer_DetachAisacByIndex(CriAtomExPlayerHn player, CriUint16 global_aisac_index);
13542 
13554 void CRIAPI criAtomExPlayer_DetachAisacAll(CriAtomExPlayerHn player);
13555 
13564 CriSint32 CRIAPI criAtomExPlayer_GetNumAttachedAisacs(CriAtomExPlayerHn player);
13565 
13579 CriBool CRIAPI criAtomExPlayer_GetAttachedAisacInfo(
13580     CriAtomExPlayerHn player,
13581     CriSint32 aisac_attached_index,
13582     CriAtomExAisacInfo *aisac_info
13583 );
13584 
13598 void CRIAPI criAtomExPlayer_SetStreamingCacheId(
13599     CriAtomExPlayerHn player, CriAtomExStreamingCacheId cache_id);
13600 
13643 void CRIAPI criAtomExPlayer_AttachTween(CriAtomExPlayerHn player, CriAtomExTweenHn tween);
13644 
13657 void CRIAPI criAtomExPlayer_DetachTween(CriAtomExPlayerHn player, CriAtomExTweenHn tween);
13658 
13670 void CRIAPI criAtomExPlayer_DetachTweenAll(CriAtomExPlayerHn player);
13671 
13711 void CRIAPI criAtomExPlayer_SetFirstBlockIndex(
13712     CriAtomExPlayerHn player, CriAtomExBlockIndex index);
13713 
13743 void CRIAPI criAtomExPlayer_SetBlockTransitionCallback(
13744     CriAtomExPlayerHn player, CriAtomExPlayerBlockTransitionCbFunc func, void *obj);
13745 
13756 CriAtomExSoundObjectHn CRIAPI criAtomExPlayer_GetSoundObject(CriAtomExPlayerHn player); 
13757 
13820 void CRIAPI criAtomExPlayer_SetDrySendLevel(
13821     CriAtomExPlayerHn player, CriAtomExSpeakerId spk, CriFloat32 offset, CriFloat32 gain);
13822 
13838 void CRIAPI criAtomExPlayer_SetSelectorLabel(
13839     CriAtomExPlayerHn player, const CriChar8 *selector, const CriChar8 *label);
13840 
13841 
13852 void CRIAPI criAtomExPlayer_ClearSelectorLabels(CriAtomExPlayerHn player);
13853 
13883 void CRIAPI criAtomExPlayer_SetPlaybackTrackInfoNotificationCallback(
13884     CriAtomExPlayerHn player, CriAtomExPlayerPlaybackTrackInfoNotificationCbFunc func, void *obj);
13885 
13908 void CRIAPI criAtomExPlayer_SetPlaybackEventCallback(
13909     CriAtomExPlayerHn player, CriAtomExPlaybackEventCbFunc func, void *obj);
13910 
13911 /*==========================================================================
13912  *      CRI AtomEx Playback API
13913  *=========================================================================*/
13933 void CRIAPI criAtomExPlayback_Stop(CriAtomExPlaybackId id);
13934 
13954 void CRIAPI criAtomExPlayback_StopWithoutReleaseTime(CriAtomExPlaybackId id);
13955 
13996 void CRIAPI criAtomExPlayback_Pause(CriAtomExPlaybackId id, CriBool sw);
13997 
14036 void CRIAPI criAtomExPlayback_Resume(CriAtomExPlaybackId id, CriAtomExResumeMode mode);
14037 
14047 CriBool CRIAPI criAtomExPlayback_IsPaused(CriAtomExPlaybackId id);
14048 
14074 CriAtomExPlaybackStatus CRIAPI criAtomExPlayback_GetStatus(CriAtomExPlaybackId id);
14075 
14097 CriBool CRIAPI criAtomExPlayback_GetFormatInfo(
14098     CriAtomExPlaybackId id, CriAtomExFormatInfo *info);
14099 
14138 CriBool CRIAPI criAtomExPlayback_GetSource(
14139     CriAtomExPlaybackId id, CriAtomExSourceInfo *source);
14140 
14153 CriAtomPlayerHn CRIAPI criAtomExPlayback_GetAtomPlayer(CriAtomExPlaybackId id);
14154 
14201 CriSint64 CRIAPI criAtomExPlayback_GetTime(CriAtomExPlaybackId id);
14202 
14255 CriSint64 CRIAPI criAtomExPlayback_GetTimeSyncedWithAudio(CriAtomExPlaybackId id);
14256 
14305 CriSint64 CRIAPI criAtomExPlayback_GetTimeSyncedWithAudioMicro(CriAtomExPlaybackId id);
14306 
14340 CriSint64 CRIAPI criAtomExPlayback_GetSequencePosition(CriAtomExPlaybackId id);
14341 
14373 CriBool CRIAPI criAtomExPlayback_GetNumPlayedSamples(
14374     CriAtomExPlaybackId id, CriSint64 *num_samples, CriSint32 *sampling_rate);
14375 
14409 CriBool CRIAPI criAtomExPlayback_GetNumRenderedSamples(
14410     CriAtomExPlaybackId id, CriSint64 *num_samples, CriSint32 *sampling_rate);
14411 
14430 CriBool CRIAPI criAtomExPlayback_GetParameterFloat32(
14431     CriAtomExPlaybackId playback_id,
14432     CriAtomExParameterId parameter_id,
14433     CriFloat32 *value_float32
14434 );
14435 
14454 CriBool CRIAPI criAtomExPlayback_GetParameterUint32(
14455     CriAtomExPlaybackId playback_id,
14456     CriAtomExParameterId parameter_id,
14457     CriUint32* value_uint32
14458 );
14459 
14478 CriBool CRIAPI criAtomExPlayback_GetParameterSint32(
14479     CriAtomExPlaybackId playback_id,
14480     CriAtomExParameterId parameter_id,
14481     CriSint32* value_sint32
14482 );
14483 
14501 CriBool CRIAPI criAtomExPlayback_GetAisacControlById(
14502     CriAtomExPlaybackId playback_id, CriAtomExAisacControlId control_id, CriFloat32 *control_value);
14503 
14521 CriBool CRIAPI criAtomExPlayback_GetAisacControlByName(
14522     CriAtomExPlaybackId playback_id, const CriChar8 *control_name, CriFloat32 *control_value);
14523 
14539 void CRIAPI criAtomExPlayback_SetNextBlockIndex(CriAtomExPlaybackId id, CriAtomExBlockIndex index);
14540 
14554 CriAtomExBlockIndex CRIAPI criAtomExPlayback_GetCurrentBlockIndex(CriAtomExPlaybackId id);
14555 
14571 CriBool CRIAPI criAtomExPlayback_GetPlaybackTrackInfo(CriAtomExPlaybackId id, CriAtomExPlaybackTrackInfo* info);
14572 
14590 CriBool CRIAPI criAtomExPlayback_GetBeatSyncInfo(CriAtomExPlaybackId id, CriAtomExBeatSyncInfo* info);
14591 
14608 CriBool CRIAPI criAtomExPlayback_SetBeatSyncOffset(CriAtomExPlaybackId id, CriSint16 time_ms);
14609 
14610 /*==========================================================================
14611  *      CRI AtomEx Fader API
14612  *=========================================================================*/
14641 CriSint32 CRIAPI criAtomExPlayer_CalculateWorkSizeForFader(
14642     const CriAtomExFaderConfig *config);
14643 
14760 void CRIAPI criAtomExPlayer_AttachFader(CriAtomExPlayerHn player,
14761     const CriAtomExFaderConfig *config, void *work, CriSint32 work_size);
14762 
14778 void CRIAPI criAtomExPlayer_DetachFader(CriAtomExPlayerHn player);
14779 
14828 void CRIAPI criAtomExPlayer_SetFadeOutTime(CriAtomExPlayerHn player, CriSint32 ms);
14829 
14841 CriSint32 CRIAPI criAtomExPlayer_GetFadeOutTime(CriAtomExPlayerHn player);
14842 
14867 void CRIAPI criAtomExPlayer_SetFadeInTime(CriAtomExPlayerHn player, CriSint32 ms);
14868 
14880 CriSint32 CRIAPI criAtomExPlayer_GetFadeInTime(CriAtomExPlayerHn player);
14881 
14915 void CRIAPI criAtomExPlayer_SetFadeInStartOffset(CriAtomExPlayerHn player, CriSint32 ms);
14916 
14928 CriSint32 CRIAPI criAtomExPlayer_GetFadeInStartOffset(CriAtomExPlayerHn player);
14929 
14959 void CRIAPI criAtomExPlayer_SetFadeOutEndDelay(CriAtomExPlayerHn player, CriSint32 ms);
14960 
14972 CriSint32 CRIAPI criAtomExPlayer_GetFadeOutEndDelay(CriAtomExPlayerHn player);
14973 
14988 CriBool CRIAPI criAtomExPlayer_IsFading(CriAtomExPlayerHn player);
14989 
15007 void CRIAPI criAtomExPlayer_ResetFaderParameters(CriAtomExPlayerHn player);
15008 
15009 
15010 /*==========================================================================
15011  *      CRI AtomEx Sequencer API
15012  *=========================================================================*/
15035 void CRIAPI criAtomExSequencer_SetEventCallback(CriAtomExSequencerEventCbFunc func, void* obj);
15036 
15037 /*==========================================================================
15038  *      CRI AtomEx Beat Sync API
15039  *=========================================================================*/
15062 void CRIAPI criAtomExBeatSync_SetCallback(CriAtomExBeatSyncCbFunc func, void* obj);
15063 
15064 /*==========================================================================
15065  *      CRI AtomEx 3D API
15066  *=========================================================================*/
15097 CriSint32 CRIAPI criAtomEx3dSource_CalculateWorkSize(const CriAtomEx3dSourceConfig *config);
15098 
15119 CriAtomEx3dSourceHn CRIAPI criAtomEx3dSource_Create(
15120     const CriAtomEx3dSourceConfig *config, void *work, CriSint32 work_size);
15121 
15134 void CRIAPI criAtomEx3dSource_Destroy(CriAtomEx3dSourceHn ex_3d_source);
15135 
15168 void CRIAPI criAtomEx3dSource_Update(CriAtomEx3dSourceHn ex_3d_source);
15169 
15180 void CRIAPI criAtomEx3dSource_ResetParameters(CriAtomEx3dSourceHn ex_3d_source);
15181 
15197 void CRIAPI criAtomEx3dSource_SetPosition(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *position);
15198 
15207 CriAtomExVector CRIAPI criAtomEx3dSource_GetPosition(CriAtomEx3dSourceHn ex_3d_source);
15208 
15224 void CRIAPI criAtomEx3dSource_SetVelocity(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *velocity);
15225 
15250 void CRIAPI criAtomEx3dSource_SetOrientation(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *front, const CriAtomExVector *top);
15251 
15283 void CRIAPI criAtomEx3dSource_SetConeParameter(CriAtomEx3dSourceHn ex_3d_source,
15284     CriFloat32 inside_angle,
15285     CriFloat32 outside_angle,
15286     CriFloat32 outside_volume
15287 );
15288 
15306 void CRIAPI criAtomEx3dSource_ChangeDefaultConeParameter(
15307     CriFloat32 inside_angle,
15308     CriFloat32 outside_angle,
15309     CriFloat32 outside_volume
15310 );
15311 
15331 void CRIAPI criAtomEx3dSource_SetMinMaxAttenuationDistance(CriAtomEx3dSourceHn ex_3d_source,
15332     CriFloat32 min_attenuation_distance,
15333     CriFloat32 max_attenuation_distance
15334 );
15335 
15355 void CRIAPI criAtomEx3dSource_ChangeDefaultMinMaxAttenuationDistance(
15356     CriFloat32 min_attenuation_distance,
15357     CriFloat32 max_attenuation_distance
15358 );
15359 
15385 void CRIAPI criAtomEx3dSource_SetInteriorPanField(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 source_radius, CriFloat32 interior_distance);
15386 
15399 void CRIAPI criAtomEx3dSource_ChangeDefaultInteriorPanField(CriFloat32 source_radius, CriFloat32 interior_distance);
15400 
15418 void CRIAPI criAtomEx3dSource_SetDopplerFactor(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 doppler_factor);
15419 
15435 void CRIAPI criAtomEx3dSource_ChangeDefaultDopplerFactor(CriFloat32 doppler_factor);
15436 
15458 void CRIAPI criAtomEx3dSource_SetVolume(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 volume);
15459 
15475 void CRIAPI criAtomEx3dSource_ChangeDefaultVolume(CriFloat32 volume);
15476 
15495 void CRIAPI criAtomEx3dSource_SetMaxAngleAisacDelta(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 max_delta);
15496 
15513 void CRIAPI criAtomEx3dSource_SetDistanceAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
15514 
15530 void CRIAPI criAtomEx3dSource_SetListenerBasedAzimuthAngleAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
15531 
15547 void CRIAPI criAtomEx3dSource_SetListenerBasedElevationAngleAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
15548 
15564 void CRIAPI criAtomEx3dSource_SetSourceBasedAzimuthAngleAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
15565 
15581 void CRIAPI criAtomEx3dSource_SetSourceBasedElevationAngleAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
15582 
15596 void CRIAPI criAtomEx3dSource_Set3dRegionHn(CriAtomEx3dSourceHn ex_3d_source, CriAtomEx3dRegionHn ex_3d_region);
15597 
15627 CriSint32 CRIAPI criAtomEx3dSourceList_CalculateWorkSize(const CriAtomEx3dSourceListConfig *config);
15628 
15649 CriAtomEx3dSourceListHn CRIAPI criAtomEx3dSourceList_Create(
15650     const CriAtomEx3dSourceListConfig *config, void *work, CriSint32 work_size);
15651 
15667 void CRIAPI criAtomEx3dSourceList_Destroy(CriAtomEx3dSourceListHn ex_3d_source_list);
15668 
15693 void CRIAPI criAtomEx3dSourceList_Add(
15694     CriAtomEx3dSourceListHn ex_3d_source_list, CriAtomEx3dSourceHn ex_3d_source);
15695 
15715 void CRIAPI criAtomEx3dSourceList_Remove(
15716     CriAtomEx3dSourceListHn ex_3d_source_list, CriAtomEx3dSourceHn ex_3d_source);
15717 
15736 void CRIAPI criAtomEx3dSourceList_RemoveAll(CriAtomEx3dSourceListHn ex_3d_source_list);
15737 
15767 CriSint32 CRIAPI criAtomEx3dListener_CalculateWorkSize(const CriAtomEx3dListenerConfig *config);
15768 
15769 /* 3Dリスナーの作成 */
15790 CriAtomEx3dListenerHn CRIAPI criAtomEx3dListener_Create(
15791     const CriAtomEx3dListenerConfig *config, void *work, CriSint32 work_size);
15792 
15805 void CRIAPI criAtomEx3dListener_Destroy(CriAtomEx3dListenerHn ex_3d_listener);
15806 
15839 void CRIAPI criAtomEx3dListener_Update(CriAtomEx3dListenerHn ex_3d_listener);
15840 
15851 void CRIAPI criAtomEx3dListener_ResetParameters(CriAtomEx3dListenerHn ex_3d_listener);
15852 
15868 void CRIAPI criAtomEx3dListener_SetPosition(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *position);
15869 
15879 CriAtomExVector CRIAPI criAtomEx3dListener_GetPosition(CriAtomEx3dListenerHn ex_3d_listener);
15880 
15896 void CRIAPI criAtomEx3dListener_SetVelocity(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *velocity);
15897 
15916 void CRIAPI criAtomEx3dListener_SetOrientation(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *front, const CriAtomExVector *top);
15917 
15933 void CRIAPI criAtomEx3dListener_SetDopplerMultiplier(CriAtomEx3dListenerHn ex_3d_listener, CriFloat32 doppler_multiplier);
15934 
15952 void CRIAPI criAtomEx3dListener_SetFocusPoint(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *focus_point);
15953 
15969 void CRIAPI criAtomEx3dListener_SetDistanceFocusLevel(CriAtomEx3dListenerHn ex_3d_listener, CriFloat32 distance_focus_level);
15970 
15987 void CRIAPI criAtomEx3dListener_SetDirectionFocusLevel(CriAtomEx3dListenerHn ex_3d_listener, CriFloat32 direction_focus_level);
15988 
16002 void CRIAPI criAtomEx_EnableCalculationAisacControlFrom3dPosition(CriBool flag);
16003 
16018 CriBool CRIAPI criAtomEx_IsEnableCalculationAisacControlFrom3dPosition(void);
16019 
16033 void CRIAPI criAtomEx3dListener_Set3dRegionHn(CriAtomEx3dListenerHn ex_3d_listener, CriAtomEx3dRegionHn ex_3d_region);
16034 
16064 CriSint32 CRIAPI criAtomEx3dRegion_CalculateWorkSize(const CriAtomEx3dRegionConfig *config);
16065 
16086 CriAtomEx3dRegionHn CRIAPI criAtomEx3dRegion_Create(
16087     const CriAtomEx3dRegionConfig *config, void *work, CriSint32 work_size);
16088 
16099 void CRIAPI criAtomEx3dRegion_Destroy(CriAtomEx3dRegionHn ex_3d_region);
16100 
16130 CriSint32 CRIAPI criAtomEx3dTransceiver_CalculateWorkSize(const CriAtomEx3dTransceiverConfig *config);
16131 
16152 CriAtomEx3dTransceiverHn CRIAPI criAtomEx3dTransceiver_Create(const CriAtomEx3dTransceiverConfig *config, void *work, CriSint32 work_size);
16153 
16164 void CRIAPI criAtomEx3dTransceiver_Destroy(CriAtomEx3dTransceiverHn ex_3d_transceiver);
16165 
16198 void CRIAPI criAtomEx3dTransceiver_Update(CriAtomEx3dTransceiverHn ex_3d_transceiver);
16199 
16214 void CRIAPI criAtomEx3dTransceiver_SetInputPosition(CriAtomEx3dTransceiverHn ex_3d_transceiver, const CriAtomExVector *position);
16215 
16230 void CRIAPI criAtomEx3dTransceiver_SetOutputPosition(CriAtomEx3dTransceiverHn ex_3d_transceiver, const CriAtomExVector *position);
16231 
16249 void CRIAPI criAtomEx3dTransceiver_SetInputOrientation(CriAtomEx3dTransceiverHn ex_3d_transceiver, const CriAtomExVector *front, const CriAtomExVector *top);
16250 
16270 void CRIAPI criAtomEx3dTransceiver_SetOutputOrientation(CriAtomEx3dTransceiverHn ex_3d_transceiver, const CriAtomExVector *front, const CriAtomExVector *top);
16271 
16299 void CRIAPI criAtomEx3dTransceiver_SetOutputConeParameter(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriFloat32 inside_angle, CriFloat32 outside_angle, CriFloat32 outside_volume);
16300 
16318 void CRIAPI criAtomEx3dTransceiver_SetOutputMinMaxAttenuationDistance(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriFloat32 min_attenuation_distance, CriFloat32 max_attenuation_distance);
16319 
16343 void CRIAPI criAtomEx3dTransceiver_SetOutputInteriorPanField(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriFloat32 transceiver_radius, CriFloat32 interior_distance);
16344 
16367 void CRIAPI criAtomEx3dTransceiver_SetInputCrossFadeField(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriFloat32 direct_audio_radius, CriFloat32 crossfade_distance);
16368 
16388 void CRIAPI criAtomEx3dTransceiver_SetOutputVolume(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriFloat32 volume);
16389 
16411 void CRIAPI criAtomEx3dTransceiver_AttachAisac(CriAtomEx3dTransceiverHn ex_3d_transceiver, const CriChar8* global_aisac_name);
16412 
16425 void CRIAPI criAtomEx3dTransceiver_DetachAisac(CriAtomEx3dTransceiverHn ex_3d_transceiver, const CriChar8* global_aisac_name);
16426 
16445 void CRIAPI criAtomEx3dTransceiver_SetMaxAngleAisacDelta(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriFloat32 max_delta);
16446 
16459 void CRIAPI criAtomEx3dTransceiver_SetDistanceAisacControlId(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriUint16 aisac_control_id);
16460 
16472 void CRIAPI criAtomEx3dTransceiver_SetListenerBasedAzimuthAngleAisacControlId(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriUint16 aisac_control_id);
16473 
16485 void CRIAPI criAtomEx3dTransceiver_SetListenerBasedElevationAngleAisacControlId(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriUint16 aisac_control_id);
16486 
16498 void CRIAPI criAtomEx3dTransceiver_SetTransceiverOutputBasedAzimuthAngleAisacControlId(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriUint16 aisac_control_id);
16499 
16511 void CRIAPI criAtomEx3dTransceiver_SetTransceiverOutputBasedElevationAngleAisacControlId(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriUint16 aisac_control_id);
16512 
16526 void CRIAPI criAtomEx3dTransceiver_Set3dRegionHn(CriAtomEx3dTransceiverHn ex_3d_transceiver, CriAtomEx3dRegionHn ex_3d_region);
16527 
16528 /*==========================================================================
16529  *      CRI AtomEx DSP API
16530  *=========================================================================*/
16531 
16546 void CRIAPI criAtomExVoicePool_DetachDsp(CriAtomExVoicePoolHn pool);
16547 
16559 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForDspPitchShifter(
16560     const CriAtomExDspPitchShifterConfig *config);
16561 
16579 void CRIAPI criAtomExVoicePool_AttachDspPitchShifter(CriAtomExVoicePoolHn pool,
16580     const CriAtomExDspPitchShifterConfig *config, void *work, CriSint32 work_size);
16581 
16593 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForDspTimeStretch(
16594     const CriAtomExDspTimeStretchConfig *config);
16595 
16613 void CRIAPI criAtomExVoicePool_AttachDspTimeStretch(CriAtomExVoicePoolHn pool,
16614     const CriAtomExDspTimeStretchConfig *config, void *work, CriSint32 work_size);
16615 
16616 /* ========================================================================*/
16617 /*       CRI AtomEx Streaming Cache API                                    */
16618 /* ========================================================================*/
16637 CriBool CRIAPI criAtomExStreamingCache_IsCachedWaveformById(
16638     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, CriAtomExCueId id);
16639 
16658 CriBool CRIAPI criAtomExStreamingCache_IsCachedWaveformByName(
16659     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, const CriChar8 *name);
16660 
16685 CriFsLoaderHn CRIAPI criAtomExStreamingCache_LoadWaveformByIdAsync(
16686     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, CriAtomExCueId cue_id);
16687 
16712 CriFsLoaderHn CRIAPI criAtomExStreamingCache_LoadWaveformByNameAsync(
16713     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, const CriChar8 *name);
16714 
16734 CriBool CRIAPI criAtomExStreamingCache_LoadWaveformById(
16735     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, CriAtomExCueId cue_id);
16736 
16756 CriBool CRIAPI criAtomExStreamingCache_LoadWaveformByName(
16757     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, const CriChar8 *name);
16758 
16759 
16760 /* ========================================================================*/
16761 /*       CRI AtomEx Tween(Parameter Animation) API                         */
16762 /* ========================================================================*/
16791 /* トゥイーンの作成に必要なワーク領域サイズの計算 */
16792 CriSint32 CRIAPI criAtomExTween_CalculateWorkSize(const CriAtomExTweenConfig *config);
16793 
16817 CriAtomExTweenHn CRIAPI criAtomExTween_Create(
16818     const CriAtomExTweenConfig *config, void *work, CriSint32 work_size);
16819 
16832 void CRIAPI criAtomExTween_Destroy(CriAtomExTweenHn tween);
16833 
16841 CriFloat32 CRIAPI criAtomExTween_GetValue(CriAtomExTweenHn tween);
16842 
16853 void CRIAPI criAtomExTween_MoveTo(CriAtomExTweenHn tween, CriUint16 time_ms, CriFloat32 value);
16854 
16865 void CRIAPI criAtomExTween_MoveFrom(CriAtomExTweenHn tween, CriUint16 time_ms, CriFloat32 value);
16866 
16874 void CRIAPI criAtomExTween_Stop(CriAtomExTweenHn tween);
16875 
16886 void CRIAPI criAtomExTween_Reset(CriAtomExTweenHn tween);
16887 
16888 /*==========================================================================
16889  *      CRI AtomEx Voice Event API
16890  *=========================================================================*/
16918 void CRIAPI criAtomEx_SetVoiceEventCallback(CriAtomExVoiceEventCbFunc func, void *obj);
16919 
16944 void CRIAPI criAtomEx_EnumerateVoiceInfos(CriAtomExVoiceInfoCbFunc func, void *obj);
16945 
16964 void CRIAPI criAtomEx_SetMonitoringVoiceStopCallback(CriAtomExMonitoringVoiceStopCbFunc func, void *obj);
16965 
16978 void CRIAPI criAtomEx_SetMonitoringVoiceStopPlaybackId(CriAtomExPlaybackId playback_id);
16979 
16980 
16981 /*==========================================================================
16982  *      CRI AtomEx Sound Object API
16983  *=========================================================================*/
17015 CriSint32 CRIAPI criAtomExSoundObject_CalculateWorkSize(
17016     const CriAtomExSoundObjectConfig *config);
17017 
17030 CriAtomExSoundObjectHn CRIAPI criAtomExSoundObject_Create(
17031     const CriAtomExSoundObjectConfig *config, void *work, CriSint32 work_size);
17032 
17043 void CRIAPI criAtomExSoundObject_Destroy(CriAtomExSoundObjectHn sound_object);
17044 
17067 void CRIAPI criAtomExSoundObject_AddPlayer(CriAtomExSoundObjectHn sound_object, CriAtomExPlayerHn player);
17068 
17084 void CRIAPI criAtomExSoundObject_DeletePlayer(CriAtomExSoundObjectHn sound_object, CriAtomExPlayerHn player);
17085 
17100 void CRIAPI criAtomExSoundObject_DeleteAllPlayers(CriAtomExSoundObjectHn sound_object);
17101 
17102 /***************************************************************************
17103  *      暫定API(使用はお控え下さい)
17104  *      Tentative API (Please don't use it)
17105  ***************************************************************************/
17106 /* 以下に宣言されている関数はAtomの内部処理用、ゲームエンジンとの連携等にて
17107  * 暫定的に使用されているAPIです。
17108  * 今後のアップデートにて予告なく変更・削除が行われるため、使用はお控え下さい。
17109  */
17110 typedef void (CRIAPI *CriAtomExAcbReleasedCbFunc)(void *obj);
17111 void CRIAPI criAtomExAcb_ReleaseAsync(
17112     CriAtomExAcbHn acb_hn, CriAtomExAcbReleasedCbFunc func, void *obj);
17113 CriBool CRIAPI criAtomExPlayer_IsReadyToStartAsync(CriAtomExPlayerHn player);
17114 CriBool CRIAPI criAtomExPlayer_StartAsync(CriAtomExPlayerHn player);
17115 void CRIAPI criAtomExPlayer_UpdateAllAsync(CriAtomExPlayerHn player);
17116 CriSint64 CRIAPI criAtomExPlayer_GetTimeReal(CriAtomExPlayerHn player);
17117 CriSint64 CRIAPI criAtomExPlayback_GetTimeReal(CriAtomExPlaybackId id);
17118 void CRIAPI criAtomExPlayback_EnumerateAtomPlayers(
17119     CriAtomExPlaybackId id, CriAtomPlayerCbFunc func, void* obj);
17120 void CRIAPI criAtomEx3dListener_GetFocusPoint(CriAtomEx3dListenerHn ex_3d_listener, CriAtomExVector *focus_point);
17121 CriFloat32 CRIAPI criAtomEx3dListener_GetDistanceFocusLevel(CriAtomEx3dListenerHn ex_3d_listener);
17122 CriFloat32 CRIAPI criAtomEx3dListener_GetDirectionFocusLevel(CriAtomEx3dListenerHn ex_3d_listener);
17123 CriAtomExAcbHn CRIAPI criAtomExAcb_GetCurrentAcb(void);
17124 CriBool CRIAPI criAtomExAcb_IsParameterPalletAssignedByName(CriAtomExAcbHn acb_hn, const CriChar8 *cue_name);
17125 void CRIAPI criAtomEx3dSource_SetAttenuationDistanceSetting(CriAtomEx3dSourceHn ex_3d_source, CriBool sw);
17126 CriBool CRIAPI criAtomEx3dSource_GetAttenuationDistanceSetting(const CriAtomEx3dSourceHn ex_3d_source);
17127 
17128 #ifdef __cplusplus
17129 }
17130 #endif
17131 
17132 /***************************************************************************
17133  *      旧バージョンとの互換用
17134  *      For compatibility with old version
17135  ***************************************************************************/
17140 typedef CriAtomExConfig CriAtomExLibraryConfig;
17141 typedef CriAtomExFormatInfo CriAtomExPlaybackFormatInfo;
17142 typedef CriAtomExSourceType CriAtomExPlaybackSourceType;
17143 typedef CriAtomExSourceInfo CriAtomExPlaybackSource;
17144 typedef CriAtomExVoiceControlMethod CriAtomExControlMethod;
17145 typedef CriAtomExVoiceAllocationMethod CriAtomExPlayerVoiceAllocationMethod;
17146 typedef CriAtomExSequencerEventCbFunc CriAtomExSequencer_EventCbFunc;
17147 #define criAtomExPlayer_SetDefaultPlayerConfig(p_config)    \
17148     criAtomExPlayer_SetDefaultConfig(p_config)
17149 #define criAtomExPlayer_SetPriority(player, priority)   \
17150     criAtomExPlayer_SetVoicePriority((player), (priority))
17151 #define criAtomExPlayer_SetControlMethod(player, method)    \
17152     criAtomExPlayer_SetVoiceControlMethod((player), (method))
17153 #define criAtomExPlayer_GetPlaybackStatus(player, id)   \
17154     criAtomExPlayback_GetStatus(id)
17155 #define criAtomExVoicePool_SetDefaultHcaMxVoicePoolConfig(p_config) \
17156     criAtomExVoicePool_SetDefaultConfigForHcaMxVoicePool(p_config)
17157 #define criAtomEx_RegisterAcfFromConfig(config, work, work_size)    \
17158     criAtomEx_RegisterAcfConfig(config, work, work_size)
17159 #define criAtomEx_CalculateWorkSizeForHcaMxVoicePool(p_config)  \
17160     criAtomExVoicePool_CalculateWorkSizeForHcaMxVoicePool(p_config)
17161 #define criAtomEx_AllocateHcaMxVoicePool(p_config, work, work_size) \
17162     criAtomExVoicePool_AllocateHcaMxVoicePool(p_config, work, work_size)
17163 #define criAtomEx_FreeVoicePool(pool)   \
17164     criAtomExVoicePool_Free(pool)
17165 
17166 #define criAtomExPlayer_SetAisacById(player, control_id, control_value) \
17167     criAtomExPlayer_SetAisacControlById(player, control_id, control_value)
17168 #define criAtomExPlayer_SetAisacByName(player, control_name, control_value) \
17169     criAtomExPlayer_SetAisacControlByName(player, control_name, control_value)
17170 #define criAtomExPlayer_GetAisacById(player, control_id) \
17171     criAtomExPlayer_GetAisacControlById(player, control_id)
17172 #define criAtomExPlayer_GetAisacByName(player, control_name) \
17173     criAtomExPlayer_GetAisacControlByName(player,control_name)
17174 #define criAtomExPlayback_GetAisacById(playback_id, control_id, control_value) \
17175     criAtomExPlayback_GetAisacControlById(playback_id, control_id, control_value)
17176 #define criAtomExPlayback_GetAisacByName(playback_id, control_name, control_value) \
17177     criAtomExPlayback_GetAisacControlByName(playback_id, control_name, control_value)
17178 #define criAtomExCategory_SetAisacById(id, control_id, control_value) \
17179     criAtomExCategory_SetAisacControlById(id, control_id, control_value)
17180 #define criAtomExCategory_SetAisacByName(name, control_name, control_value) \
17181     criAtomExCategory_SetAisacControlByName(name, control_name, control_value)
17182 #define criAtomExPlayer_SetPan(player, ch, pan) \
17183     criAtomExPlayer_SetPanAdx1Compatible((player), (ch), (pan))
17184 #define criAtomEx3dSource_SetListenerBasedAngleAisacControlId(ex_3d_source, aisac_control_id) \
17185     criAtomEx3dSource_SetListenerBasedAzimuthAngleAisacControlId((ex_3d_source), (aisac_control_id))
17186 #define criAtomEx3dSource_SetSourceBasedAngleAisacControlId(ex_3d_source, aisac_control_id) \
17187     criAtomEx3dSource_SetSourceBasedAzimuthAngleAisacControlId((ex_3d_source), (aisac_control_id))
17188 /* レンダラーの出力Ch数設定に応じて、自動でダウンミックスするため下記関数は無効にしています */
17189 #define criAtomEx_SetDownmixMode(downmix_mode)
17190 
17191 #define CRIATOMEXPLAYBACK_STATUS_STOP       ((CriAtomExPlaybackStatus)0)
17192 #define CRIATOMEXPLAYBACK_STATUS_PLAYEND    (CRIATOMEXPLAYBACK_STATUS_REMOVED)
17193 #define CRIATOMEXPLAYBACK_STATUS_ERROR      ((CriAtomExPlaybackStatus)4)
17194 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_NONE          (CRIATOMEX_SOURCE_TYPE_NONE)
17195 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_CUE_ID        (CRIATOMEX_SOURCE_TYPE_CUE_ID)
17196 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_CUE_NAME      (CRIATOMEX_SOURCE_TYPE_CUE_NAME)
17197 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_CUE_INDEX     (CRIATOMEX_SOURCE_TYPE_CUE_INDEX)
17198 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_DATA          (CRIATOMEX_SOURCE_TYPE_DATA)
17199 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_FILE          (CRIATOMEX_SOURCE_TYPE_FILE)
17200 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_CONTENT_ID    (CRIATOMEX_SOURCE_TYPE_CONTENT_ID)
17201 #define CRIATOMEXPLAYBACK_SOURCE_TYPE_WAVE_ID       (CRIATOMEX_SOURCE_TYPE_WAVE_ID)
17202 #define CRIATOMEXPLAYER_ALLOCATE_VOICE_ONCE         (CRIATOMEX_ALLOCATE_VOICE_ONCE)
17203 #define CRIATOMEXPLAYER_RETRY_VOICE_ALLOCATION      (CRIATOMEX_RETRY_VOICE_ALLOCATION)
17204 
17205 #ifdef __cplusplus
17206 extern "C" {
17207 #endif
17208 
17212 #define criAtomEx_SetDefaultConfigForAcf(p_config)  \
17213 {\
17214     (p_config)->num_groups = 0;\
17215     (p_config)->voices_per_group = NULL;\
17216     (p_config)->num_category_groups = 8;\
17217     (p_config)->num_categories = 64;\
17218 }
17219 
17224 typedef struct CriAtomExAcfConfigTag {
17225     CriSint32 num_groups;               
17226     const CriSint32 *voices_per_group;  
17227     CriSint32 num_category_groups;      
17228     CriSint32 num_categories;           
17229 } CriAtomExAcfConfig;
17230 
17236 void CRIAPI criAtomExHcaMx_SetBusSendLevel(
17237     CriSint32 mixer_id, CriSint32 bus_index, CriFloat32 level);
17238 
17244 void CRIAPI criAtomExPlayer_SetBusSendLevel(
17245     CriAtomExPlayerHn player, CriSint32 bus_index, CriFloat32 level);
17246 
17252 void CRIAPI criAtomExPlayer_SetBusSendLevelOffset(
17253     CriAtomExPlayerHn player, CriSint32 bus_index, CriFloat32 level_offset);
17254 
17260 void CRIAPI criAtomEx_GetNumUsedVirtualVoices(CriSint32 *cur_num, CriSint32 *limit);
17261 
17267 void CRIAPI criAtomEx_GetNumUsedSequences(CriSint32 *cur_num, CriSint32 *limit);
17268 
17274 void CRIAPI criAtomEx_GetNumUsedSequenceTracks(CriSint32 *cur_num, CriSint32 *limit);
17275 
17281 void CRIAPI criAtomEx_GetNumUsedSequenceTrackItems(CriSint32 *cur_num, CriSint32 *limit);
17282 
17289 void CRIAPI criAtomEx3dListener_SetDistanceFactor(CriAtomEx3dListenerHn ex_3d_listener, CriFloat32 distance_factor);
17290 
17296 void CRIAPI criAtomEx_GetNumUsedAisacAutoModulations(CriSint32 *cur_num, CriSint32 *limit);
17297 
17303 void CRIAPI criAtomEx3dSource_SetConeOrientation(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *cone_orient);
17304 
17310 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForRegisterAcfConfig(
17311     const CriAtomExAcfConfig *config);
17312 
17318 void CRIAPI criAtomEx_RegisterAcfConfig(
17319     const CriAtomExAcfConfig *config, void *work, CriSint32 work_size);
17320 
17326 void CRIAPI criAtomExPlayer_SetSequencePrepareTime(
17327     CriAtomExPlayerHn player, CriUint32 seq_prep_time_ms);
17328 
17329 #ifdef __cplusplus
17330 }
17331 #endif
17332 
17337 #endif /* CRI_INCL_CRI_ATOM_EX_H */
17338 
17339 /* --- end of file --- */E:/j/workspace/ADX2/0S_405_BuildManual_Public/p4ws/CriMovieDepot/crimw/dev/dev_libs/CriAtom2/src/CriAtomEx/cri_atom_ex.h

CRI Middleware logo Copyright (c) 2006-2018 CRI Middleware Co., Ltd.