cri_le_atom_ex.h
説明を見る。
    1 /****************************************************************************
    2  *
    3  * CRI Middleware SDK
    4  *
    5  * Copyright (c) 2010-2016 CRI Middleware Co., Ltd.
    6  *
    7  * Library  : CRI Atom
    8  * Module   : AtomEx.
    9  * File     : cri_le_atom_ex.h
   10  *
   11  ****************************************************************************/
   16 /* 多重定義防止                   */
   17 /* Prevention of redefinition   */
   18 #ifndef CRI_INCL_CRI_ATOM_EX_H
   19 #define CRI_INCL_CRI_ATOM_EX_H
   20 
   21 /***************************************************************************
   22  *      インクルードファイル
   23  *      Include files
   24  ***************************************************************************/
   25 #include <cri_le_xpt.h>
   26 #include <cri_le_atom.h>
   27 #include <cri_le_file_system.h>
   28 
   29 /***************************************************************************
   30  *      定数マクロ
   31  *      Macro Constants
   32  ***************************************************************************/
   33 /* バージョン情報 */
   34 /* Version Number */
   35 #define CRIATOMEX_VERSION               (0x02142600)
   36 #define CRIATOMEX_VER_NUM               "2.14.26"
   37 #define CRIATOMEX_VER_NAME              "CRI AtomEx(LE)"
   38 #define CRIATOMEX_VER_OPTION
   39 
   40 /*==========================================================================
   41  *      CRI AtomEx API
   42  *=========================================================================*/
   51 #define CRIATOMEX_MAX_VIRTUAL_VOICES    (32767)
   52 
   53 /*==========================================================================
   54  *      CRI AtomEx ACF API
   55  *=========================================================================*/
   63 #define CRIATOMEX_INVALID_AISAC_CONTROL_ID  (0xffff)
   64 
   72 #define CRIATOMEXACF_MAX_BUSES          (64)
   73 
   81 #define CRIATOMEXACF_MAX_FXES           (8)
   82 
   90 #define CRIATOMEXACF_INVALID_CUE_LIMITS     (0xffffffff)
   91 
  102 #define CRIATOMEXACF_MAX_NAME_STRING_COUNT  (64)
  103 
  104 /*==========================================================================
  105  *      CRI AtomEx Voice Pool API
  106  *=========================================================================*/
  116 #define CRIATOMEX_DEFAULT_VOICES_PER_POOL   (8)
  117 
  118 /*==========================================================================
  119  *      CRI AtomEx Player API
  120  *=========================================================================*/
  132 #define CRIATOMEXPLAYER_NO_GROUP_LIMITATION (-1)
  133 
  139 #define CRIATOMEXPLAYER_NO_LOOP_LIMITATION  (CRIATOMPLAYER_NO_LOOP_LIMITATION)  
  140 #define CRIATOMEXPLAYER_IGNORE_LOOP         (CRIATOMPLAYER_IGNORE_LOOP)         
  141 #define CRIATOMEXPLAYER_FORCE_LOOP          (CRIATOMPLAYER_FORCE_LOOP)          
  150 #define CRIATOMEXPLAYER_MAX_ASR_RACKS       (8)
  151 
  152 /*==========================================================================
  153  *      CRI AtomEx Playback API
  154  *=========================================================================*/
  170 #define CRIATOMEX_INVALID_PLAYBACK_ID   (0xFFFFFFFF)
  171 
  181 #define CRIATOMEX_INVALID_BLOCK_INDEX   (0xFFFFFFFF)
  182 
  183 /*==========================================================================
  184  *      CRI AtomEx Fader API
  185  *=========================================================================*/
  195 #define CRIATOMEX_IGNORE_FADE_OUT       (-1)
  196 
  197 /*==========================================================================
  198  *      CRI AtomEx D-BAS API
  199  *=========================================================================*/
  207 #define CRIATOMEXDBAS_ILLEGAL_ID        (CRIATOMDBAS_ILLEGAL_ID)
  208 
  209 /* ========================================================================*/
  210 /*       CRI AtomEx Streaming Cache API                                    */
  211 /* ========================================================================*/
  219 #define CRIATOMEX_STREAMING_CACHE_ILLEGAL_ID    (CRIATOM_STREAMING_CACHE_ILLEGAL_ID)
  220 
  221 /***************************************************************************
  222  *      処理マクロ
  223  *      Macro Functions
  224  ***************************************************************************/
  225 /*==========================================================================
  226  *      CRI AtomEx API
  227  *=========================================================================*/
  259 #define criAtomEx_SetUserAllocator(p_malloc_func, p_free_func, p_obj)   \
  260     criAtom_SetUserAllocator((p_malloc_func), (p_free_func), (p_obj))
  261 
  272 #define criAtomEx_SetDefaultConfig(p_config)    \
  273 {\
  274     (p_config)->thread_model = CRIATOMEX_THREAD_MODEL_MULTI;\
  275     (p_config)->server_frequency = 60.0f;\
  276     (p_config)->parameter_update_interval = 1;\
  277     (p_config)->enable_atom_sound_disabled_mode = CRI_FALSE;\
  278     (p_config)->max_virtual_voices = 16;\
  279     (p_config)->max_parameter_blocks = 1024;\
  280     (p_config)->max_voice_limit_groups = 16;\
  281     (p_config)->max_categories = 16;\
  282     (p_config)->max_aisacs = 8;\
  283     (p_config)->categories_per_playback = 4;\
  284     (p_config)->max_sequences = (p_config)->max_virtual_voices;\
  285     (p_config)->max_tracks = (p_config)->max_virtual_voices * 2;\
  286     (p_config)->max_track_items = (p_config)->max_virtual_voices * 2;\
  287     (p_config)->max_aisac_auto_modulations = 0;\
  288     (p_config)->max_pitch = 2400.0f;\
  289     (p_config)->max_faders = 4;\
  290     (p_config)->coordinate_system = CRIATOMEX_COORDINATE_SYSTEM_LEFT_HANDED;\
  291     (p_config)->rng_if = NULL;\
  292     (p_config)->fs_config = NULL;\
  293     (p_config)->acf_info = NULL;\
  294     (p_config)->context = NULL;\
  295     (p_config)->version = CRI_ATOM_VERSION;\
  296     (p_config)->version_ex = CRIATOMEX_VERSION;\
  297 }
  298 
  339 #define criAtomEx_AttachPerformanceMonitor()    criAtom_AttachPerformanceMonitor()
  340 
  352 #define criAtomEx_DetachPerformanceMonitor()    criAtom_DetachPerformanceMonitor()
  353 
  364 #define criAtomEx_ResetPerformanceMonitor()     criAtom_ResetPerformanceMonitor()
  365 
  375 #define criAtomEx_GetPerformanceInfo(p_info)    criAtom_GetPerformanceInfo(p_info)
  376 
  391 #define criAtomEx_SetChannelMapping(nch, type)  \
  392     criAtom_SetChannelMapping((nch), (type))
  393 
  405 #define criAtomEx_CalculateAdxBitrate(num_channels, sampling_rate) \
  406     criAtom_CalculateAdxBitrate(num_channels, sampling_rate)
  407 
  422 #define criAtomEx_CalculateHcaBitrate(num_channels, sampling_rate, quality) \
  423     criAtom_CalculateHcaBitrate(num_channels, sampling_rate, quality)
  424 
  439 #define criAtomEx_CalculateHcaMxBitrate(num_channels, sampling_rate, quality) \
  440     criAtom_CalculateHcaMxBitrate(num_channels, sampling_rate, quality)
  441 
  454 #define criAtomEx_CalculateWaveBitrate(num_channels, sampling_rate, num_bits)   \
  455     criAtom_CalculateWaveBitrate(num_channels, sampling_rate, num_bits)
  456 
  469 #define criAtomEx_CalculateAiffBitrate(num_channels, sampling_rate, num_bits)   \
  470     criAtom_CalculateAiffBitrate(num_channels, sampling_rate, num_bits)
  471 
  472 /*==========================================================================
  473  *      CRI AtomEx HCA-MX API
  474  *=========================================================================*/
  483 #define criAtomExHcaMx_SetDefaultConfig(p_config)   \
  484 {\
  485     (p_config)->server_frequency = 60.0f;\
  486     (p_config)->num_mixers = 1;\
  487     (p_config)->max_voices = 16;\
  488     (p_config)->max_input_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  489     (p_config)->max_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
  490     (p_config)->output_channels = CRIATOM_DEFAULT_OUTPUT_CHANNELS;\
  491     (p_config)->output_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
  492     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  493 }
  494 
  495 /*==========================================================================
  496  *      CRI AtomEx Voice Pool API
  497  *=========================================================================*/
  507 #define criAtomExVoicePool_SetDefaultConfigForStandardVoicePool(p_config)   \
  508 {\
  509     (p_config)->identifier = 0;\
  510     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  511     (p_config)->player_config.max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  512     (p_config)->player_config.max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  513     (p_config)->player_config.streaming_flag = CRI_FALSE;\
  514     (p_config)->player_config.sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  515     (p_config)->player_config.decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
  516 }
  517 
  527 #define criAtomExVoicePool_SetDefaultConfigForAdxVoicePool(p_config)    \
  528 {\
  529     (p_config)->identifier = 0;\
  530     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  531     (p_config)->player_config.max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  532     (p_config)->player_config.max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  533     (p_config)->player_config.streaming_flag = CRI_FALSE;\
  534     (p_config)->player_config.sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  535     (p_config)->player_config.decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
  536 }
  537 
  547 #define criAtomExVoicePool_SetDefaultConfigForHcaVoicePool(p_config)    \
  548 {\
  549     (p_config)->identifier = 0;\
  550     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  551     (p_config)->player_config.max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  552     (p_config)->player_config.max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  553     (p_config)->player_config.streaming_flag = CRI_FALSE;\
  554     (p_config)->player_config.sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  555     (p_config)->player_config.decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
  556 }
  557 
  567 #define criAtomExVoicePool_SetDefaultConfigForHcaMxVoicePool(p_config)  \
  568 {\
  569     (p_config)->identifier = 0;\
  570     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  571     (p_config)->player_config.max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  572     (p_config)->player_config.max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  573     (p_config)->player_config.streaming_flag = CRI_FALSE;\
  574 }
  575 
  585 #define criAtomExVoicePool_SetDefaultConfigForWaveVoicePool(p_config)   \
  586 {\
  587     (p_config)->identifier = 0;\
  588     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  589     (p_config)->player_config.max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  590     (p_config)->player_config.max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  591     (p_config)->player_config.streaming_flag = CRI_FALSE;\
  592     (p_config)->player_config.sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  593     (p_config)->player_config.decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
  594 }
  595 
  605 #define criAtomExVoicePool_SetDefaultConfigForAiffVoicePool(p_config)   \
  606 {\
  607     (p_config)->identifier = 0;\
  608     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  609     (p_config)->player_config.max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  610     (p_config)->player_config.max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  611     (p_config)->player_config.streaming_flag = CRI_FALSE;\
  612     (p_config)->player_config.sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  613     (p_config)->player_config.decode_latency = CRIATOM_DEFAULT_DECODE_LATENCY;\
  614 }
  615 
  625 #define criAtomExVoicePool_SetDefaultConfigForRawPcmVoicePool(p_config) \
  626 {\
  627     (p_config)->identifier = 0;\
  628     (p_config)->num_voices = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  629     criAtomPlayer_SetDefaultConfigForRawPcmPlayer(&(p_config)->player_config);\
  630 }
  631 
  632 /*==========================================================================
  633  *      CRI AtomEx Player API
  634  *=========================================================================*/
  644 #define criAtomExPlayer_SetDefaultConfig(p_config)  \
  645 {\
  646     (p_config)->voice_allocation_method = CRIATOMEX_ALLOCATE_VOICE_ONCE;\
  647     (p_config)->max_path_strings = 1;\
  648     (p_config)->max_path = 0;\
  649     (p_config)->updates_time = CRI_TRUE;\
  650     (p_config)->enable_audio_synced_timer = CRI_FALSE;\
  651     (p_config)->max_aisacs = 8;\
  652 }
  653 
  654 /*==========================================================================
  655  *      CRI AtomEx Fader API
  656  *=========================================================================*/
  666 #define criAtomExFader_SetDefaultConfig(p_config)   \
  667 {\
  668     (p_config)->reserved = 0;\
  669 }
  670 
  671 /*==========================================================================
  672  *      CRI AtomEx D-BAS API
  673  *=========================================================================*/
  683 #define criAtomExDbas_SetDefaultConfig(p_config)    \
  684     criAtomDbas_SetDefaultConfig(p_config)
  685 
  704 #define criAtomExDbas_CalculateWorkSize(config) \
  705     criAtomDbas_CalculateWorkSize(config)
  706 
  725 #define criAtomExDbas_Create(config, work, work_size)   \
  726     criAtomDbas_Create((config), (work), (work_size))
  727 
  736 #define criAtomExDbas_Destroy(atom_dbas_id) \
  737     criAtomDbas_Destroy(atom_dbas_id);
  738 
  765 #define criAtomExDbas_GetStreamingPlayerHandles(dbas_id, players, length)   \
  766     criAtomDbas_GetStreamingPlayerHandles((dbas_id), (players), (length))
  767 
  768 /* ========================================================================*/
  769 /*       CRI AtomEx Streaming Cache API                                    */
  770 /* ========================================================================*/
  781 #define criAtomExStreamingCache_SetDefaultConfig(p_config)  \
  782     criAtomStreamingCache_SetDefaultConfig(p_config)
  783 
  796 #define criAtomExStreamingCache_CalculateWorkSize(p_config) \
  797     criAtomStreamingCache_CalculateWorkSize(p_config)
  798 
  821 #define criAtomExStreamingCache_Create(config, work, work_size) \
  822     criAtomStreamingCache_Create((config), (work), (work_size));
  823 
  835 #define criAtomExStreamingCache_Destroy(stm_cache_id)   \
  836     criAtomStreamingCache_Destroy(stm_cache_id)
  837 
  852 #define criAtomExStreamingCache_Clear(cache_id) \
  853     criAtomStreamingCache_Clear(cache_id)
  854 
  870 #define criAtomExStreamingCache_IsCachedWaveId(stm_cache_id, awb, id)   \
  871     criAtomStreamingCache_IsCachedWaveId((stm_cache_id), (awb), (id))
  872 
  886 #define criAtomExStreamingCache_IsCachedFile(stm_cache_id, src_binder, path)    \
  887     criAtomStreamingCache_IsCachedFile((stm_cache_id), (src_binder), (path))
  888 
  889 /*==========================================================================
  890  *      CRI AtomEx 3D API
  891  *=========================================================================*/
  901 #define criAtomEx3dSource_SetDefaultConfig(p_config)    \
  902 {\
  903     (p_config)->enable_voice_priority_decay = CRI_FALSE;\
  904 }
  905 
  915 #define criAtomEx3dSourceList_SetDefaultConfig(p_config)    \
  916 {\
  917     (p_config)->reserved = 0;\
  918 }
  919 
  929 #define criAtomEx3dListener_SetDefaultConfig(p_config)  \
  930 {\
  931     (p_config)->reserved = 0;\
  932 }
  933 
  955 #define criAtomEx3dSource_SetMinMaxDistance(ex_3d_source, min_attenuation_distance, max_attenuation_distance) \
  956     criAtomEx3dSource_SetMinMaxAttenuationDistance((ex_3d_source), (min_attenuation_distance), (max_attenuation_distance))
  957 
  976 #define criAtomEx3dSource_ChangeDefaultMinMaxDistance(min_attenuation_distance, max_attenuation_distance) \
  977     criAtomEx3dSource_ChangeDefaultMinMaxAttenuationDistance((min_attenuation_distance), (max_attenuation_distance))
  978 
  979 /*==========================================================================
  980  *      CRI AtomEx DSP API
  981  *=========================================================================*/
  982 
  992 #define criAtomExVoicePool_SetDefaultConfigForDspPitchShifter(p_config) \
  993 {\
  994     (p_config)->num_dsp = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
  995     (p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  996     (p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  997     (p_config)->specific.mode = 0;\
  998     (p_config)->specific.window_size = 1024;\
  999     (p_config)->specific.overlap_times = 4;\
 1000 }
 1001 
 1011 #define criAtomExVoicePool_SetDefaultConfigForDspTimeStretch(p_config)  \
 1012 {\
 1013     (p_config)->num_dsp = CRIATOMEX_DEFAULT_VOICES_PER_POOL;\
 1014     (p_config)->max_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
 1015     (p_config)->max_sampling_rate = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
 1016     (p_config)->specific.reserved = 0;\
 1017 }
 1018 
 1019 /*==========================================================================
 1020  *      CRI AtomEx Tween API
 1021  *=========================================================================*/
 1032 #define criAtomExTween_SetDefaultConfig(p_config)   \
 1033 {\
 1034     (p_config)->id.parameter_id = CRIATOMEX_PARAMETER_ID_VOLUME;\
 1035     (p_config)->parameter_type = CRIATOMEX_PARAMETER_TYPE_BASIC;\
 1036 }
 1037 
 1038 /*==========================================================================
 1039  *      CRI AtomEx Sound Object API
 1040  *=========================================================================*/
 1050 #define criAtomExSoundObject_SetDefaultConfig(p_config) \
 1051 {\
 1052     (p_config)->enable_voice_limit_scope = CRI_FALSE;\
 1053     (p_config)->enable_category_cue_limit_scope = CRI_FALSE;\
 1054 }
 1055 
 1056 /***************************************************************************
 1057  *      データ型宣言
 1058  *      Data Type Declarations
 1059  ***************************************************************************/
 1060 /*==========================================================================
 1061  *      CRI AtomEx API
 1062  *=========================================================================*/
 1070 typedef CriAtomMallocFunc CriAtomExMallocFunc;
 1071 
 1079 typedef CriAtomFreeFunc CriAtomExFreeFunc;
 1080 
 1090 typedef enum CriAtomExThreadModelTag {
 1098     CRIATOMEX_THREAD_MODEL_MULTI = 0,
 1099     
 1110     CRIATOMEX_THREAD_MODEL_MULTI_USER_DRIVEN = 3,
 1111     
 1119     CRIATOMEX_THREAD_MODEL_USER_MULTI = 1,
 1120     
 1129     CRIATOMEX_THREAD_MODEL_SINGLE = 2,
 1130     
 1131     /* enum size is 4bytes */
 1132     CRIATOMEX_THREAD_MODEL_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1133 } CriAtomExThreadModel;
 1134 
 1144 typedef enum CriAtomExCoordinateSystemTag {
 1150     CRIATOMEX_COORDINATE_SYSTEM_LEFT_HANDED = 0,
 1151     
 1157     CRIATOMEX_COORDINATE_SYSTEM_RIGHT_HANDED = 1,
 1158     
 1159     /* enum size is 4bytes */
 1160     CRIATOMEX_COORDINATE_SYSTEM_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1161 } CriAtomExCoordinateSystem;
 1162 
 1172 typedef enum CriAtomExAcfLocationInfoTypeTag {
 1173     CRIATOMEX_ACF_LOCATION_INFO_TYPE_NONE = 0,  
 1174     CRIATOMEX_ACF_LOCATION_INFO_TYPE_NAME,      
 1175     CRIATOMEX_ACF_LOCATION_INFO_TYPE_ID,        
 1176     CRIATOMEX_ACF_LOCATION_INFO_TYPE_DATA,      
 1177     CRIATOMEX_ACF_LOCATION_INFO_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1178 } CriAtomExAcfLocationInfoType;
 1179 
 1184 typedef void *CriAtomExRngHn;
 1185 
 1190 typedef struct CriAtomExRngInterfaceTag {
 1197     CriSint32 (*CalculateWorkSize)(void);
 1198 
 1208     CriAtomExRngHn (*Create)(void* work, CriSint32 work_size);
 1209 
 1216     void (*Destroy)(CriAtomExRngHn rng);
 1217 
 1228     CriSint32 (*Generate)(CriAtomExRngHn rng, CriSint32 min, CriSint32 max);
 1229 
 1237     void (*SetSeed)(CriAtomExRngHn rng, CriUint32 seed);
 1238 
 1239 } CriAtomExRngInterface;
 1240 
 1268 typedef struct CriAtomExAcfRegistrationInfoTag {
 1270     CriAtomExAcfLocationInfoType type;
 1271 
 1273     union CriAtomExAcfLocationInfoTag {
 1275         struct CriAtomExAcfLocationInfoNameTag {
 1276             CriFsBinderHn binder;   
 1277             const CriChar8 *path;   
 1278         } name;
 1280         struct CriAtomExAcfLocationInfoIdTag {
 1281             CriFsBinderHn binder;   
 1282             CriSint32 id;           
 1283         } id;
 1285         struct CriAtomExAcfLocationInfoDataTag {
 1286             void *buffer;           
 1287             CriSint32 size;         
 1288         } data;
 1289     } info; 
 1290 } CriAtomExAcfRegistrationInfo;
 1291 
 1311 typedef struct CriAtomExConfigTag {
 1318     CriAtomExThreadModel thread_model;
 1319     
 1371     CriFloat32 server_frequency;
 1372     
 1400     CriSint32 parameter_update_interval;
 1401     
 1413     CriBool enable_atom_sound_disabled_mode;
 1414     
 1436     CriSint32 max_virtual_voices;
 1437     
 1455     CriSint32 max_parameter_blocks;
 1456     
 1469     CriSint32 max_voice_limit_groups;
 1470 
 1482     CriSint32 max_categories;
 1483 
 1492     CriUint8 max_aisacs;
 1493 
 1506     CriSint32 categories_per_playback;
 1507 
 1520     CriSint32 max_sequences;
 1521 
 1534     CriUint32 max_tracks;
 1535 
 1551     CriUint32 max_track_items;
 1552     
 1559     CriUint32 max_aisac_auto_modulations;
 1560 
 1589     CriFloat32 max_pitch;
 1590 
 1597     CriUint32 max_faders;
 1598 
 1604     CriAtomExCoordinateSystem coordinate_system;
 1605 
 1612     const CriAtomExRngInterface *rng_if;
 1613 
 1621     const CriFsConfig *fs_config;
 1622 
 1643     const CriAtomExAcfRegistrationInfo *acf_info;
 1644 
 1655     void *context;
 1656 
 1665     CriUint32 version;
 1666 
 1675     CriUint32 version_ex;
 1676 } CriAtomExConfig;
 1677 
 1686 typedef CriAtomPerformanceInfo CriAtomExPerformanceInfo;
 1687 
 1696 typedef CriSint32 CriAtomExWaveId;
 1697 
 1704 typedef CriSint32 CriAtomExVibrationId;
 1705 
 1714 typedef CriAtomFormat CriAtomExFormat;
 1715 #define CRIATOMEX_FORMAT_NONE           (CRIATOM_FORMAT_NONE)           
 1716 #define CRIATOMEX_FORMAT_ADX            (CRIATOM_FORMAT_ADX)            
 1717 #define CRIATOMEX_FORMAT_HCA            (CRIATOM_FORMAT_HCA)            
 1718 #define CRIATOMEX_FORMAT_HCA_MX         (CRIATOM_FORMAT_HCA_MX)         
 1719 #define CRIATOMEX_FORMAT_WAVE           (CRIATOM_FORMAT_WAVE)           
 1720 #define CRIATOMEX_FORMAT_AIFF           (CRIATOM_FORMAT_AIFF)           
 1721 #define CRIATOMEX_FORMAT_RAW_PCM        (CRIATOM_FORMAT_RAW_PCM)        
 1722 #define CRIATOMEX_FORMAT_VIBRATION      (CRIATOM_FORMAT_VIBRATION)      
 1723 #define CRIATOMEX_FORMAT_AUDIO_BUFFER   (CRIATOM_FORMAT_AUDIO_BUFFER)   
 1724 #define CRIATOMEX_FORMAT_HW1            (CRIATOM_FORMAT_HW1)            
 1725 #define CRIATOMEX_FORMAT_HW2            (CRIATOM_FORMAT_HW2)            
 1739 typedef struct CriAtomExFormatInfoTag {
 1740     CriAtomExFormat format;             
 1741     CriSint32 sampling_rate;            
 1742     CriSint64 num_samples;              
 1743     CriSint64 loop_offset;              
 1744     CriSint64 loop_length;              
 1745     CriSint32 num_channels;             
 1746     CriUint32 reserved[1];              
 1747 } CriAtomExFormatInfo;
 1748 
 1758 typedef enum CriAtomExResumeModeTag {
 1759     CRIATOMEX_RESUME_ALL_PLAYBACK = 0,          
 1760     CRIATOMEX_RESUME_PAUSED_PLAYBACK = 1,       
 1761     CRIATOMEX_RESUME_PREPARED_PLAYBACK = 2,     
 1762     CRIATOMEX_RESUME_MODE_RESERVED = 3,
 1763     CRIATOMEX_RESUME_MODE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1764 } CriAtomExResumeMode;
 1765 
 1774 typedef enum CriAtomExBiquadFilterTypeTag {
 1775     CRIATOMEX_BIQUAD_FILTER_TYPE_OFF = 0,           
 1776     CRIATOMEX_BIQUAD_FILTER_TYPE_LOWPASS = 1,       
 1777     CRIATOMEX_BIQUAD_FILTER_TYPE_HIGHPASS = 2,      
 1778     CRIATOMEX_BIQUAD_FILTER_TYPE_NOTCH = 3,         
 1779     CRIATOMEX_BIQUAD_FILTER_TYPE_LOWSHELF = 4,      
 1780     CRIATOMEX_BIQUAD_FILTER_TYPE_HIGHSHELF = 5,     
 1781     CRIATOMEX_BIQUAD_FILTER_TYPE_PEAKING = 6,       
 1783     /* enum size is 4bytes */
 1784     CRIATOMEX_BIQUAD_FILTER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1785 } CriAtomExBiquadFilterType;
 1786 
 1802 typedef enum CriAtomExSilentModeTag {
 1808     CRIATOMEX_SILENT_MODE_NORMAL = 0,
 1809 
 1815     CRIATOMEX_SILENT_MODE_STOP = 1,
 1816 
 1822     CRIATOMEX_SILENT_MODE_VIRTUAL = 2,
 1823 
 1829     CRIATOMEX_SILENT_MODE_VIRTUAL_RETRIGGER = 3,
 1830 
 1831     /* enum size is 4bytes */
 1832     CRIATOMEX_SILENT_MODE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1833 } CriAtomExSilentMode;
 1834 
 1843 typedef enum CriAtomExPanTypeTag {
 1849     CRIATOMEX_PAN_TYPE_PAN3D = 0,
 1855     CRIATOMEX_PAN_TYPE_3D_POS,
 1862     CRIATOMEX_PAN_TYPE_AUTO,
 1863     /* enum size is 4bytes */
 1864     CRIATOMEX_PAN_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1865 } CriAtomExPanType;
 1866 
 1877 typedef enum CriAtomExPanSpeakerTypeTag {
 1884     CRIATOMEX_PAN_SPEAKER_TYPE_4CH = 0,
 1885 
 1891     CRIATOMEX_PAN_SPEAKER_TYPE_5CH = 1,
 1892 
 1898     CRIATOMEX_PAN_SPEAKER_TYPE_6CH = 2,
 1899 
 1905     CRIATOMEX_PAN_SPEAKER_TYPE_7CH = 3,
 1906 
 1907     /* enum size is 4bytes */
 1908     CRIATOMEX_PAN_SPEAKER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1909 } CriAtomExPanSpeakerType;
 1910 
 1919 typedef enum CriAtomExPanAngleTypeTag {
 1930     CRIATOMEX_PAN_ANGLE_TYPE_OFFSET = 0,
 1944     CRIATOMEX_PAN_ANGLE_TYPE_FIX = 1,
 1950     CRIATOMEX_PAN_ANGLE_TYPE_AMBIENCE_MIX = 4,
 1956     CRIATOMEX_PAN_ANGLE_TYPE_AMBIENCE_STRAIGHT = 5,
 1957 
 1958     /* enum size is 4bytes */
 1959     CRIATOMEX_PAN_ANGLE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1960 } CriAtomExPanAngleType;
 1961 
 1970 typedef CriUint32 CriAtomExSpeakerSystem;
 1971 
 1986 #define CRIATOMEX_SPEAKER_SYSTEM_SURROUND_5_1 (0)
 1987 
 2004 #define CRIATOMEX_SPEAKER_SYSTEM_SURROUND_7_1 (1)
 2005 
 2016 typedef CriSint32 CriAtomExBlockIndex;
 2017 
 2026 typedef CriUint32 CriAtomExGameVariableId;
 2027 
 2036 typedef struct CriAtomExGameVariableInfoTag {
 2037     const CriChar8* name;       
 2038     CriAtomExGameVariableId id; 
 2039     CriFloat32 value;           
 2040 } CriAtomExGameVariableInfo;
 2041 
 2049 typedef CriAtomStreamingInfo CriAtomExStreamingInfo;
 2050 
 2057 typedef enum CriAtomExCharacterEncodingTag {
 2058     CRIATOMEX_CHARACTER_ENCODING_UTF8 = 0,  
 2059     CRIATOMEX_CHARACTER_ENCODING_SJIS = 1,  
 2061     /* enum size is 4bytes */
 2062     CRIATOMEX_CHARACTER_ENCODING_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 2063 } CriAtomExCharacterEncoding;
 2064 
 2071 typedef struct CriAtomExResourceUsageTag {
 2072     CriUint32 use_count;    
 2073     CriUint32 limit;        
 2074 } CriAtomExResourceUsage;
 2075 
 2076 /*==========================================================================
 2077  *      CRI AtomEx Debug API
 2078  *=========================================================================*/
 2089 typedef struct CriAtomExDebugResourcesInfoTag {
 2091     CriAtomExResourceUsage virtual_voice_usage;
 2093     CriAtomExResourceUsage sequence_usage;
 2095     CriAtomExResourceUsage sequence_track_usage;
 2097     CriAtomExResourceUsage sequence_track_item_usage;
 2098 } CriAtomExDebugResourcesInfo;
 2099 
 2100 /*==========================================================================
 2101  *      CRI AtomEx HCA-MX API
 2102  *=========================================================================*/
 2118 typedef struct CriAtomExHcaMxConfigTag {
 2128     CriFloat32 server_frequency;
 2129     
 2145     CriSint32 num_mixers;
 2146     
 2154     CriSint32 max_voices;
 2155     
 2169     CriSint32 max_input_channels;
 2170     
 2181     CriSint32 max_sampling_rate;
 2182 
 2196     CriSint32 output_channels;
 2197     
 2207     CriSint32 output_sampling_rate;
 2208     
 2221     CriAtomSoundRendererType sound_renderer_type;
 2222 } CriAtomExHcaMxConfig;
 2223 
 2224 /*==========================================================================
 2225  *      CRI AtomEx ACF API
 2226  *=========================================================================*/
 2234 typedef struct CriAtomExAcfInfoTag {
 2235     const CriChar8* name;                           
 2236     CriUint32 size;                                 
 2237     CriUint32 version;                              
 2238     CriAtomExCharacterEncoding character_encoding;  
 2239     CriSint32 num_dsp_settings;                     
 2240     CriSint32 num_categories;                       
 2241     CriSint32 num_categories_per_playback;          
 2242     CriSint32 num_reacts;                           
 2243     CriSint32 num_aisac_controls;                   
 2244     CriSint32 num_global_aisacs;                    
 2245     CriSint32 num_game_variables;                   
 2246     CriSint32 max_buses_of_dsp_bus_settings;        
 2247     CriSint32 num_buses;                            
 2248     CriSint32 num_voice_limit_groups;               
 2249 } CriAtomExAcfInfo;
 2250 
 2259 typedef CriUint32 CriAtomExAisacControlId;
 2260 
 2269 typedef struct CriAtomExAisacControlInfoTag {
 2270     const CriChar8*         name;       
 2271     CriAtomExAisacControlId id;         
 2272 } CriAtomExAisacControlInfo;
 2273 
 2282 typedef struct CriAtomExAisacInfoTag {
 2283     const CriChar8* name;       
 2284     CriBool default_control_flag;       
 2285     CriFloat32 default_control_value;   
 2286     CriAtomExAisacControlId control_id;         
 2287     const CriChar8* control_name;   
 2288 } CriAtomExAisacInfo;
 2289 
 2298 typedef struct CriAtomExAcfDspSettingInfoTag {
 2299     const CriChar8* name;                                   
 2300     CriUint16 bus_indexes[CRIATOMEXACF_MAX_BUSES];          
 2301     CriUint16 extend_bus_indexes[CRIATOMEXACF_MAX_BUSES];   
 2302     CriUint16 snapshot_start_index;                         
 2303     CriUint8 num_buses;                                     
 2304     CriUint8 num_extend_buses;                              
 2305     CriUint16 num_snapshots;                                
 2306     CriUint16 snapshot_work_size;                           
 2307 } CriAtomExAcfDspSettingInfo;
 2308 
 2315 typedef struct CriAtomExAcfDspSettingSnapshotInfoTag {
 2316     const CriChar8* name;                                   
 2317     CriUint8 num_buses;                                     
 2318     CriUint8 num_extend_buses;                              
 2319     CriUint8 reserved[2];                                   
 2320     CriUint16 bus_indexes[CRIATOMEXACF_MAX_BUSES];          
 2321     CriUint16 extend_bus_indexes[CRIATOMEXACF_MAX_BUSES];   
 2322 } CriAtomExAcfDspSettingSnapshotInfo;
 2323 
 2332 typedef struct CriAtomExAcfDspBusInfoTag {
 2333     const CriChar8* name;                               
 2334     CriFloat32 volume;                                  
 2335     CriFloat32 pan3d_volume;                            
 2336     CriFloat32 pan3d_angle;                             
 2337     CriFloat32 pan3d_distance;                          
 2338     CriUint16 fx_indexes[CRIATOMEXACF_MAX_FXES];        
 2339     CriUint16 bus_link_indexes[CRIATOMEXACF_MAX_BUSES]; 
 2340     CriUint16 bus_no;                                   
 2341     CriUint8 num_fxes;                                  
 2342     CriUint8 num_bus_links;                             
 2343 } CriAtomExAcfDspBusInfo;
 2344 
 2350 typedef enum CriAtomExAcfDspBusLinkTypeTag {
 2351     CRIATOMEXACF_DSP_BUS_LINK_TYPE_PRE_VOLUME,      
 2352     CRIATOMEXACF_DSP_BUS_LINK_TYPE_POST_VOLUME,     
 2353     CRIATOMEXACF_DSP_BUS_LINK_TYPE_POST_PAN,        
 2354     /* enum size is 4bytes */
 2355     CRIATOMEXACF_DSP_BUS_LINK_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 2356 } CriAtomExAcfDspBusLinkType;
 2357 
 2366 typedef struct CriAtomExAcfDspBusLinkInfoTag {
 2367     CriAtomExAcfDspBusLinkType type;    
 2368     CriFloat32 send_level;              
 2369     CriUint16 bus_no;                   
 2370     CriUint16 bus_id;                   
 2371 } CriAtomExAcfDspBusLinkInfo;
 2372 
 2378 typedef enum CriAtomExAcfAisacTypeTag {
 2379     CRIATOMEXACF_AISAC_TYPE_NORMAL,             
 2380     CRIATOMEXACF_AISAC_TYPE_AUTO_MODULATION,    
 2381     /* enum size is 4bytes */
 2382     CRIATOMEXACF_AISAC_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 2383 } CriAtomExAcfAisacType;
 2384 
 2385 
 2397 typedef struct CriAtomExGlobalAisacInfoTag {
 2398     const CriChar8* name;               
 2399     CriUint16 index;                    
 2400     CriUint16 num_graphs;               
 2401     CriAtomExAcfAisacType type;         
 2402     CriFloat32 random_range;            
 2403     CriUint16 control_id;               
 2404     CriUint16 dummy;                    
 2405 } CriAtomExGlobalAisacInfo;
 2406 
 2407 /* Aisacグラフタイプ */
 2415 typedef enum CriAtomExAisacGraphTypeTag {
 2416     CRIATOMEX_AISAC_GRAPH_TYPE_NON = 0,                 
 2417     CRIATOMEX_AISAC_GRAPH_TYPE_VOLUME,                  
 2418     CRIATOMEX_AISAC_GRAPH_TYPE_PITCH,                   
 2419     CRIATOMEX_AISAC_GRAPH_TYPE_BANDPASS_HI,             
 2420     CRIATOMEX_AISAC_GRAPH_TYPE_BANDPASS_LOW,            
 2421     CRIATOMEX_AISAC_GRAPH_TYPE_BIQUAD_FREQ,             
 2422     CRIATOMEX_AISAC_GRAPH_TYPE_BIQUAD_Q,                
 2423     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_0_SEND,              
 2424     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_1_SEND,              
 2425     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_2_SEND,              
 2426     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_3_SEND,              
 2427     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_4_SEND,              
 2428     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_5_SEND,              
 2429     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_6_SEND,              
 2430     CRIATOMEX_AISAC_GRAPH_TYPE_BUS_7_SEND,              
 2431     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_ANGLE,             
 2432     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_VOLUME,            
 2433     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_INTERIOR_DISTANCE, 
 2434     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_CENTER,            
 2435     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_LFE,               
 2436     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_0,                 
 2437     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_1,                 
 2438     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_2,                 
 2439     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_3,                 
 2440     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_4,                 
 2441     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_5,                 
 2442     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_6,                 
 2443     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_7,                 
 2444     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_8,                 
 2445     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_9,                 
 2446     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_10,                
 2447     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_11,                
 2448     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_12,                
 2449     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_13,                
 2450     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_14,                
 2451     CRIATOMEX_AISAC_GRAPH_TYPE_AISAC_15,                
 2452     CRIATOMEX_AISAC_GRAPH_TYPE_PRIORITY,                
 2453     CRIATOMEX_AISAC_GRAPH_TYPE_PRE_DELAY_TIME,          
 2454     CRIATOMEX_AISAC_GRAPH_TYPE_BIQUAD_GAIN,             
 2455     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_MIXDOWN_CENTER,    
 2456     CRIATOMEX_AISAC_GRAPH_TYPE_PAN3D_MIXDOWN_LFE,       
 2457     CRIATOMEX_AISAC_GRAPH_TYPE_EG_ATTACK,               
 2458     CRIATOMEX_AISAC_GRAPH_TYPE_EG_RELEASE,              
 2459     CRIATOMEX_AISAC_GRAPH_TYPE_PLAYBACK_RATIO,          
 2460     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_L,              
 2461     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_R,              
 2462     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_CENTER,         
 2463     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_LFE,            
 2464     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_SL,             
 2465     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_SR,             
 2466     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_EX1,            
 2467     CRIATOMEX_AISAC_GRAPH_TYPE_DRY_SEND_EX2,            
 2468     CRIATOMEX_AISAC_GRAPH_TYPE_PAN_SPREAD,              
 2470     /* enum size is 4bytes */
 2471     CRIATOMEX_AISAC_GRAPH_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 2472 } CriAtomExAisacGraphType;
 2473 
 2482 typedef struct CriAtomExAisacGraphInfoTag {
 2483     CriAtomExAisacGraphType type;       
 2484 } CriAtomExAisacGraphInfo;
 2485 
 2495 typedef struct CriAtomExSelectorInfoTag {
 2496     const CriChar8* name;               
 2497     CriUint16 index;                    
 2498     CriUint16 num_labels;               
 2499     CriUint16 global_label_index;       
 2500 } CriAtomExSelectorInfo;
 2501 
 2510 typedef struct CriAtomExSelectorLabelInfoTag {
 2511     const CriChar8* selector_name;          
 2512     const CriChar8* label_name;             
 2513 } CriAtomExSelectorLabelInfo;
 2514 
 2515 /*==========================================================================
 2516  *      CRI AtomEx Category API
 2517  *=========================================================================*/
 2526 typedef CriUint32 CriAtomExCategoryId;
 2527 
 2534 #define CRIATOMEXCATEGORY_MAX_CATEGORIES_PER_PLAYBACK   (16)
 2535 
 2544 typedef struct CriAtomExCategoryInfoTag {
 2545     CriUint32 group_no;         
 2546     CriUint32 id;               
 2547     const CriChar8* name;       
 2548     CriUint32 num_cue_limits;   
 2549     CriFloat32 volume;          
 2550 } CriAtomExCategoryInfo;
 2551 
 2552 /*==========================================================================
 2553  *      CRI AtomEx ACB API
 2554  *=========================================================================*/
 2555 struct CriAtomExAcbTag;
 2556 typedef struct CriAtomExAcbTag CriAtomExAcbObj;
 2566 typedef CriAtomExAcbObj *CriAtomExAcbHn;
 2567 
 2576 typedef CriSint32 CriAtomExCueId;
 2577 
 2588 typedef CriSint32 CriAtomExCueIndex;
 2589 
 2597 typedef struct CriAtomExAcbInfoTag {
 2598     const CriChar8* name;                           
 2599     CriUint32 size;                                 
 2600     CriUint32 version;                              
 2601     CriAtomExCharacterEncoding character_encoding;  
 2602     CriFloat32 volume;                              
 2603     CriSint32 num_cues;                             
 2604 } CriAtomExAcbInfo;
 2605 
 2613 /* Waveform information */
 2614 typedef struct CriAtomExWaveformInfoTag {
 2615     CriAtomExWaveId wave_id;    
 2616     CriAtomExFormat format;     
 2617     CriSint32 sampling_rate;    
 2618     CriSint32 num_channels;     
 2619     CriSint64 num_samples;      
 2620     CriBool streaming_flag;     
 2621     CriUint32 reserved[1];      
 2622 } CriAtomExWaveformInfo;
 2623 
 2629 typedef enum CriAtomExAcbCueTypeTag {
 2630     CRIATOMEXACB_CUE_TYPE_POLYPHONIC = (0),     
 2631     CRIATOMEXACB_CUE_TYPE_SEQUENTIAL,           
 2632     CRIATOMEXACB_CUE_TYPE_SHUFFLE,              
 2633     CRIATOMEXACB_CUE_TYPE_RANDOM,               
 2634     CRIATOMEXACB_CUE_TYPE_RANDOM_NO_REPEAT,     
 2635     CRIATOMEXACB_CUE_TYPE_SWITCH_GAME_VARIABLE, 
 2636     CRIATOMEXACB_CUE_TYPE_COMBO_SEQUENTIAL,     
 2637     CRIATOMEXACB_CUE_TYPE_SWITCH_SELECTOR,      
 2638     CRIATOMEXACB_CUE_TYPE_TRACK_TRANSITION_BY_SELECTOR,     
 2639     /* enum size is 4bytes */
 2640     CRIATOMEXACB_CUE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 2641 } CriAtomExAcbCueType;
 2642 
 2650 typedef struct CriAtomExCuePos3dInfoTag {
 2651     CriFloat32 cone_inside_angle;       
 2652     CriFloat32 cone_outside_angle;      
 2653     CriFloat32 min_distance;            
 2654     CriFloat32 max_distance;            
 2655     CriFloat32 source_radius;   
 2656     CriFloat32 interior_distance;       
 2657     CriFloat32 doppler_factor;          
 2658     CriUint16 distance_aisac_control;   
 2659     CriUint16 listener_base_angle_aisac_control;        
 2660     CriUint16 source_base_angle_aisac_control;      
 2661     CriUint16 reserved[1];              
 2662 } CriAtomExCuePos3dInfo;
 2663 
 2671 typedef struct CriAtomExCueInfoTag {
 2672     CriAtomExCueId id;                  
 2673     CriAtomExAcbCueType type;           
 2674     const CriChar8* name;               
 2675     const CriChar8* user_data;          
 2676     CriSint64 length;                   
 2677     CriUint16 categories[CRIATOMEXCATEGORY_MAX_CATEGORIES_PER_PLAYBACK];            
 2678     CriSint16 num_limits;               
 2679     CriUint16 num_blocks;               
 2680     CriUint16 num_tracks;               
 2681     CriUint16 reserved[1];              
 2682     CriUint8 priority;                  
 2683     CriUint8 header_visibility;         
 2684     CriUint8 ignore_player_parameter;   
 2685     CriUint8 probability;               
 2686     CriAtomExCuePos3dInfo pos3d_info;   
 2687     CriAtomExGameVariableInfo game_variable_info;   
 2688 } CriAtomExCueInfo;
 2689 
 2704 typedef CriBool (CRIAPI *CriAtomExAcbHandleCbFunc)(void *obj, CriAtomExAcbHn acb_hn);
 2705 
 2725 typedef void (CRIAPI *CriAtomExAcbDetectionInGamePreviewDataCbFunc)(
 2726     void *obj, const CriChar8* acb_name);
 2727 
 2728 /*==========================================================================
 2729  *      CRI AtomEx Voice Pool API
 2730  *=========================================================================*/
 2731 struct CriAtomExVoicePoolTag;
 2732 typedef struct CriAtomExVoicePoolTag CriAtomExVoicePoolObj;
 2744 typedef struct CriAtomExVoicePoolTag *CriAtomExVoicePoolHn;
 2745 
 2763 typedef CriUint32 CriAtomExVoicePoolIdentifier;
 2764 
 2777 typedef struct CriAtomExStandardVoicePoolConfigTag {
 2778     CriAtomExVoicePoolIdentifier identifier;    
 2779     CriSint32 num_voices;                       
 2780     CriAtomStandardPlayerConfig player_config;  
 2781 } CriAtomExStandardVoicePoolConfig;
 2782 
 2795 typedef struct CriAtomExAdxVoicePoolConfigTag {
 2796     CriAtomExVoicePoolIdentifier identifier;    
 2797     CriSint32 num_voices;                       
 2798     CriAtomAdxPlayerConfig player_config;       
 2799 } CriAtomExAdxVoicePoolConfig;
 2800 
 2813 typedef struct CriAtomExHcaVoicePoolConfigTag {
 2814     CriAtomExVoicePoolIdentifier identifier;    
 2815     CriSint32 num_voices;                       
 2816     CriAtomHcaPlayerConfig player_config;       
 2817 } CriAtomExHcaVoicePoolConfig;
 2818 
 2831 typedef struct CriAtomExHcaMxVoicePoolConfigTag {
 2832     CriAtomExVoicePoolIdentifier identifier;    
 2833     CriSint32 num_voices;                       
 2834     CriAtomHcaMxPlayerConfig player_config;     
 2835 } CriAtomExHcaMxVoicePoolConfig;
 2836 
 2849 typedef struct CriAtomExWaveVoicePoolConfigTag {
 2850     CriAtomExVoicePoolIdentifier identifier;    
 2851     CriSint32 num_voices;                       
 2852     CriAtomWavePlayerConfig player_config;      
 2853 } CriAtomExWaveVoicePoolConfig;
 2854 
 2867 typedef struct CriAtomExAiffVoicePoolConfigTag {
 2868     CriAtomExVoicePoolIdentifier identifier;    
 2869     CriSint32 num_voices;                       
 2870     CriAtomAiffPlayerConfig player_config;      
 2871 } CriAtomExAiffVoicePoolConfig;
 2872 
 2885 typedef struct CriAtomExRawPcmVoicePoolConfigTag {
 2886     CriAtomExVoicePoolIdentifier identifier;    
 2887     CriSint32 num_voices;                       
 2888     CriAtomRawPcmPlayerConfig player_config;        
 2889 } CriAtomExRawPcmVoicePoolConfig;
 2890 
 2891 /*==========================================================================
 2892  *      CRI AtomEx Player API
 2893  *=========================================================================*/
 2902 typedef enum CriAtomExVoiceAllocationMethodTag {
 2903     CRIATOMEX_ALLOCATE_VOICE_ONCE = 0,      
 2904     CRIATOMEX_RETRY_VOICE_ALLOCATION,       
 2905     CRIATOMEX_VOICE_ALLOCATION_METHOD_IS_4BYTE = 0x7FFFFFFF
 2906 } CriAtomExVoiceAllocationMethod;
 2907 
 2924 typedef struct CriAtomExPlayerConfigTag {
 2965     CriAtomExVoiceAllocationMethod voice_allocation_method;
 2966     
 2984     CriSint32 max_path_strings;
 2985     
 3005     CriSint32 max_path;
 3006     
 3015     CriUint8 max_aisacs;
 3016 
 3028     CriBool updates_time;
 3029 
 3045     CriBool enable_audio_synced_timer;
 3046 } CriAtomExPlayerConfig;
 3047 
 3048 struct CriAtomExPlayerTag;
 3049 typedef struct CriAtomExPlayerTag CriAtomExPlayerObj;
 3062 typedef CriAtomExPlayerObj *CriAtomExPlayerHn;
 3063 
 3106 typedef enum CriAtomExPlayerStatusTag {
 3107     CRIATOMEXPLAYER_STATUS_STOP = 0,        
 3108     CRIATOMEXPLAYER_STATUS_PREP,            
 3109     CRIATOMEXPLAYER_STATUS_PLAYING,         
 3110     CRIATOMEXPLAYER_STATUS_PLAYEND,         
 3111     CRIATOMEXPLAYER_STATUS_ERROR,           
 3112     CRIATOMEXPLAYER_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 3113 } CriAtomExPlayerStatus;
 3114 
 3123 typedef enum CriAtomExVoiceControlMethodTag {
 3124     CRIATOMEX_PREFER_LAST = 0,              
 3125     CRIATOMEX_PREFER_FIRST = 1,             
 3126     CRIATOMEX_PREFER_DATA = 2,              
 3127     CRIATOMEX_CONTROL_METHOD_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 3128 } CriAtomExVoiceControlMethod;
 3129 
 3138 typedef enum CriAtomExSpeakerIdTag {
 3139     CRIATOMEX_SPEAKER_FRONT_LEFT = 0,           
 3140     CRIATOMEX_SPEAKER_FRONT_RIGHT = 1,          
 3141     CRIATOMEX_SPEAKER_FRONT_CENTER = 2,         
 3142     CRIATOMEX_SPEAKER_LOW_FREQUENCY = 3,        
 3143     CRIATOMEX_SPEAKER_SURROUND_LEFT = 4,        
 3144     CRIATOMEX_SPEAKER_SURROUND_RIGHT = 5,       
 3145     CRIATOMEX_SPEAKER_SURROUND_BACK_LEFT = 6,   
 3146     CRIATOMEX_SPEAKER_SURROUND_BACK_RIGHT = 7,  
 3148     /* enum size is 4bytes */
 3149     CRIATOMEX_SPEAKER_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 3150 } CriAtomExSpeakerId;
 3151 
 3162 typedef CriUint32 CriAtomExPlaybackId;
 3163 
 3181 typedef void (CRIAPI *CriAtomExPlayerCbFunc)(void *obj, CriAtomExPlayerHn player);
 3182 
 3255 typedef void (CRIAPI *CriAtomExPlayerDataRequestCbFunc)(
 3256     void *obj, CriAtomExPlaybackId id, CriAtomPlayerHn player);
 3257 
 3311 typedef void (CRIAPI *CriAtomExPlayerFilterCbFunc)(
 3312     void *obj, CriAtomExPlaybackId id, CriAtomPcmFormat format,
 3313     CriSint32 num_channels, CriSint32 num_samples, void *data[]);
 3314 
 3340 typedef void (CRIAPI *CriAtomExPlayerBlockTransitionCbFunc)(
 3341     void *obj, CriAtomExPlaybackId id, CriAtomExBlockIndex index);
 3342 
 3347 typedef struct CriAtomExPlaybackTrackInfoTag {
 3348     CriAtomExPlaybackId id;             
 3349     CriAtomExAcbCueType sequence_type;  
 3350     CriAtomExPlayerHn player;           
 3351     CriUint16 track_no;                 
 3352     CriUint16 reserved[1];              
 3353 } CriAtomExPlaybackTrackInfo;
 3354 
 3377 typedef void (CRIAPI *CriAtomExPlayerPlaybackTrackInfoNotificationCbFunc)(
 3378     void *obj, const CriAtomExPlaybackTrackInfo* info);
 3379 
 3389 typedef enum CriAtomExParameterIdTag {
 3390     CRIATOMEX_PARAMETER_ID_VOLUME                   =  0,   
 3391     CRIATOMEX_PARAMETER_ID_PITCH                    =  1,   
 3392     CRIATOMEX_PARAMETER_ID_PAN3D_ANGLE              =  2,   
 3393     CRIATOMEX_PARAMETER_ID_PAN3D_DISTANCE           =  3,   
 3394     CRIATOMEX_PARAMETER_ID_PAN3D_VOLUME             =  4,   
 3395     CRIATOMEX_PARAMETER_ID_PAN_TYPE                 =  5,   
 3396     CRIATOMEX_PARAMETER_ID_PAN_SPEAKER_TYPE         =  6,   
 3397     CRIATOMEX_PARAMETER_ID_PAN_CH0                  =  7,   
 3398     CRIATOMEX_PARAMETER_ID_PAN_CH1                  =  8,   
 3399     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_0         =  9,   
 3400     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_1         = 10,   
 3401     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_2         = 11,   
 3402     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_3         = 12,   
 3403     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_4         = 13,   
 3404     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_5         = 14,   
 3405     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_6         = 15,   
 3406     CRIATOMEX_PARAMETER_ID_BUS_SEND_LEVEL_7         = 16,   
 3407     CRIATOMEX_PARAMETER_ID_BANDPASS_FILTER_COF_LOW  = 17,   
 3408     CRIATOMEX_PARAMETER_ID_BANDPASS_FILTER_COF_HIGH = 18,   
 3409     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_TYPE       = 19,   
 3410     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_FREQ       = 20,   
 3411     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_Q          = 21,   
 3412     CRIATOMEX_PARAMETER_ID_BIQUAD_FILTER_GAIN       = 22,   
 3413     CRIATOMEX_PARAMETER_ID_ENVELOPE_ATTACK_TIME     = 23,   
 3414     CRIATOMEX_PARAMETER_ID_ENVELOPE_HOLD_TIME       = 24,   
 3415     CRIATOMEX_PARAMETER_ID_ENVELOPE_DECAY_TIME      = 25,   
 3416     CRIATOMEX_PARAMETER_ID_ENVELOPE_RELEASE_TIME    = 26,   
 3417     CRIATOMEX_PARAMETER_ID_ENVELOPE_SUSTAIN_LEVEL   = 27,   
 3418     CRIATOMEX_PARAMETER_ID_START_TIME               = 28,   
 3419     CRIATOMEX_PARAMETER_ID_PRIORITY                 = 31,   
 3420     CRIATOMEX_PARAMETER_ID_SILENT_MODE              = 32,   
 3421     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_0          = 33,   
 3422     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_1          = 34,   
 3423     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_2          = 35,   
 3424     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_3          = 36,   
 3425     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_4          = 37,   
 3426     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_5          = 38,   
 3427     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_6          = 39,   
 3428     CRIATOMEX_PARAMETER_ID_DSP_PARAMETER_7          = 40,   
 3430     /* enum size is 4bytes */
 3431     CRIATOMEX_PARAMETER_ID_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 3432 } CriAtomExParameterId;
 3433 
 3434 /*==========================================================================
 3435  *      CRI AtomEx Sequencer API
 3436  *=========================================================================*/
 3444 typedef enum CriAtomExSequecneEventTypeTag {
 3450     CRIATOMEX_SEQUENCE_EVENT_TYPE_CALLBACK = 0,
 3451         
 3452     /* enum size is 4bytes */
 3453     CRIATOMEX_SEQUENCE_EVENT_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 3454 } CriAtomExSequecneEventType;
 3455 
 3460 typedef struct CriAtomExSequenceEventInfoTag {
 3461     CriUint64 position;                 
 3462     CriAtomExPlayerHn player;           
 3463     const CriChar8* string;             
 3464     CriAtomExPlaybackId id;             
 3465     CriAtomExSequecneEventType type;    
 3466     CriUint32 value;                    
 3467     CriUint32 reserved[1];              
 3468 } CriAtomExSequenceEventInfo;
 3469 
 3487 typedef CriSint32 (CRIAPI *CriAtomExSequencerEventCbFunc)(void* obj, const CriAtomExSequenceEventInfo* info);
 3488 
 3489 /*==========================================================================
 3490  *      CRI AtomEx Beat Sync API
 3491  *=========================================================================*/
 3496 typedef struct CriAtomExBeatSyncInfoTag {
 3497     CriAtomExPlayerHn player;           
 3498     CriAtomExPlaybackId playback_id;    
 3499     CriUint32 bar_count;                
 3500     CriUint32 beat_count;               
 3501     CriFloat32 beat_progress;           
 3502     CriFloat32 bpm;                     
 3503 } CriAtomExBeatSyncInfo;
 3504 
 3522 typedef CriSint32 (CRIAPI *CriAtomExBeatSyncCbFunc)(void* obj, const CriAtomExBeatSyncInfo* info);
 3523 
 3524 /*==========================================================================
 3525  *      CRI AtomEx Playback API
 3526  *=========================================================================*/
 3554 typedef enum CriAtomExPlaybackStatusTag {
 3555     CRIATOMEXPLAYBACK_STATUS_PREP = 1,  
 3556     CRIATOMEXPLAYBACK_STATUS_PLAYING,   
 3557     CRIATOMEXPLAYBACK_STATUS_REMOVED,   
 3558     CRIATOMEXPLAYBACK_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 3559 } CriAtomExPlaybackStatus;
 3560 
 3568 typedef enum CriAtomExSourceTypeTag {
 3569     CRIATOMEX_SOURCE_TYPE_NONE = 0,             
 3570     CRIATOMEX_SOURCE_TYPE_CUE_ID,               
 3571     CRIATOMEX_SOURCE_TYPE_CUE_NAME,             
 3572     CRIATOMEX_SOURCE_TYPE_CUE_INDEX,            
 3573     CRIATOMEX_SOURCE_TYPE_DATA,                 
 3574     CRIATOMEX_SOURCE_TYPE_FILE,                 
 3575     CRIATOMEX_SOURCE_TYPE_CONTENT_ID,           
 3576     CRIATOMEX_SOURCE_TYPE_WAVE_ID,              
 3577     CRIATOMEX_SOURCE_TYPE_VIBRATION_ID,         
 3578     CRIATOMEX_SOURCE_TYPE_SOUND_GENERATOR_ID,   
 3579     CRIATOMEX_SOURCE_TYPE_RAW_PCM_FLOAT_ID,     
 3580     CRIATOMEX_SOURCE_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 3581 } CriAtomExSourceType;
 3582 
 3611 typedef struct CriAtomExSourceInfoTag {
 3613     CriAtomExSourceType type;
 3614 
 3616     union CriAtomExSourceInfoInfoTag {
 3618         struct CriAtomExSourceInfoCueIdTag {
 3620             CriAtomExAcbHn acb;
 3622             CriAtomExCueId id;
 3623         } cue_id;
 3625         struct CriAtomExSourceInfoCueNameTag {
 3627             CriAtomExAcbHn acb;
 3629             const CriChar8 *name;
 3630         } cue_name;
 3632         struct CriAtomExSourceInfoCueIndexTag {
 3634             CriAtomExAcbHn acb;
 3636             CriAtomExCueIndex index;
 3637         } cue_index;
 3639         struct CriAtomExSourceInfoDataTag {
 3641             void *buffer;
 3643             CriSint32 size;
 3644         } data;
 3646         struct CriAtomExSourceInfoFileTag {
 3648             CriFsBinderHn binder;
 3650             const CriChar8 *path;
 3651         } file;
 3653         struct CriAtomExSourceInfoContentIdTag {
 3655             CriFsBinderHn binder;
 3657             CriSint32 id;
 3658         } content_id;
 3660         struct CriAtomExSourceInfoWaveIdTag {
 3662             CriAtomAwbHn awb;
 3664             CriAtomExWaveId id;
 3665         } wave_id;
 3667         struct CriAtomExSourceInfoVibrationIdTag {
 3669             CriAtomExVibrationId id;
 3670         } vibration_id;
 3671         struct CriAtomExSourceInfoVibrationNameTag {
 3673             const CriChar8 *name;
 3674         } vibration_name;
 3675         /* サウンドジェネレータID情報 */
 3676         struct CriAtomExSourceInfoSoundGeneratorParameterTag {
 3678             CriFloat32 frequency;
 3680             CriAtomWaveType wave_type;
 3681         } sound_generator_parameter;
 3682         /* RawPCM FloatID情報 */
 3683         struct CriAtomExSourceInfoRawPcmFloatParameterTag {
 3685             CriFloat32 *data;
 3687             CriUint32 total_samples;
 3688         } raw_pcm_float_parameter;
 3689     } info;
 3690 } CriAtomExSourceInfo;
 3691 
 3692 /*==========================================================================
 3693  *      CRI AtomEx Fader API
 3694  *=========================================================================*/
 3706 typedef struct CriAtomExFaderConfigTag {
 3707     CriSint32 reserved;                 
 3708 } CriAtomExFaderConfig;
 3709 
 3710 /*==========================================================================
 3711  *      CRI AtomEx D-BAS API
 3712  *=========================================================================*/
 3723 typedef CriAtomDbasId CriAtomExDbasId;
 3724 
 3736 typedef CriAtomDbasConfig CriAtomExDbasConfig;
 3737 
 3738 /* ========================================================================*/
 3739 /*       CRI AtomEx Streaming Cache API                                      */
 3740 /* ========================================================================*/
 3749 typedef CriAtomStreamingCacheId CriAtomExStreamingCacheId;
 3750 
 3765 typedef CriAtomStreamingCacheConfig CriAtomExStreamingCacheConfig;
 3766 
 3767 /*==========================================================================
 3768  *      CRI AtomEx 3D API
 3769  *=========================================================================*/
 3777 typedef struct CriAtomExVectorTag {
 3778     CriFloat32 x;   
 3779     CriFloat32 y;   
 3780     CriFloat32 z;   
 3781 } CriAtomExVector;
 3782 
 3793 typedef struct CriAtomEx3dSourceConfigTag {
 3811     CriBool enable_voice_priority_decay;
 3812 } CriAtomEx3dSourceConfig;
 3813 
 3824 typedef struct CriAtomEx3dSourceListConfigTag {
 3825     CriSint32 reserved;
 3826 } CriAtomEx3dSourceListConfig;
 3827 
 3838 typedef struct CriAtomEx3dListenerConfigTag {
 3839     CriSint32 reserved;
 3840 } CriAtomEx3dListenerConfig;
 3841 
 3842 struct CriAtomEx3dSourceObjTag;
 3843 typedef struct CriAtomEx3dSourceObjTag CriAtomEx3dSourceObj;
 3854 typedef CriAtomEx3dSourceObj *CriAtomEx3dSourceHn;
 3855 
 3856 struct CriAtomEx3dSourceListObjTag;
 3857 typedef struct CriAtomEx3dSourceListObjTag CriAtomEx3dSourceListObj;
 3866 typedef CriAtomEx3dSourceListObj *CriAtomEx3dSourceListHn;
 3867 
 3868 struct CriAtomEx3dListenerObjTag;
 3869 typedef struct CriAtomEx3dListenerObjTag CriAtomEx3dListenerObj;
 3880 typedef CriAtomEx3dListenerObj *CriAtomEx3dListenerHn;
 3881 
 3882 /*==========================================================================
 3883  *      CRI AtomEx DSP API
 3884  *=========================================================================*/
 3885 
 3897 typedef struct CriAtomExDspPitchShifterConfigTag {
 3903     CriSint32 num_dsp;
 3904     
 3911     CriSint32 max_channels;
 3912     
 3919     CriSint32 max_sampling_rate;
 3920     
 3927     CriAtomDspPitchShifterConfig specific;
 3928 } CriAtomExDspPitchShifterConfig;
 3929 
 3941 typedef struct CriAtomExDspTimeStretchConfigTag {
 3947     CriSint32 num_dsp;
 3948     
 3955     CriSint32 max_channels;
 3956     
 3963     CriSint32 max_sampling_rate;
 3964     
 3971     CriAtomDspTimeStretchConfig specific;
 3972 } CriAtomExDspTimeStretchConfig;
 3973 
 3974 /*==========================================================================
 3975  *      CRI AtomEx Tween API
 3976  *=========================================================================*/
 3984 typedef enum CriAtomExTweenParameterTypeTag {
 3990     CRIATOMEX_PARAMETER_TYPE_BASIC,
 3991 
 3997     CRIATOMEX_PARAMETER_TYPE_AISAC,
 3998 
 3999     /* enum size is 4bytes */
 4000     CRIATOMEX_PARAMETER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 4001 } CriAtomExTweenParameterType;
 4002 
 4013 typedef struct CriAtomExTweenConfigTag {
 4019     union CriAtomExTweenConfigParameterIdTag {
 4025         CriAtomExParameterId parameter_id;
 4026 
 4032         CriAtomExAisacControlId aisac_control_id;
 4033     } id;
 4034 
 4040     CriAtomExTweenParameterType parameter_type;
 4041 } CriAtomExTweenConfig;
 4042 
 4057 typedef struct CriAtomExTweenTag *CriAtomExTweenHn;
 4058 
 4059 /*==========================================================================
 4060  *      CRI AtomEx Voice Event API
 4061  *=========================================================================*/
 4070 typedef enum CriAtomExVoiceEventTag {
 4076     CRIATOMEX_VOICE_EVENT_ALLOCATE = 0,
 4077     
 4088     CRIATOMEX_VOICE_EVENT_ALLOCATE_AND_REMOVE,
 4089     
 4099     CRIATOMEX_VOICE_EVENT_ALLOCATE_AND_REMOVE_IN_GROUP,
 4100     
 4117     CRIATOMEX_VOICE_EVENT_ALOOCATE_AND_REMOVE_TWO,
 4118     
 4126     CRIATOMEX_VOICE_EVENT_REJECT,
 4127     
 4135     CRIATOMEX_VOICE_EVENT_REJECT_BY_GROUP_LIMIT,
 4136     
 4143     CRIATOMEX_VOICE_EVENT_REMOVE,
 4144     
 4145     CRIATOMEX_VOICE_EVENT_ENUM_IS_4BYTE = 0x7FFFFFFF
 4146 } CriAtomExVoiceEvent;
 4147 
 4156 typedef struct CriAtomExVoiceInfoDetailTag {
 4157     CriAtomExPlaybackId playback_id;                    
 4158     CriAtomExSourceInfo cue_info;                       
 4159     CriAtomExSourceInfo wave_info;                      
 4160     CriSint32 group_no;                                 
 4161     CriSint32 priority;                                 
 4162     CriAtomExVoiceControlMethod control_method;         
 4163     CriAtomExVoiceAllocationMethod allocation_method;   
 4164     CriUint32 identifier;                               
 4165     CriAtomExFormat format;                             
 4166     CriSint32 sampling_rate;                            
 4167     CriSint32 num_channels;                             
 4168     CriBool streaming_flag;                             
 4169     CriAtomPlayerHn atom_player;                        
 4170 } CriAtomExVoiceInfoDetail;
 4171 
 4235 typedef void (CRIAPI *CriAtomExVoiceEventCbFunc)(
 4236     void *obj, CriAtomExVoiceEvent voice_event,
 4237     const CriAtomExVoiceInfoDetail *request,
 4238     const CriAtomExVoiceInfoDetail *removed,
 4239     const CriAtomExVoiceInfoDetail *removed_in_group);
 4240 
 4255 typedef void (CRIAPI *CriAtomExVoiceInfoCbFunc)(
 4256     void *obj, const CriAtomExVoiceInfoDetail *voice_info);
 4257 
 4266 typedef struct CriAtomExMonitoringVoiceStopInfoTag {
 4267     CriAtomExPlaybackId playback_id;        
 4268     CriAtomVoiceStopReason reason;          
 4269     CriAtomPlayerHn atom_player;            
 4270 } CriAtomExMonitoringVoiceStopInfo;
 4271 
 4285 typedef void (CRIAPI *CriAtomExMonitoringVoiceStopCbFunc)(void *obj, CriAtomExMonitoringVoiceStopInfo* voice_stop);
 4286 
 4287 
 4288 /*==========================================================================
 4289  *      CRI AtomEx Cue Link Callback API
 4290  *=========================================================================*/
 4295 typedef enum CriAtomExCueLinkTypeTag {
 4296     CRIATOMEX_CUELINK_TYPE_STATIC       =  0,   
 4297     CRIATOMEX_CUELINK_TYPE_DYNAMIC      =  1,   
 4299     /* enum size is 4bytes */
 4300     CRIATOMEX_CUELINK_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 4301 } CriAtomExCueLinkType;
 4302 
 4307 typedef struct CriAtomExCueLinkInfoTag {
 4308     CriAtomExPlayerHn player;           
 4309     CriAtomExPlaybackId base_id;        
 4310     CriAtomExSourceInfo base_cue;       
 4311     CriAtomExPlaybackId target_id;      
 4312     CriAtomExSourceInfo target_cue;     
 4313     CriAtomExCueLinkType link_type;     
 4314 } CriAtomExCueLinkInfo;
 4315 
 4333 typedef CriSint32 (CRIAPI *CriAtomExCueLinkCbFunc)(void* obj, const CriAtomExCueLinkInfo* info);
 4334 
 4335 /*==========================================================================
 4336  *      CRI AtomEx Playback Cancel Callback API
 4337  *=========================================================================*/
 4345 typedef enum CriAtomExPlaybackCancelTypeTag {
 4351     CRIATOMEX_PLAYBACK_CANCEL_TYPE_CUE_LIMIT = 0,
 4352 
 4358     CRIATOMEX_PLAYBACK_CANCEL_TYPE_CATEGORY_CUE_LIMIT,
 4359     
 4365     CRIATOMEX_PLAYBACK_CANCEL_TYPE_PROBABILITY,
 4366 
 4372     CRIATOMEX_PLAYBACK_CANCEL_TYPE_STOP_BY_CUE_LIMIT,
 4373         
 4379     CRIATOMEX_PLAYBACK_CANCEL_TYPE_SWITCH,
 4380 
 4381 
 4382     CRIATOMEX_PLAYBACK_CANCEL_TYPE_ENUM_IS_4BYTE = 0x7FFFFFFF
 4383 } CriAtomExPlaybackCancelType;
 4384 
 4389 typedef struct CriAtomExPlaybackCancelInfoTag {
 4390     CriAtomExPlaybackCancelType type;   
 4391     CriAtomExPlayerHn player;           
 4392     CriAtomExPlaybackId id;             
 4393 } CriAtomExPlaybackCancelInfo;
 4394 
 4412 typedef void (CRIAPI *CriAtomExPlaybackCancelCbFunc)(void *obj, const CriAtomExPlaybackCancelInfo* info);
 4413 
 4414 /*==========================================================================
 4415  *      CRI AtomEx Track Transition Callback API
 4416  *=========================================================================*/
 4421 typedef struct CriAtomExTrackTransitionBySelectorInfoTag {
 4422     CriAtomExPlayerHn player;           
 4423     CriAtomExPlaybackId id;             
 4424     const CriChar8* selector;           
 4425     const CriChar8* label;              
 4426 } CriAtomExTrackTransitionBySelectorInfo;
 4427 
 4446 typedef void (CRIAPI *CriAtomExTrackTransitionBySelectorCbFunc)(void *obj, const CriAtomExTrackTransitionBySelectorInfo* info);
 4447 
 4448 
 4449 /*==========================================================================
 4450  *      CRI AtomEx Sound Object API
 4451  *=========================================================================*/
 4468 typedef struct CriAtomExSoundObjectConfigTag {
 4480     CriBool enable_voice_limit_scope;
 4492     CriBool enable_category_cue_limit_scope;
 4493 } CriAtomExSoundObjectConfig;
 4494 
 4495 struct CriAtomExSoundObjectTag;
 4496 typedef struct CriAtomExSoundObjectTag CriAtomExSoundObjectObj;
 4520 typedef CriAtomExSoundObjectObj *CriAtomExSoundObjectHn;
 4521 
 4522 /***************************************************************************
 4523  *      変数宣言
 4524  *      Prototype Variables
 4525  ***************************************************************************/
 4526 
 4527 /***************************************************************************
 4528  *      関数宣言
 4529  *      Prototype Functions
 4530  ***************************************************************************/
 4531 #ifdef __cplusplus
 4532 extern "C" {
 4533 #endif
 4534 
 4535 /*==========================================================================
 4536  *      CRI AtomEx API
 4537  *=========================================================================*/
 4567 CriSint32 CRIAPI criAtomEx_CalculateWorkSize(const CriAtomExConfig *config);
 4568 
 4730 CriBool CRIAPI criAtomEx_Initialize(
 4731     const CriAtomExConfig *config, void *work, CriSint32 work_size);
 4732 
 4742 void CRIAPI criAtomEx_Finalize(void);
 4743 
 4754 CriBool CRIAPI criAtomEx_IsInitialized(void);
 4755 
 4786 void CRIAPI criAtomEx_ExecuteMain(void);
 4787 
 4808 void CRIAPI criAtomEx_ExecuteAudioProcess(void);
 4809 
 4843 void CRIAPI criAtomEx_Lock(void);
 4844 
 4852 void CRIAPI criAtomEx_Unlock(void);
 4853 
 4862 CriUint64 CRIAPI criAtomEx_GetTimeMicro(void);
 4863 
 4874 void CRIAPI criAtomEx_ResetTimer(void);
 4875 
 4897 void CRIAPI criAtomEx_PauseTimer(CriBool sw);
 4898 
 4964 void CRIAPI criAtomEx_SetConfigForWorkSizeCalculation(const CriAtomExConfig *config);
 4965 
 4988 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForRegisterAcfData(
 4989     void *acf_data, CriSint32 acf_data_size);
 4990 
 5025 void CRIAPI criAtomEx_RegisterAcfData(
 5026     void *acf_data, CriSint32 acf_data_size, void *work, CriSint32 work_size);
 5027 
 5053 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForRegisterAcfFile(
 5054     CriFsBinderHn binder, const CriChar8 *path);
 5055 
 5072 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForRegisterAcfFileById(
 5073     CriFsBinderHn binder, CriUint16 id);
 5074 
 5128 CriBool CRIAPI criAtomEx_RegisterAcfFile(
 5129     CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size);
 5130 
 5150 CriBool CRIAPI criAtomEx_RegisterAcfFileById(
 5151     CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size);
 5152 
 5165 void CRIAPI criAtomEx_UnregisterAcf(void);
 5166 
 5178 CriUint32 CRIAPI criAtomEx_GetAcfVersion(
 5179     void *acf_data, CriSint32 acf_data_size, CriBool *flag);
 5180 
 5212 CriUint32 CRIAPI criAtomEx_GetAcfVersionFromFile(
 5213     CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size, CriBool *flag);
 5214 
 5232 CriUint32 CRIAPI criAtomEx_GetAcfVersionFromFileById(
 5233     CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size, CriBool *flag);
 5234 
 5245 void CRIAPI criAtomEx_GetSupportedAcfVersion(
 5246     CriUint32 *version_low, CriUint32 *version_high);
 5247 
 5273 CriBool CRIAPI criAtomEx_AnalyzeAudioHeader(
 5274     const void *buffer, CriSint32 buffer_size, CriAtomExFormatInfo *info);
 5275 
 5287 void CRIAPI criAtomEx_SetRandomSeed(CriUint32 seed);
 5288 
 5318 CriBool CRIAPI criAtomEx_IsDataPlaying(void *buffer, CriSint32 size);
 5319 
 5338 #define criAtomEx_GetStreamingInfo(streaming_info) \
 5339     criAtom_GetStreamingInfo(streaming_info)
 5340 
 5364 #define criAtomEx_SetFreeTimeBufferingFlagForDefaultDevice(flag) \
 5365     criAtom_SetFreeTimeBufferingFlagForDefaultDevice(flag)
 5366 
 5386 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForDspBusSetting(
 5387     const CriChar8 *setting);
 5388 
 5421 CriSint32 CRIAPI criAtomEx_CalculateWorkSizeForDspBusSettingFromAcfData(
 5422     void *acf_data, CriSint32 acf_buffer_size, const CriChar8 *setting_name);
 5423 
 5453 void CRIAPI criAtomEx_AttachDspBusSetting(
 5454     const CriChar8 *setting, void *work, CriSint32 work_size);
 5455 
 5472 void CRIAPI criAtomEx_DetachDspBusSetting(void);
 5473 
 5484 void CRIAPI criAtomEx_ApplyDspBusSnapshot(const CriChar8 *snapshot_name, CriSint32 time_ms);
 5485 
 5496 const CriChar8* CRIAPI criAtomEx_GetAppliedDspBusSnapshotName(void);
 5497 
 5520 void CRIAPI criAtomEx_SetCueLinkCallback(CriAtomExCueLinkCbFunc func, void* obj);
 5521 
 5543 void CRIAPI criAtomEx_SetSpeakerAngles(CriFloat32 angle_l, CriFloat32 angle_r, CriFloat32 angle_sl, CriFloat32 angle_sr);
 5544 
 5567 void CRIAPI criAtomEx_SetSpeakerAngleArray(CriAtomExSpeakerSystem speaker_system, const CriFloat32 *angle_array);
 5568 
 5583 void CRIAPI criAtomEx_SetVirtualSpeakerAngleArray(CriAtomExSpeakerSystem speaker_system, const CriFloat32 *angle_array);
 5584 
 5599 void CRIAPI criAtomEx_ControlVirtualSpeakerSetting(CriBool sw);
 5600 
 5612 CriSint32 CRIAPI criAtomEx_GetNumGameVariables(void);
 5613 
 5625 CriBool CRIAPI criAtomEx_GetGameVariableInfo(CriUint16 index, CriAtomExGameVariableInfo* info);
 5626 
 5637 CriFloat32 CRIAPI criAtomEx_GetGameVariableById(CriAtomExGameVariableId id);
 5638 
 5649 CriFloat32 CRIAPI criAtomEx_GetGameVariableByName(const CriChar8* name);
 5650 
 5662 void CRIAPI criAtomEx_SetGameVariableById(CriAtomExGameVariableId id, CriFloat32 value);
 5663 
 5675 void CRIAPI criAtomEx_SetGameVariableByName(const CriChar8* name, CriFloat32 value);
 5676 
 5699 void CRIAPI criAtomEx_SetPlaybackCancelCallback(CriAtomExPlaybackCancelCbFunc func, void* obj);
 5700 
 5713 void CRIAPI criAtomEx_ControlAcfConsistencyCheck(CriBool sw);
 5714 
 5723 void CRIAPI criAtomEx_SetAcfConsistencyCheckErrorLevel(CriErrorLevel level);
 5724 
 5747 void CRIAPI criAtomEx_SetTrackTransitionBySelectorCallback(CriAtomExTrackTransitionBySelectorCbFunc func, void* obj);
 5748 
 5749 /*==========================================================================
 5750  *      CRI AtomEx Debug API
 5751  *=========================================================================*/
 5762 void CRIAPI criAtomExDebug_GetResourcesInfo(CriAtomExDebugResourcesInfo *resources_info);
 5763 
 5764 /*==========================================================================
 5765  *      CRI AtomEx HCA-MX API
 5766  *=========================================================================*/
 5795 CriSint32 CRIAPI criAtomExHcaMx_CalculateWorkSize(const CriAtomExHcaMxConfig *config);
 5796 
 5844 void CRIAPI criAtomExHcaMx_SetConfigForWorkSizeCalculation(const CriAtomExHcaMxConfig *config);
 5845 
 5877 void CRIAPI criAtomExHcaMx_Initialize(
 5878     const CriAtomExHcaMxConfig *config, void *work, CriSint32 work_size);
 5879 
 5897 void CRIAPI criAtomExHcaMx_Finalize(void);
 5898 
 5912 void CRIAPI criAtomExHcaMx_SetBusSendLevelByName(
 5913     CriSint32 mixer_id, const CriChar8* bus_name, CriFloat32 level);
 5914 
 5929 void CRIAPI criAtomExHcaMx_SetFrequencyRatio(CriSint32 mixer_id, CriFloat32 ratio);
 5930 
 5946 void CRIAPI criAtomExHcaMx_SetAsrRackId(CriSint32 mixer_id, CriSint32 rack_id);
 5947 
 5948 /*==========================================================================
 5949  *      CRI AtomEx ACF API
 5950  *=========================================================================*/
 5959 CriSint32 CRIAPI criAtomExAcf_GetNumAisacControls(void);
 5960 
 5971 CriBool CRIAPI criAtomExAcf_GetAisacControlInfo(CriUint16 index, CriAtomExAisacControlInfo* info);
 5972 
 5982 CriAtomExAisacControlId CRIAPI criAtomExAcf_GetAisacControlIdByName(const CriChar8* name);
 5983 
 5993 const CriChar8 * CRIAPI criAtomExAcf_GetAisacControlNameById(CriAtomExAisacControlId id);
 5994 
 6004 CriSint32 CRIAPI criAtomExAcf_GetNumDspSettings(void);
 6005 
 6018 CriSint32 CRIAPI criAtomExAcf_GetNumDspSettingsFromAcfData(
 6019     void *acf_data, CriSint32 acf_data_size);
 6020 
 6033 const CriChar8 * CRIAPI criAtomExAcf_GetDspSettingNameByIndex(CriUint16 index);
 6034 
 6049 const CriChar8 * CRIAPI criAtomExAcf_GetDspSettingNameByIndexFromAcfData(
 6050     void *acf_data, CriSint32 acf_data_size, CriUint16 index);
 6051 
 6063 CriBool CRIAPI criAtomExAcf_GetDspSettingInformation(const CriChar8* name, CriAtomExAcfDspSettingInfo* info);
 6064 
 6078 CriBool CRIAPI criAtomExAcf_GetDspSettingSnapshotInformation(CriUint16 index, CriAtomExAcfDspSettingSnapshotInfo* info);
 6079 
 6091 CriBool CRIAPI criAtomExAcf_GetDspBusInformation(CriUint16 index, CriAtomExAcfDspBusInfo* info);
 6092 
 6107 CriUint32 CRIAPI criAtomExAcf_GetDspFxType(CriUint16 index);
 6108 
 6121 const CriChar8* CRIAPI criAtomExAcf_GetDspFxName(CriUint16 index);
 6122 
 6138 CriBool CRIAPI criAtomExAcf_GetDspFxParameters(CriUint16 index, void* parameters, CriSint32 size);
 6139 
 6151 CriBool CRIAPI criAtomExAcf_GetDspBusLinkInformation(CriUint16 index, CriAtomExAcfDspBusLinkInfo* info);
 6152 
 6165 CriSint32 CRIAPI criAtomExAcf_GetNumCategoriesFromAcfData(
 6166     void *acf_data, CriSint32 acf_data_size);
 6167 
 6175 CriSint32 CRIAPI criAtomExAcf_GetNumCategories(void);
 6176 
 6189 CriSint32 CRIAPI criAtomExAcf_GetNumCategoriesPerPlaybackFromAcfData(
 6190     void *acf_data, CriSint32 acf_data_size);
 6191 
 6199 CriSint32 CRIAPI criAtomExAcf_GetNumCategoriesPerPlayback(void);
 6200 
 6211 CriBool CRIAPI criAtomExAcf_GetCategoryInfo(CriUint16 index, CriAtomExCategoryInfo* info);
 6212 
 6223 CriBool CRIAPI criAtomExAcf_GetCategoryInfoByName(const CriChar8* name, CriAtomExCategoryInfo* info);
 6224 
 6235 CriBool CRIAPI criAtomExAcf_GetCategoryInfoById(CriUint32 id, CriAtomExCategoryInfo* info);
 6236 
 6244 CriSint32 CRIAPI criAtomExAcf_GetNumGlobalAisacs(void);
 6245 
 6256 CriBool CRIAPI criAtomExAcf_GetGlobalAisacInfo(CriUint16 index, CriAtomExGlobalAisacInfo* info);
 6257 
 6268 CriBool CRIAPI criAtomExAcf_GetGlobalAisacInfoByName(const CriChar8* name, CriAtomExGlobalAisacInfo* info);
 6269 
 6281 CriBool CRIAPI criAtomExAcf_GetGlobalAisacGraphInfo(
 6282     const CriAtomExGlobalAisacInfo* aisac_info,
 6283     CriUint16 graph_index,
 6284     CriAtomExAisacGraphInfo* graph_info);
 6285 
 6298 CriBool CRIAPI criAtomExAcf_GetGlobalAisacValue(
 6299     const CriAtomExGlobalAisacInfo* aisac_info,
 6300     CriFloat32 control,
 6301     CriAtomExAisacGraphType type,
 6302     CriFloat32* value);
 6303 
 6313 CriBool CRIAPI criAtomExAcf_GetAcfInfo(CriAtomExAcfInfo *acf_info);
 6314 
 6332 CriBool CRIAPI criAtomExAcf_GetAcfInfoFromAcfData(
 6333     void *acf_data, CriSint32 acf_data_size, CriAtomExAcfInfo *acf_info);
 6334 
 6342 CriSint32 CRIAPI criAtomExAcf_GetNumSelectors(void);
 6343 
 6354 CriBool CRIAPI criAtomExAcf_GetSelectorInfoByIndex(CriUint16 index, CriAtomExSelectorInfo* info);
 6355 
 6366 CriBool CRIAPI criAtomExAcf_GetSelectorInfoByName(const CriChar8* name, CriAtomExSelectorInfo* info);
 6367 
 6379 CriBool CRIAPI criAtomExAcf_GetSelectorLabelInfo(
 6380     const CriAtomExSelectorInfo* selector_info,
 6381     CriUint16 label_index,
 6382     CriAtomExSelectorLabelInfo* label_info);
 6383 
 6395 void CRIAPI criAtomExAcf_SetGlobalLabelToSelectorByName(const CriChar8* selsector_name, const CriChar8* label_name);
 6396 
 6408 void CRIAPI criAtomExAcf_SetGlobalLabelToSelectorByIndex(CriUint16 selsector_index, CriUint16 label_index);
 6409 
 6422 CriSint32 CRIAPI criAtomExAcf_GetNumBusesFromAcfData(
 6423     void *acf_data, CriSint32 acf_data_size);
 6424 
 6432 CriSint32 CRIAPI criAtomExAcf_GetNumBuses(void);
 6433 
 6446 CriSint32 CRIAPI criAtomExAcf_GetMaxBusesOfDspBusSettingsFromAcfData(
 6447     void *acf_data, CriSint32 acf_data_size);
 6448 
 6456 CriSint32 CRIAPI criAtomExAcf_GetMaxBusesOfDspBusSettings(void);
 6457 
 6467 const CriChar8* CRIAPI criAtomExAcf_FindBusName(const CriChar8* bus_name);
 6468 
 6469 
 6470 /*==========================================================================
 6471  *      CRI AtomEx ACB API
 6472  *=========================================================================*/
 6499 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbData(
 6500     void *acb_data, CriSint32 acb_data_size,
 6501     CriFsBinderHn awb_binder, const CriChar8 *awb_path);
 6502 
 6521 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbDataById(
 6522     void *acb_data, CriSint32 acb_data_size, CriFsBinderHn awb_binder, CriUint16 awb_id);
 6523 
 6580 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbData(
 6581     void *acb_data, CriSint32 acb_data_size,
 6582     CriFsBinderHn awb_binder, const CriChar8 *awb_path,
 6583     void *work, CriSint32 work_size);
 6584 
 6603 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbDataById(
 6604     void *acb_data, CriSint32 acb_data_size, CriFsBinderHn awb_binder, CriUint16 awb_id,
 6605     void *work, CriSint32 work_size);
 6606 
 6643 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbFile(
 6644     CriFsBinderHn acb_binder, const CriChar8 *acb_path,
 6645     CriFsBinderHn awb_binder, const CriChar8 *awb_path);
 6646 
 6665 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForLoadAcbFileById(
 6666     CriFsBinderHn acb_binder, CriUint16 acb_id, CriFsBinderHn awb_binder, CriUint16 awb_id);
 6667 
 6723 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbFile(
 6724     CriFsBinderHn acb_binder, const CriChar8 *acb_path,
 6725     CriFsBinderHn awb_binder, const CriChar8 *awb_path,
 6726     void *work, CriSint32 work_size);
 6727 
 6746 CriAtomExAcbHn CRIAPI criAtomExAcb_LoadAcbFileById(
 6747     CriFsBinderHn acb_binder, CriUint16 acb_id, CriFsBinderHn awb_binder, CriUint16 awb_id,
 6748     void *work, CriSint32 work_size);
 6749 
 6774 void CRIAPI criAtomExAcb_Release(CriAtomExAcbHn acb_hn);
 6775 
 6804 CriBool CRIAPI criAtomExAcb_IsReadyToRelease(CriAtomExAcbHn acb_hn);
 6805 
 6828 void CRIAPI criAtomExAcb_ReleaseAll(void);
 6829 
 6857 CriSint32 CRIAPI criAtomExAcb_EnumerateHandles(CriAtomExAcbHandleCbFunc func, void *obj);
 6858 
 6870 CriUint32 CRIAPI criAtomExAcb_GetVersion(
 6871     void *acb_data, CriSint32 acb_data_size, void *flag);
 6872 
 6905 CriUint32 CRIAPI criAtomExAcb_GetVersionFromFile(
 6906     CriFsBinderHn acb_binder, const CriChar8 *acb_path, void *work, CriSint32 work_size, CriBool *flag);
 6907 
 6918 void CRIAPI criAtomExAcb_GetSupportedVersion(
 6919     CriUint32 *version_low, CriUint32 *version_high);
 6920 
 6931 CriSint32 CRIAPI criAtomExAcb_GetNumCues(CriAtomExAcbHn acb_hn);
 6932 
 6946 CriBool CRIAPI criAtomExAcb_ExistsId(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 6947 
 6961 CriBool CRIAPI criAtomExAcb_ExistsName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
 6962 
 6976 CriBool CRIAPI criAtomExAcb_ExistsIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
 6977 
 6995 CriAtomExCueId CRIAPI criAtomExAcb_GetCueIdByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
 6996 
 7014 CriAtomExCueId CRIAPI criAtomExAcb_GetCueIdByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
 7015 
 7033 const CriChar8 * CRIAPI criAtomExAcb_GetCueNameByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
 7034 
 7052 const CriChar8 * CRIAPI criAtomExAcb_GetCueNameById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7053 
 7071 CriAtomExCueIndex CRIAPI criAtomExAcb_GetCueIndexById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7072 
 7090 CriAtomExCueIndex CRIAPI criAtomExAcb_GetCueIndexByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
 7091 
 7109 const CriChar8 * CRIAPI criAtomExAcb_GetUserDataById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7110 
 7128 const CriChar8 * CRIAPI criAtomExAcb_GetUserDataByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
 7129 
 7147 CriSint64 CRIAPI criAtomExAcb_GetLengthById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7148 
 7166 CriSint64 CRIAPI criAtomExAcb_GetLengthByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
 7167 
 7186 CriSint32 CRIAPI criAtomExAcb_GetNumUsableAisacControlsById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7187 
 7206 CriSint32 CRIAPI criAtomExAcb_GetNumUsableAisacControlsByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
 7207 
 7228 CriBool CRIAPI criAtomExAcb_GetUsableAisacControlById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriUint16 index, CriAtomExAisacControlInfo* info);
 7229 
 7250 CriBool CRIAPI criAtomExAcb_GetUsableAisacControlByName(CriAtomExAcbHn acb_hn, const CriChar8 *name, CriUint16 index, CriAtomExAisacControlInfo* info);
 7251 
 7271 CriBool CRIAPI criAtomExAcb_IsUsingAisacControlById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriAtomExAisacControlId aisac_control_id);
 7272 
 7292 CriBool CRIAPI criAtomExAcb_IsUsingAisacControlByName(CriAtomExAcbHn acb_hn, const CriChar8 *name, const CriChar8 *aisac_control_name);
 7293 
 7312 CriSint32 CRIAPI criAtomExAcb_GetCuePriorityById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7313 
 7332 CriSint32 CRIAPI criAtomExAcb_GetCuePriorityByName(CriAtomExAcbHn acb_hn, const CriChar8 *name);
 7333 
 7353 CriBool CRIAPI criAtomExAcb_GetWaveformInfoById(
 7354     CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriAtomExWaveformInfo *waveform_info);
 7355 
 7375 CriBool CRIAPI criAtomExAcb_GetWaveformInfoByName(
 7376     CriAtomExAcbHn acb_hn, const CriChar8 *name, CriAtomExWaveformInfo *waveform_info);
 7377 
 7405 CriAtomAwbHn CRIAPI criAtomExAcb_GetOnMemoryAwbHandle(CriAtomExAcbHn acb_hn);
 7406 
 7434 CriAtomAwbHn CRIAPI criAtomExAcb_GetStreamingAwbHandle(CriAtomExAcbHn acb_hn);
 7435 
 7455 CriBool CRIAPI criAtomExAcb_GetCueInfoByName(CriAtomExAcbHn acb_hn, const CriChar8* name, CriAtomExCueInfo* info);
 7456 
 7476 CriBool CRIAPI criAtomExAcb_GetCueInfoById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, CriAtomExCueInfo* info);
 7477 
 7497 CriBool CRIAPI criAtomExAcb_GetCueInfoByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index, CriAtomExCueInfo* info);
 7498 
 7517 CriSint32 CRIAPI criAtomExAcb_GetNumCuePlayingCountByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
 7518 
 7537 CriSint32 CRIAPI criAtomExAcb_GetNumCuePlayingCountById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7538 
 7557 CriSint32 CRIAPI criAtomExAcb_GetNumCuePlayingCountByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
 7558 
 7578 CriAtomExBlockIndex CRIAPI criAtomExAcb_GetBlockIndexByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index, const CriChar8* block_name);
 7579 
 7599 CriAtomExBlockIndex CRIAPI criAtomExAcb_GetBlockIndexById(CriAtomExAcbHn acb_hn, CriAtomExCueId id, const CriChar8* block_name);
 7600 
 7620 CriAtomExBlockIndex CRIAPI criAtomExAcb_GetBlockIndexByName(CriAtomExAcbHn acb_hn, const CriChar8* name, const CriChar8* block_name);
 7621 
 7642 void CRIAPI criAtomExAcb_SetDetectionInGamePreviewDataCallback(CriAtomExAcbDetectionInGamePreviewDataCbFunc func, void* obj);
 7643 
 7656 CriBool CRIAPI criAtomExAcb_GetAcbInfo(CriAtomExAcbHn acb_hn, CriAtomExAcbInfo *acb_info);
 7657 
 7674 void CRIAPI criAtomExAcb_ResetCueTypeStateByName(CriAtomExAcbHn acb_hn, const CriChar8* name);
 7675 
 7692 void CRIAPI criAtomExAcb_ResetCueTypeStateById(CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 7693 
 7710 void CRIAPI criAtomExAcb_ResetCueTypeStateByIndex(CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
 7711 
 7758 void CRIAPI criAtomExAcb_AttachAwbFile(
 7759     CriAtomExAcbHn acb_hn,
 7760     CriFsBinderHn awb_binder,
 7761     const CriChar8* awb_path,
 7762     const CriChar8* awb_name,
 7763     void* work,
 7764     CriSint32 work_size);
 7765 
 7778 void CRIAPI criAtomExAcb_DetachAwbFile(
 7779     CriAtomExAcbHn acb_hn,
 7780     const CriChar8* awb_name);
 7781 
 7796 CriSint32 CRIAPI criAtomExAcb_CalculateWorkSizeForAttachAwbFile(
 7797     CriFsBinderHn awb_binder,
 7798     const CriChar8* awb_path);
 7799 
 7808 CriSint32 CRIAPI criAtomExAcb_GetNumAwbFileSlots(
 7809     CriAtomExAcbHn acb_hn);
 7810 
 7822 const CriChar8* CRIAPI criAtomExAcb_GetAwbFileSlotName(
 7823     CriAtomExAcbHn acb_hn, CriUint16 index);
 7824 
 7834 CriBool CRIAPI criAtomExAcb_IsAttachedAwbFile(
 7835     CriAtomExAcbHn acb_hn,
 7836     const CriChar8* awb_name);
 7837 
 7838 
 7839 /*==========================================================================
 7840  *      CRI AtomEx Voice Pool API
 7841  *=========================================================================*/
 7875 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForStandardVoicePool(
 7876     const CriAtomExStandardVoicePoolConfig *config);
 7877 
 7965 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateStandardVoicePool(
 7966     const CriAtomExStandardVoicePoolConfig *config, void *work, CriSint32 work_size);
 7967 
 8001 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForAdxVoicePool(
 8002     const CriAtomExAdxVoicePoolConfig *config);
 8003 
 8089 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateAdxVoicePool(
 8090     const CriAtomExAdxVoicePoolConfig *config, void *work, CriSint32 work_size);
 8091 
 8125 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForHcaVoicePool(
 8126     const CriAtomExHcaVoicePoolConfig *config);
 8127 
 8213 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateHcaVoicePool(
 8214     const CriAtomExHcaVoicePoolConfig *config, void *work, CriSint32 work_size);
 8215 
 8249 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForHcaMxVoicePool(
 8250     const CriAtomExHcaMxVoicePoolConfig *config);
 8251 
 8342 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateHcaMxVoicePool(
 8343     const CriAtomExHcaMxVoicePoolConfig *config, void *work, CriSint32 work_size);
 8344 
 8378 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForWaveVoicePool(
 8379     const CriAtomExWaveVoicePoolConfig *config);
 8380 
 8472 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateWaveVoicePool(
 8473     const CriAtomExWaveVoicePoolConfig *config, void *work, CriSint32 work_size);
 8474 
 8508 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForAiffVoicePool(
 8509     const CriAtomExAiffVoicePoolConfig *config);
 8510 
 8602 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateAiffVoicePool(
 8603     const CriAtomExAiffVoicePoolConfig *config, void *work, CriSint32 work_size);
 8604 
 8638 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForRawPcmVoicePool(
 8639     const CriAtomExRawPcmVoicePoolConfig *config);
 8640 
 8713 CriAtomExVoicePoolHn CRIAPI criAtomExVoicePool_AllocateRawPcmVoicePool(
 8714     const CriAtomExRawPcmVoicePoolConfig *config, void *work, CriSint32 work_size);
 8715 
 8736 void CRIAPI criAtomExVoicePool_Free(CriAtomExVoicePoolHn pool);
 8737 
 8757 void CRIAPI criAtomExVoicePool_FreeAll(void);
 8758 
 8769 void CRIAPI criAtomExVoicePool_GetNumUsedVoices(
 8770     CriAtomExVoicePoolHn pool, CriSint32 *cur_num, CriSint32 *limit);
 8771 
 8783 CriAtomPlayerHn CRIAPI criAtomExVoicePool_GetPlayerHandle(
 8784     CriAtomExVoicePoolHn pool, CriSint32 index);
 8785 
 8786 /*==========================================================================
 8787  *      CRI AtomEx Category API
 8788  *=========================================================================*/
 8800 void CRIAPI criAtomExCategory_SetVolumeById(CriAtomExCategoryId id, CriFloat32 volume);
 8801 
 8810 CriFloat32 CRIAPI criAtomExCategory_GetVolumeById(CriAtomExCategoryId id);
 8811 
 8823 CriFloat32 CRIAPI criAtomExCategory_GetTotalVolumeById(CriAtomExCategoryId id);
 8824 
 8836 void CRIAPI criAtomExCategory_SetVolumeByName(const CriChar8* name, CriFloat32 volume);
 8837 
 8846 CriFloat32 CRIAPI criAtomExCategory_GetVolumeByName(const CriChar8* name);
 8847 
 8859 CriFloat32 CRIAPI criAtomExCategory_GetTotalVolumeByName(const CriChar8* name);
 8860 
 8869 void CRIAPI criAtomExCategory_MuteById(CriAtomExCategoryId id, CriBool mute);
 8870 
 8879 CriBool CRIAPI criAtomExCategory_IsMutedById(CriAtomExCategoryId id);
 8880 
 8889 void CRIAPI criAtomExCategory_MuteByName(const CriChar8* name, CriBool mute);
 8890 
 8899 CriBool CRIAPI criAtomExCategory_IsMutedByName(const CriChar8* name);
 8900 
 8912 void CRIAPI criAtomExCategory_SoloById(CriAtomExCategoryId id, CriBool solo, CriFloat32 mute_volume);
 8913 
 8922 CriBool CRIAPI criAtomExCategory_IsSoloedById(CriAtomExCategoryId id);
 8923 
 8935 void CRIAPI criAtomExCategory_SoloByName(const CriChar8* name, CriBool solo, CriFloat32 mute_volume);
 8936 
 8945 CriBool CRIAPI criAtomExCategory_IsSoloedByName(const CriChar8* name);
 8946 
 8964 void CRIAPI criAtomExCategory_PauseById(CriAtomExCategoryId id, CriBool sw);
 8965 
 8974 CriBool CRIAPI criAtomExCategory_IsPausedById(CriAtomExCategoryId id);
 8975 
 8986 void CRIAPI criAtomExCategory_PauseByName(const CriChar8* name, CriBool sw);
 8987 
 8996 CriBool CRIAPI criAtomExCategory_IsPausedByName(const CriChar8* name);
 8997 
 9007 void CRIAPI criAtomExCategory_SetFadeInTimeById(CriAtomExCategoryId id, CriUint16 ms);
 9008 
 9018 void CRIAPI criAtomExCategory_SetFadeInTimeByName(const CriChar8* name, CriUint16 ms);
 9019 
 9029 void CRIAPI criAtomExCategory_SetFadeOutTimeById(CriAtomExCategoryId id, CriUint16 ms);
 9030 
 9040 void CRIAPI criAtomExCategory_SetFadeOutTimeByName(const CriChar8* name, CriUint16 ms);
 9041 
 9057 void CRIAPI criAtomExCategory_SetAisacControlById(
 9058     CriAtomExCategoryId id,
 9059     CriAtomExAisacControlId control_id,
 9060     CriFloat32 control_value
 9061 );
 9062 
 9076 void CRIAPI criAtomExCategory_SetAisacControlByName(
 9077     const CriChar8* name,
 9078     const CriChar8* control_name,
 9079     CriFloat32 control_value
 9080 );
 9081 
 9093 CriBool CRIAPI criAtomExCategory_ResetAllAisacControlById(CriAtomExCategoryId category_id);
 9094 
 9106 CriBool CRIAPI criAtomExCategory_ResetAllAisacControlByName(const CriChar8* category_name);
 9107 
 9130 void CRIAPI criAtomExCategory_AttachAisacById(CriAtomExCategoryId id, const CriChar8* global_aisac_name);
 9131 
 9142 void CRIAPI criAtomExCategory_AttachAisacByName(const CriChar8* name, const CriChar8* global_aisac_name);
 9143 
 9156 void CRIAPI criAtomExCategory_DetachAisacById(CriAtomExCategoryId id, const CriChar8* global_aisac_name);
 9157 
 9168 void CRIAPI criAtomExCategory_DetachAisacByName(const CriChar8* name, const CriChar8* global_aisac_name);
 9169 
 9177 void CRIAPI criAtomExCategory_DetachAisacAllById(CriAtomExCategoryId id);
 9178 
 9186 void CRIAPI criAtomExCategory_DetachAisacAllByName(const CriChar8* name);
 9187 
 9197 CriSint32 CRIAPI criAtomExCategory_GetNumAttachedAisacsById(CriAtomExCategoryId id);
 9198 
 9208 CriSint32 CRIAPI criAtomExCategory_GetNumAttachedAisacsByName(const CriChar8* name);
 9209 
 9223 CriBool CRIAPI criAtomExCategory_GetAttachedAisacInfoById(
 9224     CriAtomExCategoryId id, 
 9225     CriSint32 aisac_attached_index,
 9226     CriAtomExAisacInfo *aisac_info
 9227 );
 9228 
 9242 CriBool CRIAPI criAtomExCategory_GetAttachedAisacInfoByName(
 9243     const CriChar8* name,
 9244     CriSint32 aisac_attached_index,
 9245     CriAtomExAisacInfo *aisac_info
 9246 );
 9247 
 9261 CriBool CRIAPI criAtomExCategory_GetCurrentAisacControlValueById(
 9262     CriAtomExCategoryId category_id,
 9263     CriAtomExAisacControlId aisac_control_id,
 9264     CriFloat32 * control_value
 9265 );
 9266 
 9280 CriBool CRIAPI criAtomExCategory_GetCurrentAisacControlValueByName(
 9281     const CriChar8* category_name,
 9282     const CriChar8* aisac_control_name,
 9283     CriFloat32 * control_value
 9284 );
 9285 
 9295 CriSint32 CRIAPI criAtomExCategory_GetNumCuePlayingCountById(CriAtomExCategoryId id);
 9296 
 9306 CriSint32 CRIAPI criAtomExCategory_GetNumCuePlayingCountByName(const CriChar8* name);
 9307 
 9315 void CRIAPI criAtomExCategory_StopById(CriAtomExCategoryId id);
 9316 
 9324 void CRIAPI criAtomExCategory_StopByName(const CriChar8* name);
 9325 
 9333 void CRIAPI criAtomExCategory_StopWithoutReleaseTimeById(CriAtomExCategoryId id);
 9334 
 9342 void CRIAPI criAtomExCategory_StopWithoutReleaseTimeByName(const CriChar8* name);
 9343     
 9344 /*==========================================================================
 9345  *      CRI AtomEx Player API
 9346  *=========================================================================*/
 9378 CriSint32 CRIAPI criAtomExPlayer_CalculateWorkSize(
 9379     const CriAtomExPlayerConfig *config);
 9380 
 9544 CriAtomExPlayerHn CRIAPI criAtomExPlayer_Create(
 9545     const CriAtomExPlayerConfig *config, void *work, CriSint32 work_size);
 9546 
 9565 void CRIAPI criAtomExPlayer_Destroy(CriAtomExPlayerHn player);
 9566 
 9612 void CRIAPI criAtomExPlayer_SetCueId(
 9613     CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, CriAtomExCueId id);
 9614 
 9659 void CRIAPI criAtomExPlayer_SetCueName(
 9660     CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, const CriChar8 *cue_name);
 9661 
 9711 void CRIAPI criAtomExPlayer_SetCueIndex(
 9712     CriAtomExPlayerHn player, CriAtomExAcbHn acb_hn, CriAtomExCueIndex index);
 9713 
 9765 void CRIAPI criAtomExPlayer_SetData(
 9766     CriAtomExPlayerHn player, void *buffer, CriSint32 size);
 9767 
 9828 void CRIAPI criAtomExPlayer_SetFile(
 9829     CriAtomExPlayerHn player, CriFsBinderHn binder, const CriChar8 *path);
 9830 
 9897 void CRIAPI criAtomExPlayer_SetContentId(
 9898     CriAtomExPlayerHn player, CriFsBinderHn binder, CriSint32 id);
 9899 
 9950 void CRIAPI criAtomExPlayer_SetWaveId(
 9951     CriAtomExPlayerHn player, CriAtomAwbHn awb, CriAtomExWaveId id);
 9952 
10055 CriAtomExPlaybackId CRIAPI criAtomExPlayer_Start(CriAtomExPlayerHn player);
10056 
10145 CriAtomExPlaybackId CRIAPI criAtomExPlayer_Prepare(CriAtomExPlayerHn player);
10146 
10170 void CRIAPI criAtomExPlayer_Stop(CriAtomExPlayerHn player);
10171 
10197 void CRIAPI criAtomExPlayer_StopWithoutReleaseTime(CriAtomExPlayerHn player);
10198 
10220 void CRIAPI criAtomExPlayer_StopAllPlayers(void);
10221 
10245 void CRIAPI criAtomExPlayer_StopAllPlayersWithoutReleaseTime(void);
10246 
10266 void CRIAPI criAtomExPlayer_EnumeratePlayers(CriAtomExPlayerCbFunc func, void *obj);
10267 
10296 void CRIAPI criAtomExPlayer_Pause(CriAtomExPlayerHn player, CriBool sw);
10297 
10332 void CRIAPI criAtomExPlayer_Resume(CriAtomExPlayerHn player, CriAtomExResumeMode mode);
10333 
10352 CriBool CRIAPI criAtomExPlayer_IsPaused(CriAtomExPlayerHn player);
10353 
10420 CriAtomExPlayerStatus CRIAPI criAtomExPlayer_GetStatus(CriAtomExPlayerHn player);
10421 
10436 CriSint32 CRIAPI criAtomExPlayer_GetNumPlaybacks(CriAtomExPlayerHn player);
10437 
10448 CriAtomExPlaybackId CRIAPI criAtomExPlayer_GetLastPlaybackId(CriAtomExPlayerHn player);
10449 
10504 CriSint64 CRIAPI criAtomExPlayer_GetTime(CriAtomExPlayerHn player);
10505 
10521 void CRIAPI criAtomExPlayer_SetFormat(
10522     CriAtomExPlayerHn player, CriAtomExFormat format);
10523 
10539 void CRIAPI criAtomExPlayer_SetNumChannels(
10540     CriAtomExPlayerHn player, CriSint32 num_channels);
10541 
10557 void CRIAPI criAtomExPlayer_SetSamplingRate(
10558     CriAtomExPlayerHn player, CriSint32 sampling_rate);
10559 
10575 void CRIAPI criAtomExPlayer_SetSoundRendererType(
10576     CriAtomExPlayerHn player, CriAtomSoundRendererType type);
10577 
10600 void CRIAPI criAtomExPlayer_SetGroupNumber(
10601     CriAtomExPlayerHn player, CriSint32 group_no);
10602 
10646 void CRIAPI criAtomExPlayer_SetVoiceControlMethod(
10647     CriAtomExPlayerHn player, CriAtomExVoiceControlMethod method);
10648 
10664 void CRIAPI criAtomExPlayer_SetVoicePoolIdentifier(
10665     CriAtomExPlayerHn player, CriAtomExVoicePoolIdentifier identifier);
10666 
10684 void CRIAPI criAtomExPlayer_SetHcaMxMixerId(CriAtomExPlayerHn player, CriSint32 mixer_id);
10685 
10713 void CRIAPI criAtomExPlayer_SetAsrRackId(CriAtomExPlayerHn player, CriSint32 rack_id);
10714 
10750 void CRIAPI criAtomExPlayer_SetAsrRackIdArray(
10751     CriAtomExPlayerHn player, const CriSint32 *rack_id_array, CriSint32 num_racks);
10752 
10781 void CRIAPI criAtomExPlayer_SetStartTime(
10782     CriAtomExPlayerHn player, CriSint64 start_time_ms);
10783 
10809 void CRIAPI criAtomExPlayer_SetSequencePrepareTime(
10810     CriAtomExPlayerHn player, CriUint32 seq_prep_time_ms);
10811 
10859 void CRIAPI criAtomExPlayer_SetSyncPlaybackId(
10860     CriAtomExPlayerHn player, CriAtomExPlaybackId playback_id);
10861 
10878 void CRIAPI criAtomExPlayer_SetPlaybackRatio(
10879     CriAtomExPlayerHn player, CriFloat32 playback_ratio);
10880 
10925 void CRIAPI criAtomExPlayer_LimitLoopCount(CriAtomExPlayerHn player, CriSint32 count);
10926 
10949 void CRIAPI criAtomExPlayer_UpdateAll(CriAtomExPlayerHn player);
10950 
10974 void CRIAPI criAtomExPlayer_Update(
10975     CriAtomExPlayerHn player, CriAtomExPlaybackId id);
10976 
11009 void CRIAPI criAtomExPlayer_ResetParameters(CriAtomExPlayerHn player);
11010 
11022 CriFloat32 CRIAPI criAtomExPlayer_GetParameterFloat32(CriAtomExPlayerHn player, CriAtomExParameterId id);
11023 
11035 CriUint32 CRIAPI criAtomExPlayer_GetParameterUint32(CriAtomExPlayerHn player, CriAtomExParameterId id);
11036 
11048 CriSint32 CRIAPI criAtomExPlayer_GetParameterSint32(CriAtomExPlayerHn player, CriAtomExParameterId id);
11049 
11127 void CRIAPI criAtomExPlayer_SetVolume(
11128     CriAtomExPlayerHn player, CriFloat32 volume);
11129 
11191 void CRIAPI criAtomExPlayer_SetPitch(CriAtomExPlayerHn player, CriFloat32 pitch);
11192 
11220 void CRIAPI criAtomExPlayer_SetMaxPitch(CriAtomExPlayerHn player, CriFloat32 pitch);
11221 
11267 void CRIAPI criAtomExPlayer_SetPan3dAngle(
11268     CriAtomExPlayerHn player, CriFloat32 pan3d_angle);
11269 
11314 void CRIAPI criAtomExPlayer_SetPan3dInteriorDistance(
11315     CriAtomExPlayerHn player, CriFloat32 pan3d_interior_distance);
11316 
11357 void CRIAPI criAtomExPlayer_SetPan3dVolume(
11358     CriAtomExPlayerHn player, CriFloat32 pan3d_volume);
11359 
11378 void CRIAPI criAtomExPlayer_SetPanType(
11379     CriAtomExPlayerHn player, CriAtomExPanType pan_type);
11380 
11402 void CRIAPI criAtomExPlayer_SetPanSpeakerType(
11403     CriAtomExPlayerHn player, CriAtomExPanSpeakerType pan_speaker_type);
11404 
11420 void CRIAPI criAtomExPlayer_AddMixDownCenterVolumeOffset(
11421     CriAtomExPlayerHn player, CriFloat32 mixdown_center_volume_offset);
11422 
11438 void CRIAPI criAtomExPlayer_AddMixDownLfeVolumeOffset(
11439     CriAtomExPlayerHn player, CriFloat32 mixdown_lfe_volume_offset);
11440 
11460 void CRIAPI criAtomExPlayer_ChangeDefaultPanSpeakerType(
11461     CriAtomExPanSpeakerType pan_speaker_type);
11462 
11485 void CRIAPI criAtomExPlayer_SetPanAngleType(
11486     CriAtomExPlayerHn player, CriAtomExPanAngleType pan_angle_type);
11487 
11509 void CRIAPI criAtomExPlayer_SetPanSpread(CriAtomExPlayerHn player, CriFloat32 spread);
11510 
11610 void CRIAPI criAtomExPlayer_SetSendLevel(
11611     CriAtomExPlayerHn player, CriSint32 ch, CriAtomExSpeakerId spk, CriFloat32 level);
11612 
11660 void CRIAPI criAtomExPlayer_SetBusSendLevelByName(
11661     CriAtomExPlayerHn player, const CriChar8* bus_name, CriFloat32 level);
11662 
11681 void CRIAPI criAtomExPlayer_SetBusSendLevelOffsetByName(
11682     CriAtomExPlayerHn player, const CriChar8* bus_name, CriFloat32 level_offset);
11683 
11725 void CRIAPI criAtomExPlayer_SetPanAdx1Compatible(
11726     CriAtomExPlayerHn player, CriSint32 ch, CriFloat32 pan);
11727 
11783 void CRIAPI criAtomExPlayer_SetBandpassFilterParameters(
11784     CriAtomExPlayerHn player, CriFloat32 cof_low, CriFloat32 cof_high);
11785 
11854 void CRIAPI criAtomExPlayer_SetBiquadFilterParameters(
11855     CriAtomExPlayerHn player, CriAtomExBiquadFilterType type, CriFloat32 frequency,
11856     CriFloat32 gain, CriFloat32 q_value);
11857 
11912 void CRIAPI criAtomExPlayer_SetVoicePriority(
11913     CriAtomExPlayerHn player, CriSint32 priority);
11914 
11966 void CRIAPI criAtomExPlayer_SetAisacControlById(
11967     CriAtomExPlayerHn player, CriAtomExAisacControlId control_id, CriFloat32 control_value);
11968 
12008 void CRIAPI criAtomExPlayer_SetAisacControlByName(
12009     CriAtomExPlayerHn player, const CriChar8 *control_name, CriFloat32 control_value);
12010 
12021 void CRIAPI criAtomExPlayer_ClearAisacControls(CriAtomExPlayerHn player);
12022 
12023 
12078 void CRIAPI criAtomExPlayer_Set3dSourceHn(
12079     CriAtomExPlayerHn player, CriAtomEx3dSourceHn source);
12080 
12144 void CRIAPI criAtomExPlayer_Set3dSourceListHn(
12145     CriAtomExPlayerHn player, CriAtomEx3dSourceListHn source_list);
12146 
12196 void CRIAPI criAtomExPlayer_Set3dListenerHn(
12197     CriAtomExPlayerHn player, CriAtomEx3dListenerHn listener);
12198 
12225 CriFloat32 CRIAPI criAtomExPlayer_GetAisacControlById(
12226     CriAtomExPlayerHn player, CriAtomExAisacControlId control_id);
12227 
12254 CriFloat32 CRIAPI criAtomExPlayer_GetAisacControlByName(
12255     CriAtomExPlayerHn player, const CriChar8 *control_name);
12256 
12281 void CRIAPI criAtomExPlayer_SetCategoryById(
12282     CriAtomExPlayerHn player, CriUint32 category_id);
12283 
12304 void CRIAPI criAtomExPlayer_SetCategoryByName(
12305     CriAtomExPlayerHn player, const CriChar8 *category_name);
12306 
12320 void CRIAPI criAtomExPlayer_UnsetCategory(CriAtomExPlayerHn player);
12321 
12330 CriSint32 CRIAPI criAtomExPlayer_GetNumCategories(CriAtomExPlayerHn player);
12331 
12343 CriBool CRIAPI criAtomExPlayer_GetCategoryInfo(CriAtomExPlayerHn player, CriUint16 index, CriAtomExCategoryInfo* info);
12344 
12379 void CRIAPI criAtomExPlayer_SetTrackInfo(CriAtomExPlayerHn player,
12380     CriSint32 num_tracks, const CriSint32 *channels_per_track);
12381 
12405 void CRIAPI criAtomExPlayer_SetTrackVolume(
12406     CriAtomExPlayerHn player, CriSint32 track_no, CriFloat32 volume);
12407 
12437 void CRIAPI criAtomExPlayer_SetSilentMode(
12438     CriAtomExPlayerHn player, CriAtomExSilentMode silent_mode);
12439 
12465 void CRIAPI criAtomExPlayer_SetCuePriority(
12466     CriAtomExPlayerHn player, CriSint32 cue_priority);
12467 
12487 void CRIAPI criAtomExPlayer_SetPreDelayTime(
12488     CriAtomExPlayerHn player, CriFloat32 predelay_time_ms);
12489 
12518 void CRIAPI criAtomExPlayer_SetEnvelopeAttackTime(
12519     CriAtomExPlayerHn player, CriFloat32 attack_time_ms);
12520 
12549 void CRIAPI criAtomExPlayer_SetEnvelopeHoldTime(
12550     CriAtomExPlayerHn player, CriFloat32 hold_time_ms);
12551 
12580 void CRIAPI criAtomExPlayer_SetEnvelopeDecayTime(
12581     CriAtomExPlayerHn player, CriFloat32 decay_time_ms);
12582 
12611 void CRIAPI criAtomExPlayer_SetEnvelopeReleaseTime(
12612     CriAtomExPlayerHn player, CriFloat32 release_time_ms);
12613 
12642 void CRIAPI criAtomExPlayer_SetEnvelopeSustainLevel(
12643     CriAtomExPlayerHn player, CriFloat32 susutain_level);
12644 
12786 void CRIAPI criAtomExPlayer_SetDataRequestCallback(
12787     CriAtomExPlayerHn player, CriAtomExPlayerDataRequestCbFunc func, void *obj);
12788 
12826 void CRIAPI criAtomExPlayer_SetFilterCallback(
12827     CriAtomExPlayerHn player, CriAtomExPlayerFilterCbFunc func, void *obj);
12828 
12840 void CRIAPI criAtomExPlayer_SetRandomSeed(CriAtomExPlayerHn player, CriUint32 seed);
12841 
12855 void CRIAPI criAtomExPlayer_SetDspParameter(
12856     CriAtomExPlayerHn player, CriSint32 param_id, CriFloat32 param_val);
12857 
12890 void CRIAPI criAtomExPlayer_AttachAisac(CriAtomExPlayerHn player, const CriChar8* global_aisac_name);
12891 void CRIAPI criAtomExPlayer_AttachAisacByIndex(CriAtomExPlayerHn player, CriUint16 global_aisac_index);
12892 
12908 void CRIAPI criAtomExPlayer_DetachAisac(CriAtomExPlayerHn player, const CriChar8* global_aisac_name);
12909 void CRIAPI criAtomExPlayer_DetachAisacByIndex(CriAtomExPlayerHn player, CriUint16 global_aisac_index);
12910 
12922 void CRIAPI criAtomExPlayer_DetachAisacAll(CriAtomExPlayerHn player);
12923 
12932 CriSint32 CRIAPI criAtomExPlayer_GetNumAttachedAisacs(CriAtomExPlayerHn player);
12933 
12947 CriBool CRIAPI criAtomExPlayer_GetAttachedAisacInfo(
12948     CriAtomExPlayerHn player,
12949     CriSint32 aisac_attached_index,
12950     CriAtomExAisacInfo *aisac_info
12951 );
12952 
12966 void CRIAPI criAtomExPlayer_SetStreamingCacheId(
12967     CriAtomExPlayerHn player, CriAtomExStreamingCacheId cache_id);
12968 
13011 void CRIAPI criAtomExPlayer_AttachTween(CriAtomExPlayerHn player, CriAtomExTweenHn tween);
13012 
13025 void CRIAPI criAtomExPlayer_DetachTween(CriAtomExPlayerHn player, CriAtomExTweenHn tween);
13026 
13038 void CRIAPI criAtomExPlayer_DetachTweenAll(CriAtomExPlayerHn player);
13039 
13079 void CRIAPI criAtomExPlayer_SetFirstBlockIndex(
13080     CriAtomExPlayerHn player, CriAtomExBlockIndex index);
13081 
13111 void CRIAPI criAtomExPlayer_SetBlockTransitionCallback(
13112     CriAtomExPlayerHn player, CriAtomExPlayerBlockTransitionCbFunc func, void *obj);
13113 
13124 CriAtomExSoundObjectHn CRIAPI criAtomExPlayer_GetSoundObject(CriAtomExPlayerHn player); 
13125 
13188 void CRIAPI criAtomExPlayer_SetDrySendLevel(
13189     CriAtomExPlayerHn player, CriAtomExSpeakerId spk, CriFloat32 offset, CriFloat32 gain);
13190 
13206 void CRIAPI criAtomExPlayer_SetSelectorLabel(
13207     CriAtomExPlayerHn player, const CriChar8 *selector, const CriChar8 *label);
13208 
13209 
13220 void CRIAPI criAtomExPlayer_ClearSelectorLabels(CriAtomExPlayerHn player);
13221 
13251 void CRIAPI criAtomExPlayer_SetPlaybackTrackInfoNotificationCallback(
13252     CriAtomExPlayerHn player, CriAtomExPlayerPlaybackTrackInfoNotificationCbFunc func, void *obj);
13253 
13254 /*==========================================================================
13255  *      CRI AtomEx Playback API
13256  *=========================================================================*/
13276 void CRIAPI criAtomExPlayback_Stop(CriAtomExPlaybackId id);
13277 
13297 void CRIAPI criAtomExPlayback_StopWithoutReleaseTime(CriAtomExPlaybackId id);
13298 
13339 void CRIAPI criAtomExPlayback_Pause(CriAtomExPlaybackId id, CriBool sw);
13340 
13379 void CRIAPI criAtomExPlayback_Resume(CriAtomExPlaybackId id, CriAtomExResumeMode mode);
13380 
13390 CriBool CRIAPI criAtomExPlayback_IsPaused(CriAtomExPlaybackId id);
13391 
13417 CriAtomExPlaybackStatus CRIAPI criAtomExPlayback_GetStatus(CriAtomExPlaybackId id);
13418 
13439 CriBool CRIAPI criAtomExPlayback_GetFormatInfo(
13440     CriAtomExPlaybackId id, CriAtomExFormatInfo *info);
13441 
13480 CriBool CRIAPI criAtomExPlayback_GetSource(
13481     CriAtomExPlaybackId id, CriAtomExSourceInfo *source);
13482 
13495 CriAtomPlayerHn CRIAPI criAtomExPlayback_GetAtomPlayer(CriAtomExPlaybackId id);
13496 
13543 CriSint64 CRIAPI criAtomExPlayback_GetTime(CriAtomExPlaybackId id);
13544 
13596 CriSint64 CRIAPI criAtomExPlayback_GetTimeSyncedWithAudio(CriAtomExPlaybackId id);
13597 
13645 CriSint64 CRIAPI criAtomExPlayback_GetTimeSyncedWithAudioMicro(CriAtomExPlaybackId id);
13646 
13680 CriSint64 CRIAPI criAtomExPlayback_GetSequencePosition(CriAtomExPlaybackId id);
13681 
13713 CriBool CRIAPI criAtomExPlayback_GetNumPlayedSamples(
13714     CriAtomExPlaybackId id, CriSint64 *num_samples, CriSint32 *sampling_rate);
13715 
13734 CriBool CRIAPI criAtomExPlayback_GetParameterFloat32(
13735     CriAtomExPlaybackId playback_id,
13736     CriAtomExParameterId parameter_id,
13737     CriFloat32 *value_float32
13738 );
13739 
13758 CriBool CRIAPI criAtomExPlayback_GetParameterUint32(
13759     CriAtomExPlaybackId playback_id,
13760     CriAtomExParameterId parameter_id,
13761     CriUint32* value_uint32
13762 );
13763 
13782 CriBool CRIAPI criAtomExPlayback_GetParameterSint32(
13783     CriAtomExPlaybackId playback_id,
13784     CriAtomExParameterId parameter_id,
13785     CriSint32* value_sint32
13786 );
13787 
13805 CriBool CRIAPI criAtomExPlayback_GetAisacControlById(
13806     CriAtomExPlaybackId playback_id, CriAtomExAisacControlId control_id, CriFloat32 *control_value);
13807 
13825 CriBool CRIAPI criAtomExPlayback_GetAisacControlByName(
13826     CriAtomExPlaybackId playback_id, const CriChar8 *control_name, CriFloat32 *control_value);
13827 
13843 void CRIAPI criAtomExPlayback_SetNextBlockIndex(CriAtomExPlaybackId id, CriAtomExBlockIndex index);
13844 
13858 CriAtomExBlockIndex CRIAPI criAtomExPlayback_GetCurrentBlockIndex(CriAtomExPlaybackId id);
13859 
13875 CriBool CRIAPI criAtomExPlayback_GetPlaybackTrackInfo(CriAtomExPlaybackId id, CriAtomExPlaybackTrackInfo* info);
13876 
13894 CriBool CRIAPI criAtomExPlayback_GetBeatSyncInfo(CriAtomExPlaybackId id, CriAtomExBeatSyncInfo* info);
13895 
13896 /*==========================================================================
13897  *      CRI AtomEx Fader API
13898  *=========================================================================*/
13927 CriSint32 CRIAPI criAtomExPlayer_CalculateWorkSizeForFader(
13928     const CriAtomExFaderConfig *config);
13929 
14046 void CRIAPI criAtomExPlayer_AttachFader(CriAtomExPlayerHn player,
14047     const CriAtomExFaderConfig *config, void *work, CriSint32 work_size);
14048 
14064 void CRIAPI criAtomExPlayer_DetachFader(CriAtomExPlayerHn player);
14065 
14114 void CRIAPI criAtomExPlayer_SetFadeOutTime(CriAtomExPlayerHn player, CriSint32 ms);
14115 
14127 CriSint32 CRIAPI criAtomExPlayer_GetFadeOutTime(CriAtomExPlayerHn player);
14128 
14153 void CRIAPI criAtomExPlayer_SetFadeInTime(CriAtomExPlayerHn player, CriSint32 ms);
14154 
14166 CriSint32 CRIAPI criAtomExPlayer_GetFadeInTime(CriAtomExPlayerHn player);
14167 
14201 void CRIAPI criAtomExPlayer_SetFadeInStartOffset(CriAtomExPlayerHn player, CriSint32 ms);
14202 
14214 CriSint32 CRIAPI criAtomExPlayer_GetFadeInStartOffset(CriAtomExPlayerHn player);
14215 
14245 void CRIAPI criAtomExPlayer_SetFadeOutEndDelay(CriAtomExPlayerHn player, CriSint32 ms);
14246 
14258 CriSint32 CRIAPI criAtomExPlayer_GetFadeOutEndDelay(CriAtomExPlayerHn player);
14259 
14274 CriBool CRIAPI criAtomExPlayer_IsFading(CriAtomExPlayerHn player);
14275 
14293 void CRIAPI criAtomExPlayer_ResetFaderParameters(CriAtomExPlayerHn player);
14294 
14295 
14296 /*==========================================================================
14297  *      CRI AtomEx Sequencer API
14298  *=========================================================================*/
14321 void CRIAPI criAtomExSequencer_SetEventCallback(CriAtomExSequencerEventCbFunc func, void* obj);
14322 
14323 /*==========================================================================
14324  *      CRI AtomEx Beat Sync API
14325  *=========================================================================*/
14348 void CRIAPI criAtomExBeatSync_SetCallback(CriAtomExBeatSyncCbFunc func, void* obj);
14349 
14350 /*==========================================================================
14351  *      CRI AtomEx 3D API
14352  *=========================================================================*/
14383 CriSint32 CRIAPI criAtomEx3dSource_CalculateWorkSize(const CriAtomEx3dSourceConfig *config);
14384 
14405 CriAtomEx3dSourceHn CRIAPI criAtomEx3dSource_Create(
14406     const CriAtomEx3dSourceConfig *config, void *work, CriSint32 work_size);
14407 
14420 void CRIAPI criAtomEx3dSource_Destroy(CriAtomEx3dSourceHn ex_3d_source);
14421 
14454 void CRIAPI criAtomEx3dSource_Update(CriAtomEx3dSourceHn ex_3d_source);
14455 
14466 void CRIAPI criAtomEx3dSource_ResetParameters(CriAtomEx3dSourceHn ex_3d_source);
14467 
14484 void CRIAPI criAtomEx3dSource_SetPosition(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *position);
14485 
14495 CriAtomExVector CRIAPI criAtomEx3dSource_GetPosition(CriAtomEx3dSourceHn ex_3d_source);
14496 
14514 void CRIAPI criAtomEx3dSource_SetVelocity(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *velocity);
14515 
14540 void CRIAPI criAtomEx3dSource_SetOrientation(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *front, const CriAtomExVector *top);
14541 
14573 void CRIAPI criAtomEx3dSource_SetConeParameter(CriAtomEx3dSourceHn ex_3d_source,
14574     CriFloat32 inside_angle,
14575     CriFloat32 outside_angle,
14576     CriFloat32 outside_volume
14577 );
14578 
14596 void CRIAPI criAtomEx3dSource_ChangeDefaultConeParameter(
14597     CriFloat32 inside_angle,
14598     CriFloat32 outside_angle,
14599     CriFloat32 outside_volume
14600 );
14601 
14623 void CRIAPI criAtomEx3dSource_SetMinMaxAttenuationDistance(CriAtomEx3dSourceHn ex_3d_source,
14624     CriFloat32 min_attenuation_distance,
14625     CriFloat32 max_attenuation_distance
14626 );
14627 
14647 void CRIAPI criAtomEx3dSource_ChangeDefaultMinMaxAttenuationDistance(
14648     CriFloat32 min_attenuation_distance,
14649     CriFloat32 max_attenuation_distance
14650 );
14651 
14679 void CRIAPI criAtomEx3dSource_SetInteriorPanField(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 source_radius, CriFloat32 interior_distance);
14680 
14693 void CRIAPI criAtomEx3dSource_ChangeDefaultInteriorPanField(CriFloat32 source_radius, CriFloat32 interior_distance);
14694 
14712 void CRIAPI criAtomEx3dSource_SetDopplerFactor(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 doppler_factor);
14713 
14729 void CRIAPI criAtomEx3dSource_ChangeDefaultDopplerFactor(CriFloat32 doppler_factor);
14730 
14752 void CRIAPI criAtomEx3dSource_SetVolume(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 volume);
14753 
14769 void CRIAPI criAtomEx3dSource_ChangeDefaultVolume(CriFloat32 volume);
14770 
14789 void CRIAPI criAtomEx3dSource_SetMaxAngleAisacDelta(CriAtomEx3dSourceHn ex_3d_source, CriFloat32 max_delta);
14790 
14804 void CRIAPI criAtomEx3dSource_SetDistanceAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
14805 
14818 void CRIAPI criAtomEx3dSource_SetListenerBasedAngleAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
14819 
14832 void CRIAPI criAtomEx3dSource_SetSourceBasedAngleAisacControlId(CriAtomEx3dSourceHn ex_3d_source, CriUint16 aisac_control_id);
14833 
14863 CriSint32 CRIAPI criAtomEx3dSourceList_CalculateWorkSize(const CriAtomEx3dSourceListConfig *config);
14864 
14885 CriAtomEx3dSourceListHn CRIAPI criAtomEx3dSourceList_Create(
14886     const CriAtomEx3dSourceListConfig *config, void *work, CriSint32 work_size);
14887 
14903 void CRIAPI criAtomEx3dSourceList_Destroy(CriAtomEx3dSourceListHn ex_3d_source_list);
14904 
14929 void CRIAPI criAtomEx3dSourceList_Add(
14930     CriAtomEx3dSourceListHn ex_3d_source_list, CriAtomEx3dSourceHn ex_3d_source);
14931 
14951 void CRIAPI criAtomEx3dSourceList_Remove(
14952     CriAtomEx3dSourceListHn ex_3d_source_list, CriAtomEx3dSourceHn ex_3d_source);
14953 
14972 void CRIAPI criAtomEx3dSourceList_RemoveAll(CriAtomEx3dSourceListHn ex_3d_source_list);
14973 
15003 CriSint32 CRIAPI criAtomEx3dListener_CalculateWorkSize(const CriAtomEx3dListenerConfig *config);
15004 
15005 /* 3Dリスナーの作成 */
15026 CriAtomEx3dListenerHn CRIAPI criAtomEx3dListener_Create(
15027     const CriAtomEx3dListenerConfig *config, void *work, CriSint32 work_size);
15028 
15041 void CRIAPI criAtomEx3dListener_Destroy(CriAtomEx3dListenerHn ex_3d_listener);
15042 
15075 void CRIAPI criAtomEx3dListener_Update(CriAtomEx3dListenerHn ex_3d_listener);
15076 
15087 void CRIAPI criAtomEx3dListener_ResetParameters(CriAtomEx3dListenerHn ex_3d_listener);
15088 
15105 void CRIAPI criAtomEx3dListener_SetPosition(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *position);
15106 
15117 CriAtomExVector CRIAPI criAtomEx3dListener_GetPosition(CriAtomEx3dListenerHn ex_3d_listener);
15118 
15136 void CRIAPI criAtomEx3dListener_SetVelocity(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *velocity);
15137 
15156 void CRIAPI criAtomEx3dListener_SetOrientation(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *front, const CriAtomExVector *top);
15157 
15173 void CRIAPI criAtomEx3dListener_SetDistanceFactor(CriAtomEx3dListenerHn ex_3d_listener, CriFloat32 distance_factor);
15174 
15192 void CRIAPI criAtomEx3dListener_SetFocusPoint(CriAtomEx3dListenerHn ex_3d_listener, const CriAtomExVector *focus_point);
15193 
15209 void CRIAPI criAtomEx3dListener_SetDistanceFocusLevel(CriAtomEx3dListenerHn ex_3d_listener, CriFloat32 distance_focus_level);
15210 
15227 void CRIAPI criAtomEx3dListener_SetDirectionFocusLevel(CriAtomEx3dListenerHn ex_3d_listener, CriFloat32 direction_focus_level);
15228 
15229 /*==========================================================================
15230  *      CRI AtomEx DSP API
15231  *=========================================================================*/
15232 
15247 void CRIAPI criAtomExVoicePool_DetachDsp(CriAtomExVoicePoolHn pool);
15248 
15260 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForDspPitchShifter(
15261     const CriAtomExDspPitchShifterConfig *config);
15262 
15280 void CRIAPI criAtomExVoicePool_AttachDspPitchShifter(CriAtomExVoicePoolHn pool,
15281     const CriAtomExDspPitchShifterConfig *config, void *work, CriSint32 work_size);
15282 
15294 CriSint32 CRIAPI criAtomExVoicePool_CalculateWorkSizeForDspTimeStretch(
15295     const CriAtomExDspTimeStretchConfig *config);
15296 
15314 void CRIAPI criAtomExVoicePool_AttachDspTimeStretch(CriAtomExVoicePoolHn pool,
15315     const CriAtomExDspTimeStretchConfig *config, void *work, CriSint32 work_size);
15316 
15317 /* ========================================================================*/
15318 /*       CRI AtomEx Streaming Cache API                                    */
15319 /* ========================================================================*/
15338 CriBool CRIAPI criAtomExStreamingCache_IsCachedWaveformById(
15339     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, CriAtomExCueId id);
15340 
15359 CriBool CRIAPI criAtomExStreamingCache_IsCachedWaveformByName(
15360     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, const CriChar8 *name);
15361 
15381 CriBool CRIAPI criAtomExStreamingCache_LoadWaveformById(
15382     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, CriAtomExCueId cue_id);
15383 
15403 CriBool CRIAPI criAtomExStreamingCache_LoadWaveformByName(
15404     CriAtomExStreamingCacheId stm_cache_id, CriAtomExAcbHn acb_hn, const CriChar8 *name);
15405 
15406 
15407 /* ========================================================================*/
15408 /*       CRI AtomEx Tween(Parameter Animation) API                         */
15409 /* ========================================================================*/
15438 /* トゥイーンの作成に必要なワーク領域サイズの計算 */
15439 CriSint32 CRIAPI criAtomExTween_CalculateWorkSize(const CriAtomExTweenConfig *config);
15440 
15464 CriAtomExTweenHn CRIAPI criAtomExTween_Create(
15465     const CriAtomExTweenConfig *config, void *work, CriSint32 work_size);
15466 
15479 void CRIAPI criAtomExTween_Destroy(CriAtomExTweenHn tween);
15480 
15488 CriFloat32 CRIAPI criAtomExTween_GetValue(CriAtomExTweenHn tween);
15489 
15500 void CRIAPI criAtomExTween_MoveTo(CriAtomExTweenHn tween, CriUint16 time_ms, CriFloat32 value);
15501 
15512 void CRIAPI criAtomExTween_MoveFrom(CriAtomExTweenHn tween, CriUint16 time_ms, CriFloat32 value);
15513 
15521 void CRIAPI criAtomExTween_Stop(CriAtomExTweenHn tween);
15522 
15533 void CRIAPI criAtomExTween_Reset(CriAtomExTweenHn tween);
15534 
15535 /*==========================================================================
15536  *      CRI AtomEx Voice Event API
15537  *=========================================================================*/
15565 void CRIAPI criAtomEx_SetVoiceEventCallback(CriAtomExVoiceEventCbFunc func, void *obj);
15566 
15591 void CRIAPI criAtomEx_EnumerateVoiceInfos(CriAtomExVoiceInfoCbFunc func, void *obj);
15592 
15611 void CRIAPI criAtomEx_SetMonitoringVoiceStopCallback(CriAtomExMonitoringVoiceStopCbFunc func, void *obj);
15612 
15625 void CRIAPI criAtomEx_SetMonitoringVoiceStopPlaybackId(CriAtomExPlaybackId playback_id);
15626 
15627 
15628 /*==========================================================================
15629  *      CRI AtomEx Sound Object API
15630  *=========================================================================*/
15662 CriSint32 CRIAPI criAtomExSoundObject_CalculateWorkSize(
15663     const CriAtomExSoundObjectConfig *config);
15664 
15677 CriAtomExSoundObjectHn CRIAPI criAtomExSoundObject_Create(
15678     const CriAtomExSoundObjectConfig *config, void *work, CriSint32 work_size);
15679 
15690 void CRIAPI criAtomExSoundObject_Destroy(CriAtomExSoundObjectHn sound_object);
15691 
15714 void CRIAPI criAtomExSoundObject_AddPlayer(CriAtomExSoundObjectHn sound_object, CriAtomExPlayerHn player);
15715 
15731 void CRIAPI criAtomExSoundObject_DeletePlayer(CriAtomExSoundObjectHn sound_object, CriAtomExPlayerHn player);
15732 
15747 void CRIAPI criAtomExSoundObject_DeleteAllPlayers(CriAtomExSoundObjectHn sound_object);
15748 
15749 /***************************************************************************
15750  *      暫定API(使用はお控え下さい)
15751  *      Tentative API (Please don't use it)
15752  ***************************************************************************/
15753 /* 以下に宣言されている関数はAtomの内部処理用、ゲームエンジンとの連携等にて
15754  * 暫定的に使用されているAPIです。
15755  * 今後のアップデートにて予告なく変更・削除が行われるため、使用はお控え下さい。
15756  */
15757 CriSint64 CRIAPI criAtomExPlayer_GetTimeReal(CriAtomExPlayerHn player);
15758 CriSint64 CRIAPI criAtomExPlayback_GetTimeReal(CriAtomExPlaybackId id);
15759 void CRIAPI criAtomExPlayback_EnumerateAtomPlayers(
15760     CriAtomExPlaybackId id, CriAtomPlayerCbFunc func, void* obj);
15761 void CRIAPI criAtomEx3dListener_GetFocusPoint(CriAtomEx3dListenerHn ex_3d_listener, CriAtomExVector *focus_point);
15762 CriFloat32 CRIAPI criAtomEx3dListener_GetDistanceFocusLevel(CriAtomEx3dListenerHn ex_3d_listener);
15763 CriFloat32 CRIAPI criAtomEx3dListener_GetDirectionFocusLevel(CriAtomEx3dListenerHn ex_3d_listener);
15764 CriAtomExAcbHn CRIAPI criAtomExAcb_GetCurrentAcb(void);
15765 void CRIAPI criAtomEx3dSource_SetAttenuationDistanceSetting(CriAtomEx3dSourceHn ex_3d_source, CriBool sw);
15766 CriBool CRIAPI criAtomEx3dSource_GetAttenuationDistanceSetting(const CriAtomEx3dSourceHn ex_3d_source);
15767 
15768 #ifdef __cplusplus
15769 }
15770 #endif
15771 
15772 
15773 #define criAtomExPlayer_SetAisacById(player, control_id, control_value) \
15774     criAtomExPlayer_SetAisacControlById(player, control_id, control_value)
15775 #define criAtomExPlayer_SetAisacByName(player, control_name, control_value) \
15776     criAtomExPlayer_SetAisacControlByName(player, control_name, control_value)
15777 #define criAtomExPlayer_GetAisacById(player, control_id) \
15778     criAtomExPlayer_GetAisacControlById(player, control_id)
15779 #define criAtomExPlayer_GetAisacByName(player, control_name) \
15780     criAtomExPlayer_GetAisacControlByName(player,control_name)
15781 #define criAtomExPlayback_GetAisacById(playback_id, control_id, control_value) \
15782     criAtomExPlayback_GetAisacControlById(playback_id, control_id, control_value)
15783 #define criAtomExPlayback_GetAisacByName(playback_id, control_name, control_value) \
15784     criAtomExPlayback_GetAisacControlByName(playback_id, control_name, control_value)
15785 #define criAtomExCategory_SetAisacById(id, control_id, control_value) \
15786     criAtomExCategory_SetAisacControlById(id, control_id, control_value)
15787 #define criAtomExCategory_SetAisacByName(name, control_name, control_value) \
15788     criAtomExCategory_SetAisacControlByName(name, control_name, control_value)
15789 /* レンダラーの出力Ch数設定に応じて、自動でダウンミックスするため下記関数は無効にしています */
15790 
15791 
15792 #ifdef __cplusplus
15793 extern "C" {
15794 #endif
15795 
15796 
15802 void CRIAPI criAtomExPlayer_SetBusSendLevel(
15803     CriAtomExPlayerHn player, CriSint32 bus_index, CriFloat32 level);
15804 
15810 void CRIAPI criAtomExPlayer_SetBusSendLevelOffset(
15811     CriAtomExPlayerHn player, CriSint32 bus_index, CriFloat32 level_offset);
15812 
15818 void CRIAPI criAtomEx_GetNumUsedVirtualVoices(CriSint32 *cur_num, CriSint32 *limit);
15819 
15825 void CRIAPI criAtomEx_GetNumUsedSequences(CriSint32 *cur_num, CriSint32 *limit);
15826 
15832 void CRIAPI criAtomEx_GetNumUsedSequenceTracks(CriSint32 *cur_num, CriSint32 *limit);
15833 
15839 void CRIAPI criAtomEx_GetNumUsedSequenceTrackItems(CriSint32 *cur_num, CriSint32 *limit);
15840 
15846 void CRIAPI criAtomEx_GetNumUsedAisacAutoModulations(CriSint32 *cur_num, CriSint32 *limit);
15847 
15853 void CRIAPI criAtomEx3dSource_SetConeOrientation(CriAtomEx3dSourceHn ex_3d_source, const CriAtomExVector *cone_orient);
15854 
15855 
15856 
15857 #ifdef __cplusplus
15858 }
15859 #endif
15860 
15865 #endif /* CRI_INCL_CRI_ATOM_EX_H */
15866 
15867 /* --- end of file --- */-stdin

CRI Middleware logo Copyright (c) 2012-2018 CRI Middleware Co., Ltd. CRI ADX2 LE マニュアル (for Cocos2d-x) SDKVer.2.10版