cri_le_atom.h
説明を見る。
    1 /****************************************************************************
    2  *
    3  * CRI Middleware SDK
    4  *
    5  * Copyright (c) 2009-2017 CRI Middleware Co., Ltd.
    6  *
    7  * Library  : CRI Atom
    8  * Module   : Library User's Header
    9  * File     : cri_le_atom.h
   10  *
   11  ****************************************************************************/
   16 /* 多重定義防止                   */
   17 /* Prevention of redefinition   */
   18 #ifndef CRI_INCL_CRI_ATOM_H
   19 #define CRI_INCL_CRI_ATOM_H
   20 
   21 /***************************************************************************
   22  *      インクルードファイル
   23  *      Include files
   24  ***************************************************************************/
   25 #include <cri_le_xpt.h>
   26 #include <cri_le_file_system.h>
   27 
   28 /***************************************************************************
   29  *      定数マクロ
   30  *      Macro Constants
   31  ***************************************************************************/
   32 /* バージョン情報 */
   33 /* Version Number */
   34 #define CRI_ATOM_VERSION                (0x02172200)
   35 #define CRI_ATOM_VER_NUM                "2.17.22"
   36 #define CRI_ATOM_VER_NAME               "CRI Atom(LE)"
   37 
   38 /*==========================================================================
   39  *      CRI Atom API
   40  *=========================================================================*/
   41 #define CRIATOM_DEFAULT_OUTPUT_CHANNELS             (6)
   42 #define CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE        (48000)
   43 #define CRIATOM_DEFAULT_INPUT_MAX_CHANNELS          (2)
   44 #define CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE     (48000)
   45 #define CRIATOM_DEFAULT_DECODE_LATENCY              (0)
   46 #define CRIATOM_DEFAULT_DBAS_MAX_STREAMS            (8)
   47 #define CRIATOM_SOUND_RENDERER_DEFAULT              (CRIATOM_SOUND_RENDERER_ASR)
   48 
   49 /*==========================================================================
   50  *      CRI Atom Player API
   51  *=========================================================================*/
   57 #define CRIATOMPLAYER_NO_LOOP_LIMITATION    (-1)        
   58 #define CRIATOMPLAYER_IGNORE_LOOP           (-2)        
   59 #define CRIATOMPLAYER_FORCE_LOOP            (-3)        
   61 /*==========================================================================
   62  *      CRI Atom AWB API
   63  *=========================================================================*/
   64 
   71 #define CRIATOMAWB_WORKSIZE_FOR_LOADFROMMEMORY  (64)
   72 
   73 /*==========================================================================
   74  *      CRI Atom D-BAS API
   75  *=========================================================================*/
   83 #define CRIATOMDBAS_ILLEGAL_ID  (-1)
   84 
   94 #define CRIATOM_DEFAULT_DBAS_MAX_BPS \
   95     (criAtom_CalculateAdxBitrate(CRIATOM_DEFAULT_INPUT_MAX_CHANNELS,\
   96                                  CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE)\
   97                                  * CRIATOM_DEFAULT_DBAS_MAX_STREAMS)
   98 
  108 #define CRIATOMDBAS_DEFAULT_NUM_SECUREMENT_BUFFERS  (4)
  109 
  120 #define CRIATOMDBAS_MINIMUM_NUM_SECUREMENT_BUFFERS  (2)
  121 
  122 
  123 /* ========================================================================*/
  124 /*       CRI Atom Streaming Cache API                                      */
  125 /* ========================================================================*/
  133 #define CRIATOM_STREAMING_CACHE_ILLEGAL_ID  (0)
  134 
  144 #define CRIATOM_STREAMING_CACHE_DEFAULT_NUM_FILES   (10)
  145 
  155 #define CRIATOM_STREAMING_CACHE_DEFAULT_CACHE_SIZE  (1 * 1024 * 1024)
  156 
  157 /***************************************************************************
  158  *      処理マクロ
  159  *      Macro Functions
  160  ***************************************************************************/
  161 /*==========================================================================
  162  *      CRI Atom API
  163  *=========================================================================*/
  174 #define criAtom_SetDefaultConfig(p_config)  \
  175 {\
  176     (p_config)->thread_model = CRIATOM_THREAD_MODEL_MULTI;\
  177     (p_config)->server_frequency = 60.0f;\
  178     (p_config)->fs_config = NULL;\
  179     (p_config)->context = NULL;\
  180     (p_config)->version = CRI_ATOM_VERSION;\
  181     (p_config)->max_players = 16;\
  182 }
  183 
  214 #define criAtom_SetUserAllocator(p_malloc_func, p_free_func, p_obj) \
  215 {\
  216     criAtom_SetUserMallocFunction(p_malloc_func, p_obj);\
  217     criAtom_SetUserFreeFunction(p_free_func, p_obj);\
  218 }
  219 
  220 /*==========================================================================
  221  *      CRI Atom HCA-MX API
  222  *=========================================================================*/
  231 #define criAtomHcaMx_SetDefaultConfig(p_config) \
  232 {\
  233     (p_config)->server_frequency = 60.0f;\
  234     (p_config)->num_mixers = 1;\
  235     (p_config)->max_players = 16;\
  236     (p_config)->max_input_channels = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  237     (p_config)->max_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
  238     (p_config)->output_channels = CRIATOM_DEFAULT_OUTPUT_CHANNELS;\
  239     (p_config)->output_sampling_rate = CRIATOM_DEFAULT_OUTPUT_SAMPLING_RATE;\
  240     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  241 }
  242 
  243 /*==========================================================================
  244  *      CRI Atom Player API
  245  *=========================================================================*/
  255 #define criAtomPlayer_SetDefaultConfigForStandardPlayer(p_config)   \
  256 {\
  257     (p_config)->max_channels        = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  258     (p_config)->max_sampling_rate   = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  259     (p_config)->streaming_flag      = CRI_TRUE;\
  260     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  261     (p_config)->decode_latency      = CRIATOM_DEFAULT_DECODE_LATENCY;\
  262 }
  263 
  273 #define criAtomPlayer_SetDefaultConfigForAdxPlayer(p_config)    \
  274 {\
  275     (p_config)->max_channels        = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  276     (p_config)->max_sampling_rate   = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  277     (p_config)->streaming_flag      = CRI_TRUE;\
  278     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  279     (p_config)->decode_latency      = CRIATOM_DEFAULT_DECODE_LATENCY;\
  280 }
  281 
  291 #define criAtomPlayer_SetDefaultConfigForHcaPlayer(p_config)    \
  292 {\
  293     (p_config)->max_channels        = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  294     (p_config)->max_sampling_rate   = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  295     (p_config)->streaming_flag      = CRI_TRUE;\
  296     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  297     (p_config)->decode_latency      = CRIATOM_DEFAULT_DECODE_LATENCY;\
  298 }
  299 
  309 #define criAtomPlayer_SetDefaultConfigForHcaMxPlayer(p_config)  \
  310 {\
  311     (p_config)->max_channels        = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  312     (p_config)->max_sampling_rate   = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  313     (p_config)->streaming_flag      = CRI_TRUE;\
  314 }
  315 
  325 #define criAtomPlayer_SetDefaultConfigForWavePlayer(p_config)   \
  326 {\
  327     (p_config)->max_channels        = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  328     (p_config)->max_sampling_rate   = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  329     (p_config)->streaming_flag      = CRI_TRUE;\
  330     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  331     (p_config)->decode_latency      = CRIATOM_DEFAULT_DECODE_LATENCY;\
  332 }
  333 
  343 #define criAtomPlayer_SetDefaultConfigForAiffPlayer(p_config)   \
  344 {\
  345     (p_config)->max_channels        = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  346     (p_config)->max_sampling_rate   = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  347     (p_config)->streaming_flag      = CRI_TRUE;\
  348     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  349     (p_config)->decode_latency      = CRIATOM_DEFAULT_DECODE_LATENCY;\
  350 }
  351 
  361 #define criAtomPlayer_SetDefaultConfigForRawPcmPlayer(p_config) \
  362 {\
  363     (p_config)->pcm_format          = CRIATOM_PCM_FORMAT_SINT16;\
  364     (p_config)->max_channels        = CRIATOM_DEFAULT_INPUT_MAX_CHANNELS;\
  365     (p_config)->max_sampling_rate   = CRIATOM_DEFAULT_INPUT_MAX_SAMPLING_RATE;\
  366     (p_config)->sound_renderer_type = CRIATOM_SOUND_RENDERER_DEFAULT;\
  367     (p_config)->decode_latency      = CRIATOM_DEFAULT_DECODE_LATENCY;\
  368 }
  369 
  370 /*==========================================================================
  371  *      CRI Atom D-BAS API
  372  *=========================================================================*/
  382 #define criAtomDbas_SetDefaultConfig(p_config)  \
  383 {\
  384     (p_config)->identifier  = 0;\
  385     (p_config)->max_streams = CRIATOM_DEFAULT_DBAS_MAX_STREAMS;\
  386     (p_config)->max_bps     = CRIATOM_DEFAULT_DBAS_MAX_BPS;\
  387     (p_config)->max_mana_streams    = 0;\
  388     (p_config)->max_mana_bps        = 0;\
  389     (p_config)->num_securement_buffers = CRIATOMDBAS_DEFAULT_NUM_SECUREMENT_BUFFERS;\
  390 }
  391 
  392 /* ========================================================================*/
  393 /*       CRI Atom Streaming Cache API                                      */
  394 /* ========================================================================*/
  405 #define criAtomStreamingCache_SetDefaultConfig(p_config)    \
  406 {\
  407     (p_config)->max_files       = CRIATOM_STREAMING_CACHE_DEFAULT_NUM_FILES;\
  408     (p_config)->max_path        = CRIFS_CONFIG_DEFAULT_MAX_PATH;\
  409     (p_config)->cache_size      = CRIATOM_STREAMING_CACHE_DEFAULT_CACHE_SIZE;\
  410 }
  411 
  412 /* ========================================================================*/
  413 /*       CRI Atom Meter API                                                */
  414 /* ========================================================================*/
  415 
  424 #define criAtomMeter_SetDefaultConfigForLevelMeter(p_config) \
  425 {\
  426     (p_config)->interval = 50;\
  427     (p_config)->hold_time = 1000;\
  428 }
  429 
  438 #define criAtomMeter_SetDefaultConfigForLoudnessMeter(p_config) \
  439 {\
  440     (p_config)->short_term_time = 3;\
  441     (p_config)->integrated_time = 600;\
  442 }
  443 
  452 #define criAtomMeter_SetDefaultConfigForTruePeakMeter(p_config) \
  453 {\
  454     (p_config)->sample_clipping = CRI_TRUE;\
  455     (p_config)->interval = 50;\
  456     (p_config)->hold_time = 1000; \
  457 }
  458 
  459 /***************************************************************************
  460  *      データ型宣言
  461  *      Data Type Declarations
  462  ***************************************************************************/
  463 /*==========================================================================
  464  *      CRI Atom API
  465  *=========================================================================*/
  475 typedef enum CriAtomThreadModelTag {
  483     CRIATOM_THREAD_MODEL_MULTI = 0,
  484     
  495     CRIATOM_THREAD_MODEL_MULTI_USER_DRIVEN = 3,
  496     
  504     CRIATOM_THREAD_MODEL_USER_MULTI = 1,
  505     
  514     CRIATOM_THREAD_MODEL_SINGLE = 2,
  515     
  516     /* enum size is 4bytes */
  517     CRIATOM_THREAD_MODEL_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
  518 } CriAtomThreadModel;
  519 
  540 typedef struct CriAtomConfigTag {
  547     CriAtomThreadModel thread_model;
  548 
  594     CriFloat32 server_frequency;
  595 
  603     const CriFsConfig *fs_config;
  604 
  615     void *context;
  616 
  625     CriUint32 version;
  626 
  641     CriSint32 max_players;
  642 } CriAtomConfig;
  643 
  669 typedef void *(CRIAPI *CriAtomMallocFunc)(void *obj, CriUint32 size);
  670 
  692 typedef void (CRIAPI *CriAtomFreeFunc)(void *obj, void *mem);
  693 
  716 typedef void (CRIAPI *CriAtomAudioFrameStartCbFunc)(void *obj);
  717 
  740 typedef void (CRIAPI *CriAtomAudioFrameEndCbFunc)(void *obj);
  741 
  753 typedef enum CriAtomSoundRendererTypeTag {
  754     CRIATOM_SOUND_RENDERER_NATIVE = 1,      
  755     CRIATOM_SOUND_RENDERER_ASR = 2,         
  756     CRIATOM_SOUND_RENDERER_HAPTIC = 3,
  757 
  758     CRIATOM_SOUND_RENDERER_HW1 = (0 << 2) | CRIATOM_SOUND_RENDERER_NATIVE,      
  759     CRIATOM_SOUND_RENDERER_HW2 = (1 << 2) | CRIATOM_SOUND_RENDERER_NATIVE,      
  760     CRIATOM_SOUND_RENDERER_HW3 = (2 << 2) | CRIATOM_SOUND_RENDERER_NATIVE,      
  761     CRIATOM_SOUND_RENDERER_HW4 = (3 << 2) | CRIATOM_SOUND_RENDERER_NATIVE,      
  763     CRIATOM_SOUND_RENDERER_ANY = 0,         
  765     /* enum size is 4bytes */
  766     CRIATOM_SOUND_RENDERER_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
  767 } CriAtomSoundRendererType;
  768 
  777 typedef enum CriAtomSpeakerIdTag {
  778     CRIATOM_SPEAKER_FRONT_LEFT = 0,             
  779     CRIATOM_SPEAKER_FRONT_RIGHT = 1,            
  780     CRIATOM_SPEAKER_FRONT_CENTER = 2,           
  781     CRIATOM_SPEAKER_LOW_FREQUENCY = 3,          
  782     CRIATOM_SPEAKER_SURROUND_LEFT = 4,          
  783     CRIATOM_SPEAKER_SURROUND_RIGHT = 5,         
  784     CRIATOM_SPEAKER_SURROUND_BACK_LEFT = 6,     
  785     CRIATOM_SPEAKER_SURROUND_BACK_RIGHT = 7,    
  787     /* enum size is 4bytes */
  788     CRIATOM_SPEAKER_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
  789 } CriAtomSpeakerId;
  790 
  799 typedef struct CriAtomPerformanceInfoTag {
  800     CriUint32 server_process_count;     
  801     CriUint32 last_server_time;         
  802     CriUint32 max_server_time;          
  803     CriUint32 average_server_time;      
  804     CriUint32 last_server_interval;     
  805     CriUint32 max_server_interval;      
  806     CriUint32 average_server_interval;  
  807 } CriAtomPerformanceInfo;
  808 
  817 typedef enum CriAtomEncodeQualityTag {
  818     CRIATOM_ENCODE_QUALITY_LOWEST = 0,  
  819     CRIATOM_ENCODE_QUALITY_LOW,         
  820     CRIATOM_ENCODE_QUALITY_MIDDLE,      
  821     CRIATOM_ENCODE_QUALITY_HIGH,        
  822     CRIATOM_ENCODE_QUALITY_HIGHEST,     
  824     /* enum size is 4bytes */
  825     CRIATOM_ENCODE_QUALITY_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
  826 } CriAtomEncodeQuality;
  827 
  846 typedef CriUint32 CriAtomFormat;
  847 #define CRIATOM_FORMAT_NONE         (0x00000000)        
  848 #define CRIATOM_FORMAT_ADX          (0x00000001)        
  849 #define CRIATOM_FORMAT_HCA          (0x00000003)        
  850 #define CRIATOM_FORMAT_HCA_MX       (0x00000004)        
  851 #define CRIATOM_FORMAT_WAVE         (0x00000005)        
  852 #define CRIATOM_FORMAT_RAW_PCM      (0x00000006)        
  853 #define CRIATOM_FORMAT_AIFF         (0x00000007)        
  854 #define CRIATOM_FORMAT_VIBRATION    (0x00000008)        
  855 #define CRIATOM_FORMAT_AUDIO_BUFFER (0x00000009)        
  856 #define CRIATOM_FORMAT_HW1          (0x00010001)        
  857 #define CRIATOM_FORMAT_HW2          (0x00010002)        
  867 typedef struct CriAtomFormatInfoTag {
  868     CriAtomFormat format;               
  869     CriSint32 sampling_rate;            
  870     CriSint64 num_samples;              
  871     CriSint64 loop_offset;              
  872     CriSint64 loop_length;              
  873     CriSint32 num_channels;             
  874     CriUint32 reserved[1];              
  875 } CriAtomFormatInfo;
  876 
  884 typedef enum CriAtomPcmFormatTag {
  885     CRIATOM_PCM_FORMAT_SINT16 = 0,
  886     CRIATOM_PCM_FORMAT_FLOAT32,
  887 
  888     /* enum size is 4bytes */
  889     CRIATOM_PCM_FORMAT_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
  890 } CriAtomPcmFormat;
  891 
  899 typedef struct CriAtomStreamingInfoTag {
  906     CriSint32   num_streaming;  
  915     CriFloat32  total_bps;
  916 
  929     CriFloat32  worst_latency;
  930 } CriAtomStreamingInfo;
  931 
  938 typedef enum CriAtomParameterIdTag {
  939     CRIATOM_PARAMETER_ID_VOLUME                 =  0,   
  940     CRIATOM_PARAMETER_ID_FREQUENCY_RATIO        =  1,   
  942     /* enum size is 4bytes */
  943     CRIATOM_PARAMETER_ID_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
  944 } CriAtomParameterId;
  945 
  952 typedef enum CriAtomVoiceStopReasonTag {
  953     CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOP = 0,                    
  954     CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOPWITHOUTRELEASE,          
  955     CRIATOM_VOICE_STOP_REASON_PLAYBACK_STOP,                        
  956     CRIATOM_VOICE_STOP_REASON_PLAYBACK_STOPWITHOUTRELEASE,          
  957     CRIATOM_VOICE_STOP_REASON_SOUNDPLAYER_DESTROY,                  
  958     CRIATOM_VOICE_STOP_REASON_FADER_STOP,                           
  959     CRIATOM_VOICE_STOP_REASON_PLAYER_STOP,                          
  960     CRIATOM_VOICE_STOP_REASON_AWB_STOP,                             
  961     CRIATOM_VOICE_STOP_REASON_STREAMING_CACHE_STOP,                 
  962     CRIATOM_VOICE_STOP_REASON_PLAYER_FORCE_STOP,                    
  963     CRIATOM_VOICE_STOP_REASON_PLAYER_DESTROY,                       
  964     CRIATOM_VOICE_STOP_REASON_MTPLAYER_STOP,                        
  965     CRIATOM_VOICE_STOP_REASON_VOICE_POOL_DESTROY,                   
  966     CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE1,                    
  967     CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE2,                    
  968     CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE3,                    
  969     CRIATOM_VOICE_STOP_REASON_VOICE_STEAL_CASE4,                    
  970     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_VIRTUAL_VOICE_BEYOND_LIFE_TIME,   
  971     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_CANT_CALC_3DPOS,                  
  972     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_INTERNAL_PLAYBACK_CANCEL,         
  973     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_PLAYER_NO_RETRY,               
  974     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_FAILED_RETRY_BEYOND_LIFE_TIME,    
  975     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_PLAYEND,            
  976     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_ERROR,              
  977     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_IMPOSSIBLE_RETRY,                 
  978     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_PLAYER_STATUS_STOP,               
  979     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_INVALID_SERVER_REQUEST,           
  980     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_SILENT_MODE_STOP,                 
  981     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_SOUNDCOMPLEX_STATUS_ERROR,        
  982     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_ELEMENT_CASE1,                 
  983     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NO_ELEMENT_CASE2,                 
  984     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_STOP_NOT_PLAYING_ELEMENT,         
  985     CRIATOM_VOICE_STOP_REASON_SOUND_SERVER_RESULT_NOT_ACTIVE_VOICE,                 
  986     CRIATOM_VOICE_STOP_REASON_ELEMENT_FREE,                         
  987     CRIATOM_VOICE_STOP_REASON_EXPLAYER_STOP_ERROR_HN,               
  988     CRIATOM_VOICE_STOP_REASON_ACB_RELEASE,                          
  989     CRIATOM_VOICE_STOP_REASON_VOICE_ALLOCATE_FAIL,                  
  990     CRIATOM_VOICE_STOP_REASON_VOICE_RESET,                          
  991     CRIATOM_VOICE_STOP_REASON_VOICE_VIRTUALIZE,                     
  992     CRIATOM_VOICE_STOP_REASON_PLAYBACKSOUND_ALLOCATE_FAIL,          
  993     CRIATOM_VOICE_STOP_REASON_STOP_ACTION_WITH_BEATSYNC,            
  994     CRIATOM_VOICE_STOP_REASON_START_CANCEL_WITH_BEATSYNC,           
  995     CRIATOM_VOICE_STOP_REASON_STOP_ACTION,                          
  996     CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE0,               
  997     CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE1,               
  998     CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE2,               
  999     CRIATOM_VOICE_STOP_REASON_BLOCK_TRANSITION_CASE3,               
 1000     CRIATOM_VOICE_STOP_REASON_CATEGORY_CUE_LIMIT,                   
 1001     CRIATOM_VOICE_STOP_REASON_UNSET_ACB,                            
 1002     CRIATOM_VOICE_STOP_REASON_SEQUENCE_END,                         
 1003     CRIATOM_VOICE_STOP_REASON_BLODK_END,                            
 1004     CRIATOM_VOICE_STOP_REASON_SEQUENCE_EXECUTE,                     
 1005     CRIATOM_VOICE_STOP_REASON_TRACK_MONO,                           
 1006     CRIATOM_VOICE_STOP_REASON_FADER_STOP_IMMEDIATE,                 
 1007     CRIATOM_VOICE_STOP_REASON_CUE_LIMIT,                            
 1008     CRIATOM_VOICE_STOP_REASON_STOP_ACB,                             
 1009     CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_ADD_PLAYER,              
 1010     CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_DELETE_PLAYER,           
 1011     CRIATOM_VOICE_STOP_REASON_SOUND_OBJECT_DELETE_ALL_PLAYER,       
 1012     CRIATOM_VOICE_STOP_REASON_UNREGISTER_ACF,                       
 1013     CRIATOM_VOICE_STOP_REASON_EXPLAYER_DESTROY,                     
 1014     CRIATOM_VOICE_STOP_REASON_EXPLAYER_ATTACH_FADER,                
 1015     CRIATOM_VOICE_STOP_REASON_EXPLAYER_DETACH_FADER,                
 1016     CRIATOM_VOICE_STOP_REASON_DETACH_AWB,                           
 1017     CRIATOM_VOICE_STOP_MULTIPLE_PLAYBACK_PROHIBITION_TIME,          
 1018     CRIATOM_VOICE_STOP_REASON_CATEGORY_STOP,                        
 1019     CRIATOM_VOICE_STOP_REASON_CATEGORY_STOPWITHOUTRELEASE,          
 1020     CRIATOM_VOICE_STOP_REASON_NOTE_OFF,                             
 1021     CRIATOM_VOICE_STOP_REASON_REGISTER_ACF,                         
 1023     /* initial state */
 1024     CRIATOM_VOICE_STOP_REASON_NONE = 0x7FFFFFFE,
 1025     /* enum size is 4bytes */
 1026     CRIATOM_VOICE_STOP_REASON_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1027 } CriAtomVoiceStopReason;
 1028 
 1038 typedef enum CriAtomAmbisonicsOrderTypeTag {
 1039     CRIATOMAMBISONICS_ORDER_TYPE_NONE = 0,  
 1040     CRIATOMAMBISONICS_ORDER_TYPE_FIRST,     
 1041     CRIATOMAMBISONICS_ORDER_TYPE_1P = CRIATOMAMBISONICS_ORDER_TYPE_FIRST,   
 1042     CRIATOMAMBISONICS_ORDER_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1043 } CriAtomAmbisonicsOrderType;
 1044 
 1045 /*==========================================================================
 1046  *      CRI Atom HCA-MX API
 1047  *=========================================================================*/
 1063 typedef struct CriAtomHcaMxConfigTag {
 1073     CriFloat32 server_frequency;
 1074 
 1085     CriSint32 num_mixers;
 1086 
 1092     CriSint32 max_players;
 1093 
 1107     CriSint32 max_input_channels;
 1108 
 1117     CriSint32 max_sampling_rate;
 1118 
 1132     CriSint32 output_channels;
 1133 
 1142     CriSint32 output_sampling_rate;
 1143 
 1156     CriAtomSoundRendererType sound_renderer_type;
 1157 } CriAtomHcaMxConfig;
 1158 
 1159 /*==========================================================================
 1160  *      CRI Atom Decrypter API
 1161  *=========================================================================*/
 1162 
 1163 
 1164 /*==========================================================================
 1165  *      CRI Atom AWB API
 1166  *=========================================================================*/
 1167 struct CriAtomAwbTag;
 1176 typedef struct CriAtomAwbTag *CriAtomAwbHn;
 1177 
 1186 typedef enum CriAtomAwbStatusTag {
 1187     CRIATOMAWB_STATUS_STOP = 0,     
 1188     CRIATOMAWB_STATUS_LOADING,      
 1189     CRIATOMAWB_STATUS_COMPLETE,     
 1190     CRIATOMAWB_STATUS_ERROR,        
 1192     /* enum size is 4bytes */
 1193     CRIATOMAWB_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1194 } CriAtomAwbStatus;
 1195 
 1204 typedef enum CriAtomAwbTypeTag {
 1205     CRIATOMAWB_TYPE_TOC = 0,    
 1206     CRIATOMAWB_TYPE_ONMEMORY,   
 1207     CRIATOMAWB_TYPE_ERROR,      
 1209     /* enum size is 4bytes */
 1210     CRIATOMAWB_TYPE_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 1211 } CriAtomAwbType;
 1212 
 1213 /*==========================================================================
 1214  *      CRI Atom Player API
 1215  *=========================================================================*/
 1233 typedef struct CriAtomStandardPlayerConfigTag {
 1276     CriSint32 max_channels;
 1277 
 1294     CriSint32 max_sampling_rate;
 1295 
 1312     CriBool streaming_flag;
 1313 
 1326     CriAtomSoundRendererType sound_renderer_type;
 1327 
 1362     CriSint32 decode_latency;
 1363 } CriAtomStandardPlayerConfig;
 1364 
 1381 typedef struct CriAtomAdxPlayerConfigTag {
 1424     CriSint32 max_channels;
 1425 
 1442     CriSint32 max_sampling_rate;
 1443 
 1460     CriBool streaming_flag;
 1461 
 1474     CriAtomSoundRendererType sound_renderer_type;
 1475 
 1510     CriSint32 decode_latency;
 1511 } CriAtomAdxPlayerConfig;
 1512 
 1529 typedef struct CriAtomHcaPlayerConfigTag {
 1537     CriSint32 max_channels;
 1538 
 1555     CriSint32 max_sampling_rate;
 1556 
 1573     CriBool streaming_flag;
 1574 
 1587     CriAtomSoundRendererType sound_renderer_type;
 1588 
 1623     CriSint32 decode_latency;
 1624 } CriAtomHcaPlayerConfig;
 1625 
 1642 typedef struct CriAtomHcaMxPlayerConfigTag {
 1650     CriSint32 max_channels;
 1651 
 1668     CriSint32 max_sampling_rate;
 1669 
 1686     CriBool streaming_flag;
 1687 } CriAtomHcaMxPlayerConfig;
 1688 
 1705 typedef struct CriAtomWavePlayerConfigTag {
 1713     CriSint32 max_channels;
 1714 
 1731     CriSint32 max_sampling_rate;
 1732 
 1749     CriBool streaming_flag;
 1750 
 1763     CriAtomSoundRendererType sound_renderer_type;
 1764 
 1799     CriSint32 decode_latency;
 1800 } CriAtomWavePlayerConfig;
 1801 
 1818 typedef struct CriAtomAiffPlayerConfigTag {
 1826     CriSint32 max_channels;
 1827 
 1844     CriSint32 max_sampling_rate;
 1845 
 1862     CriBool streaming_flag;
 1863 
 1876     CriAtomSoundRendererType sound_renderer_type;
 1877 
 1912     CriSint32 decode_latency;
 1913 } CriAtomAiffPlayerConfig;
 1914 
 1931 typedef struct CriAtomRawPcmPlayerConfigTag {
 1940     CriAtomPcmFormat pcm_format;
 1941 
 1952     CriSint32 max_channels;
 1953 
 1968     CriSint32 max_sampling_rate;
 1969 
 1982     CriAtomSoundRendererType sound_renderer_type;
 1983 
 2018     CriSint32 decode_latency;
 2019 } CriAtomRawPcmPlayerConfig;
 2020 
 2057 typedef enum CriAtomPlayerStatusTag {
 2058     CRIATOMPLAYER_STATUS_STOP = 0,      
 2059     CRIATOMPLAYER_STATUS_PREP = 1,      
 2060     CRIATOMPLAYER_STATUS_PLAYING = 2,   
 2061     CRIATOMPLAYER_STATUS_PLAYEND = 3,   
 2062     CRIATOMPLAYER_STATUS_ERROR = 4,     
 2064     /* enum size is 4bytes */
 2065     CRIATOMPLAYER_STATUS_ENUM_SIZE_IS_4BYTES = 0x7FFFFFFF
 2066 } CriAtomPlayerStatus;
 2067 
 2068 struct CriAtomPlayerTag;
 2086 typedef struct CriAtomPlayerTag *CriAtomPlayerHn;
 2087 
 2125 typedef void (CRIAPI *CriAtomPlayerDataRequestCbFunc)(void *obj, CriAtomPlayerHn player);
 2126 
 2150 typedef void (CRIAPI *CriAtomPlayerStatusChangeCbFunc)(void *obj, CriAtomPlayerHn player);
 2151 
 2171 typedef void (CRIAPI *CriAtomPlayerParameterChangeCbFunc)(void *obj,
 2172     CriAtomPlayerHn player, CriAtomParameterId id, CriFloat32 value);
 2173 
 2220 typedef void (CRIAPI *CriAtomPlayerFilterCbFunc)(void *obj, CriAtomPcmFormat format,
 2221     CriSint32 num_channels, CriSint32 num_samples, void *data[]);
 2222 
 2244 typedef void (CRIAPI *CriAtomPlayerLoadRequestCbFunc)(void *obj,
 2245     CriFsBinderHn binder, const CriChar8 *path, CriSint64 offset, CriSint64 length);
 2246 
 2247 /*==========================================================================
 2248  *      CRI Atom D-BAS API
 2249  *=========================================================================*/
 2260 typedef CriSint32 CriAtomDbasId;
 2261 
 2274 typedef struct CriAtomDbasConfigTag {
 2281     CriUint32 identifier;               
 2292     CriSint32 max_streams;
 2305     CriSint32 max_bps;
 2314     CriSint32 max_mana_streams;
 2323     CriSint32 max_mana_bps;
 2342     CriSint32 num_securement_buffers;
 2343 } CriAtomDbasConfig;
 2344 
 2345 /* ========================================================================*/
 2346 /*       CRI Atom Streaming Cache API                                      */
 2347 /* ========================================================================*/
 2356 typedef CriUintPtr CriAtomStreamingCacheId;
 2357 
 2372 typedef struct CriAtomStreamingCacheConfigTag {
 2378     CriSint32 max_path;
 2384     CriSint32 max_files;
 2393     CriSint32 cache_size;
 2394 } CriAtomStreamingCacheConfig;
 2395 
 2396 /* ========================================================================*/
 2397 /*       CRI Atom DSP API                                                  */
 2398 /* ========================================================================*/
 2399 
 2409 typedef struct CriAtomDspPitchShifterConfigTag {
 2421     CriSint32 mode;
 2422 
 2430     CriSint32 window_size;
 2431 
 2439     CriSint32 overlap_times;
 2440 } CriAtomDspPitchShifterConfig;
 2441 
 2450 typedef enum CriAtomDspPitchShifterParameterIdTag {
 2460     CRIATOMDSP_PITCHSHIFTER_PARAM_PITCH     = 0,
 2461 
 2474     CRIATOMDSP_PITCHSHIFTER_PARAM_FORMANT   = 1,
 2475 
 2487     CRIATOMDSP_PITCHSHIFTER_PARAM_MODE      = 2
 2488 } CriAtomDspPitchShifterParameterId;
 2489 
 2499 typedef struct CriAtomDspTimeStretchConfigTag {
 2500     CriSint32 reserved;
 2501 } CriAtomDspTimeStretchConfig;
 2502 
 2511 typedef enum CriAtomDspTimeStretchParameterIdTag {
 2522     CRIATOMDSP_TIMESTRETCH_PARAM_RATIO      = 0,
 2523 
 2533     CRIATOMDSP_TIMESTRETCH_PARAM_FRAME_TIME = 1,
 2534 
 2545     CRIATOMDSP_TIMESTRETCH_PARAM_QUALITY    = 2
 2546 } CriAtomDspTimeStretchParameterId;
 2547 
 2556 typedef struct CriAtomDspSpectraConfigTag {
 2564     CriUint32 num_bands;
 2565 } CriAtomDspSpectraConfig;
 2566 
 2567 /* スペクトラムアナライザハンドル */
 2568 struct CriAtomDspSpectraObj;
 2569 typedef struct CriAtomDspSpectraObj *CriAtomDspSpectraHn;
 2570 
 2571 /* ========================================================================*/
 2572 /*       CRI Atom Meter API                                                */
 2573 /* ========================================================================*/
 2574 
 2591 typedef struct {
 2597     CriSint32 interval;
 2598 
 2604     CriSint32 hold_time;
 2605 } CriAtomLevelMeterConfig;
 2606 
 2617 typedef struct CriAtomLevelInfoTag {
 2623     CriSint32 num_channels;
 2624     
 2631     CriFloat32 rms_levels[8];
 2632     
 2638     CriFloat32 peak_levels[8];
 2639     
 2645     CriFloat32 peak_hold_levels[8];
 2646 } CriAtomLevelInfo;
 2647 
 2663 typedef struct {
 2670     CriSint32 short_term_time;
 2671 
 2678     CriSint32 integrated_time;
 2679 } CriAtomLoudnessMeterConfig;
 2680 
 2691 typedef struct CriAtomLoudnessInfoTag {
 2698     CriSint32       count;
 2704     CriFloat32      momentary;
 2710     CriFloat32      short_term;
 2716     CriFloat32      integrated;
 2717 } CriAtomLoudnessInfo;
 2718 
 2734 typedef struct {
 2741     CriBool sample_clipping;
 2742 
 2748     CriSint32 interval;
 2749 
 2755     CriSint32 hold_time;
 2756 } CriAtomTruePeakMeterConfig;
 2757 
 2768 typedef struct CriAtomTruePeakInfoTag {
 2774     CriSint32       num_channels;
 2775     
 2781     CriFloat32      levels[8];
 2782     
 2788     CriFloat32      hold_levels[8];
 2789 } CriAtomTruePeakInfo;
 2790 
 2791 /***************************************************************************
 2792  *      変数宣言
 2793  *      Prototype Variables
 2794  ***************************************************************************/
 2795 
 2796 /***************************************************************************
 2797  *      関数宣言
 2798  *      Prototype Functions
 2799  ***************************************************************************/
 2800 #ifdef __cplusplus
 2801 extern "C" {
 2802 #endif
 2803 
 2804 /*==========================================================================
 2805  *      CRI Atom API
 2806  *=========================================================================*/
 2826 CriUint32 CRIAPI criAtom_GetVersionNumber(void);
 2827 
 2853 CriSint32 CRIAPI criAtom_CalculateWorkSize(const CriAtomConfig *config);
 2854 
 3009 void CRIAPI criAtom_Initialize(const CriAtomConfig *config, void *work, CriSint32 work_size);
 3010 
 3020 void CRIAPI criAtom_Finalize(void);
 3021 
 3032 CriBool CRIAPI criAtom_IsInitialized(void);
 3033 
 3065 CriBool CRIAPI criAtom_IsAudioOutputActive(void);
 3066 
 3097 void CRIAPI criAtom_ExecuteMain(void);
 3098 
 3120 void CRIAPI criAtom_ExecuteAudioProcess(void);
 3121 
 3169 void CRIAPI criAtom_SetUserMallocFunction(CriAtomMallocFunc func, void *obj);
 3170 
 3216 void CRIAPI criAtom_SetUserFreeFunction(CriAtomFreeFunc func, void *obj);
 3217 
 3244 void CRIAPI criAtom_SetAudioFrameStartCallback(
 3245     CriAtomAudioFrameStartCbFunc func, void *obj);
 3246 
 3273 void CRIAPI criAtom_SetAudioFrameEndCallback(
 3274     CriAtomAudioFrameEndCbFunc func, void *obj);
 3275 
 3309 void CRIAPI criAtom_Lock(void);
 3310 
 3318 void CRIAPI criAtom_Unlock(void);
 3319 
 3342 void CRIAPI criAtom_SetChannelMapping(CriSint32 nch, CriUint32 type);
 3343 
 3384 void CRIAPI criAtom_AttachPerformanceMonitor(void);
 3385 
 3397 void CRIAPI criAtom_DetachPerformanceMonitor(void);
 3398 
 3409 void CRIAPI criAtom_ResetPerformanceMonitor(void);
 3410 
 3420 void CRIAPI criAtom_GetPerformanceInfo(CriAtomPerformanceInfo *info);
 3421 
 3433 CriSint32 CRIAPI criAtom_CalculateAdxBitrate(
 3434     CriSint32 num_channels, CriSint32 sampling_rate);
 3435 
 3450 CriSint32 CRIAPI criAtom_CalculateHcaBitrate(
 3451     CriSint32 num_channels, CriSint32 sampling_rate, CriAtomEncodeQuality quality);
 3452 
 3467 CriSint32 CRIAPI criAtom_CalculateHcaMxBitrate(
 3468     CriSint32 num_channels, CriSint32 sampling_rate, CriAtomEncodeQuality quality);
 3469 
 3488 CriBool CRIAPI criAtom_GetStreamingInfo(CriAtomStreamingInfo* streaming_info);
 3489 
 3513 CriBool CRIAPI criAtom_SetFreeTimeBufferingFlagForDefaultDevice(CriBool flag);
 3514 
 3515 
 3516 /*==========================================================================
 3517  *      CRI Atom HCA-MX API
 3518  *=========================================================================*/
 3547 CriSint32 CRIAPI criAtomHcaMx_CalculateWorkSize(const CriAtomHcaMxConfig *config);
 3548 
 3596 void CRIAPI criAtomHcaMx_SetConfigForWorkSizeCalculation(const CriAtomHcaMxConfig *config);
 3597 
 3629 void CRIAPI criAtomHcaMx_Initialize(
 3630     const CriAtomHcaMxConfig *config, void *work, CriSint32 work_size);
 3631 
 3649 void CRIAPI criAtomHcaMx_Finalize(void);
 3650 
 3664 void CRIAPI criAtomHcaMx_SetBusSendLevelByName(
 3665     CriSint32 mixer_id, const CriChar8* bus_name, CriFloat32 level);
 3666 
 3680 void CRIAPI criAtomHcaMx_SetFrequencyRatio(CriSint32 mixer_id, CriFloat32 ratio);
 3681 
 3682 /*==========================================================================
 3683  *      CRI Atom Decrypter API
 3684  *=========================================================================*/
 3685 
 3686 
 3687 
 3688 /*==========================================================================
 3689  *      CRI Atom AWB API
 3690  *=========================================================================*/
 3707 CriSint32 CRIAPI criAtomAwb_CalculateWorkSizeForLoadToc(CriSint32 num);
 3708 
 3737 CriAtomAwbHn CRIAPI criAtomAwb_LoadToc(
 3738     CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size);
 3739 
 3754 CriAtomAwbHn CRIAPI criAtomAwb_LoadTocById(
 3755     CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size);
 3756 
 3791 CriAtomAwbHn CRIAPI criAtomAwb_LoadTocAsync(
 3792     CriFsBinderHn binder, const CriChar8 *path, void *work, CriSint32 work_size);
 3793 
 3808 CriAtomAwbHn CRIAPI criAtomAwb_LoadTocAsyncById(
 3809     CriFsBinderHn binder, CriUint16 id, void *work, CriSint32 work_size);
 3810 
 3845 CriAtomAwbHn CRIAPI criAtomAwb_LoadFromMemory(
 3846     void *awb_mem, CriSint32 awb_mem_size, void *work, CriSint32 work_size);
 3847 
 3858 CriAtomAwbType CRIAPI criAtomAwb_GetType(CriAtomAwbHn awb);
 3859 
 3877 CriBool CRIAPI criAtomAwb_GetWaveFileInfo(
 3878     CriAtomAwbHn awb, CriSint32 id, CriSint64 *offset, CriUint32 *size);
 3879 
 3899 void CRIAPI criAtomAwb_GetWaveDataInfo(CriAtomAwbHn awb, CriSint32 id, void **wave_data_start, CriUint32 *size);
 3900 
 3912 CriUint16 CRIAPI criAtomAwb_GetNumContents(CriAtomAwbHn awb);
 3913 
 3936 void CRIAPI criAtomAwb_Release(CriAtomAwbHn awb);
 3937 
 3958 CriBool CRIAPI criAtomAwb_IsReadyToRelease(CriAtomAwbHn awb);
 3959 
 3971 CriAtomAwbStatus CRIAPI criAtomAwb_GetStatus(CriAtomAwbHn awb);
 3972 
 3973 /*==========================================================================
 3974  *      CRI Atom Player API
 3975  *=========================================================================*/
 4006 CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForStandardPlayer(
 4007     const CriAtomStandardPlayerConfig *config);
 4008 
 4190 CriAtomPlayerHn CRIAPI criAtomPlayer_CreateStandardPlayer(
 4191     const CriAtomStandardPlayerConfig *config, void *work, CriSint32 work_size);
 4192 
 4222 CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForAdxPlayer(
 4223     const CriAtomAdxPlayerConfig *config);
 4224 
 4406 CriAtomPlayerHn CRIAPI criAtomPlayer_CreateAdxPlayer(
 4407     const CriAtomAdxPlayerConfig *config, void *work, CriSint32 work_size);
 4408 
 4438 CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForHcaPlayer(
 4439     const CriAtomHcaPlayerConfig *config);
 4440 
 4499 CriAtomPlayerHn CRIAPI criAtomPlayer_CreateHcaPlayer(
 4500     const CriAtomHcaPlayerConfig *config, void *work, CriSint32 work_size);
 4501 
 4531 CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForHcaMxPlayer(
 4532     const CriAtomHcaMxPlayerConfig *config);
 4533 
 4592 CriAtomPlayerHn CRIAPI criAtomPlayer_CreateHcaMxPlayer(
 4593     const CriAtomHcaMxPlayerConfig *config, void *work, CriSint32 work_size);
 4594 
 4624 CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForWavePlayer(
 4625     const CriAtomWavePlayerConfig *config);
 4626 
 4691 CriAtomPlayerHn CRIAPI criAtomPlayer_CreateWavePlayer(
 4692     const CriAtomWavePlayerConfig *config, void *work, CriSint32 work_size);
 4693 
 4723 CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForAiffPlayer(
 4724     const CriAtomAiffPlayerConfig *config);
 4725 
 4790 CriAtomPlayerHn CRIAPI criAtomPlayer_CreateAiffPlayer(
 4791     const CriAtomAiffPlayerConfig *config, void *work, CriSint32 work_size);
 4792 
 4822 CriSint32 CRIAPI criAtomPlayer_CalculateWorkSizeForRawPcmPlayer(
 4823     const CriAtomRawPcmPlayerConfig *config);
 4824 
 4883 CriAtomPlayerHn CRIAPI criAtomPlayer_CreateRawPcmPlayer(
 4884     const CriAtomRawPcmPlayerConfig *config, void *work, CriSint32 work_size);
 4885 
 4904 void CRIAPI criAtomPlayer_Destroy(CriAtomPlayerHn player);
 4905 
 4974 void CRIAPI criAtomPlayer_SetData(
 4975     CriAtomPlayerHn player, void *buffer, CriSint32 buffer_size);
 4976 
 5078 void CRIAPI criAtomPlayer_SetFile(
 5079     CriAtomPlayerHn player, CriFsBinderHn binder, const CriChar8 *path);
 5080 
 5175 void CRIAPI criAtomPlayer_SetContentId(
 5176     CriAtomPlayerHn player, CriFsBinderHn binder, CriSint32 id);
 5177 
 5255 void CRIAPI criAtomPlayer_SetWaveId(
 5256     CriAtomPlayerHn player, CriAtomAwbHn awb, CriSint32 id);
 5257 
 5293 void CRIAPI criAtomPlayer_SetPreviousDataAgain(CriAtomPlayerHn player);
 5294 
 5320 void CRIAPI criAtomPlayer_DeferCallback(CriAtomPlayerHn player);
 5321 
 5470 void CRIAPI criAtomPlayer_Start(CriAtomPlayerHn player);
 5471 
 5527 void CRIAPI criAtomPlayer_Stop(CriAtomPlayerHn player);
 5528 
 5618 void CRIAPI criAtomPlayer_Pause(CriAtomPlayerHn player, CriBool flag);
 5619 
 5639 CriBool CRIAPI criAtomPlayer_IsPaused(CriAtomPlayerHn player);
 5640 
 5723 CriAtomPlayerStatus CRIAPI criAtomPlayer_GetStatus(CriAtomPlayerHn player);
 5724 
 5739 CriSint32 CRIAPI criAtomPlayer_GetNumChannels(CriAtomPlayerHn player);
 5740 
 5774 CriBool CRIAPI criAtomPlayer_GetNumPlayedSamples(
 5775     CriAtomPlayerHn player, CriSint64 *num_played, CriSint32 *sampling_rate);
 5776 
 5796 CriSint64 CRIAPI criAtomPlayer_GetDecodedDataSize(CriAtomPlayerHn player);
 5797 
 5817 CriSint64 CRIAPI criAtomPlayer_GetNumDecodedSamples(CriAtomPlayerHn player);
 5818 
 5851 CriSint64 CRIAPI criAtomPlayer_GetTime(CriAtomPlayerHn player);
 5852 
 5869 CriBool CRIAPI criAtomPlayer_GetFormatInfo(
 5870     CriAtomPlayerHn player, CriAtomFormatInfo *info);
 5871 
 5888 CriSint32 CRIAPI criAtomPlayer_GetInputBufferRemainSize(CriAtomPlayerHn player);
 5889 
 5911 CriSint32 CRIAPI criAtomPlayer_GetOutputBufferRemainSamples(CriAtomPlayerHn player);
 5912 
 5946 void CRIAPI criAtomPlayer_SetStartTime(CriAtomPlayerHn player, CriSint64 start_time_ms);
 5947 
 6000 void CRIAPI criAtomPlayer_SetVolume(CriAtomPlayerHn player, CriFloat32 vol);
 6001 
 6012 CriFloat32 CRIAPI criAtomPlayer_GetVolume(CriAtomPlayerHn player);
 6013 
 6056 void CRIAPI criAtomPlayer_SetChannelVolume(
 6057     CriAtomPlayerHn player, CriSint32 ch, CriFloat32 vol);
 6058 
 6179 void CRIAPI criAtomPlayer_SetSendLevel(
 6180     CriAtomPlayerHn player, CriSint32 ch, CriAtomSpeakerId spk, CriFloat32 level);
 6181 
 6201 void CRIAPI criAtomPlayer_ResetSendLevel(CriAtomPlayerHn player);
 6202 
 6270 void CRIAPI criAtomPlayer_SetPanAdx1Compatible(
 6271     CriAtomPlayerHn player, CriSint32 ch, CriFloat32 pan);
 6272 
 6292 void CRIAPI criAtomPlayer_ResetPan(CriAtomPlayerHn player);
 6293 
 6354 void CRIAPI criAtomPlayer_SetFrequencyRatio(CriAtomPlayerHn player, CriFloat32 ratio);
 6355 
 6381 void CRIAPI criAtomPlayer_SetMaxFrequencyRatio(CriAtomPlayerHn player, CriFloat32 ratio);
 6382 
 6424 void CRIAPI criAtomPlayer_LimitLoopCount(CriAtomPlayerHn player, CriSint32 count);
 6425 
 6441 void CRIAPI criAtomPlayer_SetHcaMxMixerId(CriAtomPlayerHn player, CriSint32 mixer_id);
 6442 
 6453 void CRIAPI criAtomPlayer_SetAsrRackId(CriAtomPlayerHn player, CriSint32 rack_id);
 6454 
 6472 void CRIAPI criAtomPlayer_SetRawPcmFormat(CriAtomPlayerHn player,
 6473     CriAtomPcmFormat pcm_format, CriSint32 num_channels, CriSint32 sampling_rate);
 6474 
 6592 void CRIAPI criAtomPlayer_SetDataRequestCallback(
 6593     CriAtomPlayerHn player, CriAtomPlayerDataRequestCbFunc func, void *obj);
 6594 
 6663 void CRIAPI criAtomPlayer_SetStatusChangeCallback(
 6664     CriAtomPlayerHn player, CriAtomPlayerStatusChangeCbFunc func, void *obj);
 6665 
 6689 void CRIAPI criAtomPlayer_SetParameterChangeCallback(
 6690     CriAtomPlayerHn player, CriAtomPlayerParameterChangeCbFunc func, void *obj);
 6691 
 6715 void CRIAPI criAtomPlayer_SetFilterCallback(
 6716     CriAtomPlayerHn player, CriAtomPlayerFilterCbFunc func, void *obj);
 6717 
 6744 void CRIAPI criAtomPlayer_SetLoadRequestCallback(
 6745     CriAtomPlayerHn player, CriAtomPlayerLoadRequestCbFunc func, void *obj);
 6746 
 6747 /*==========================================================================
 6748  *      Functions for HCA Streaming
 6749  *=========================================================================*/
 6750 
 6762 void CRIAPI criAtomPlayer_SetHcaFormat(CriAtomPlayerHn player,
 6763     CriSint32 num_channels, CriSint32 sampling_rate, CriSint32 bitrate);
 6764 
 6765 /*==========================================================================
 6766  *      CRI Atom D-BAS API
 6767  *=========================================================================*/
 6788 CriSint32 CRIAPI criAtomDbas_CalculateWorkSize(const CriAtomDbasConfig *config);
 6789 
 6808 CriAtomDbasId CRIAPI criAtomDbas_Create(
 6809     const CriAtomDbasConfig *config, void *work, CriSint32 work_size);
 6810 
 6819 void CRIAPI criAtomDbas_Destroy(CriAtomDbasId atom_dbas_id);
 6820 
 6847 CriSint32 CRIAPI criAtomDbas_GetStreamingPlayerHandles(
 6848     CriAtomDbasId dbas_id, CriAtomPlayerHn *players, CriSint32 length);
 6849 
 6850 /* ========================================================================*/
 6851 /*       CRI Atom Streaming Cache API                                      */
 6852 /* ========================================================================*/
 6865 CriSint32 CRIAPI criAtomStreamingCache_CalculateWorkSize(
 6866     const CriAtomStreamingCacheConfig* config);
 6867 
 6890 CriAtomStreamingCacheId CRIAPI criAtomStreamingCache_Create(
 6891     const CriAtomStreamingCacheConfig* config, void* work, CriSint32 work_size);
 6892 
 6904 void CRIAPI criAtomStreamingCache_Destroy(CriAtomStreamingCacheId stm_cache_id);
 6905 
 6920 void CRIAPI criAtomStreamingCache_Clear(CriAtomStreamingCacheId cache_id);
 6921 
 6937 CriBool CRIAPI criAtomStreamingCache_IsCachedWaveId(
 6938     CriAtomStreamingCacheId stm_cache_id, CriAtomAwbHn awb, CriSint32 id);
 6939 
 6953 CriBool CRIAPI criAtomStreamingCache_IsCachedFile(
 6954     CriAtomStreamingCacheId stm_cache_id, CriFsBinderHn src_binder, const CriChar8 *path);
 6955 
 6956 /*==========================================================================
 6957  *      CRI Atom DSP API
 6958  *=========================================================================*/
 6967 CriFloat32 criAtomDsp_ConvertParameterFromCent(CriFloat32 cent);
 6968 
 6982 CriSint32 criAtomDspSpectra_CalculateWorkSize(const CriAtomDspSpectraConfig *config);
 6983 
 7021 CriAtomDspSpectraHn criAtomDspSpectra_Create(
 7022     const CriAtomDspSpectraConfig *config, void *work, CriSint32 work_size);
 7023 
 7039 void criAtomDspSpectra_Destroy(CriAtomDspSpectraHn spectra);
 7040 
 7053 void criAtomDspSpectra_Reset(CriAtomDspSpectraHn spectra);
 7054 
 7070 void criAtomDspSpectra_Process(CriAtomDspSpectraHn spectra,
 7071     CriUint32 num_channels, CriUint32 num_samples, CriFloat32 *pcm[]);
 7072 
 7094 const CriFloat32* criAtomDspSpectra_GetLevels(CriAtomDspSpectraHn spectra);
 7095 
 7096 /* ========================================================================*/
 7097 /*       CRI Atom Meter API                                                */
 7098 /* ========================================================================*/
 7099 
 7110 CriSint32 CRIAPI criAtomMeter_CalculateWorkSizeForLevelMeter(
 7111     const CriAtomLevelMeterConfig *config);
 7112 
 7126 void CRIAPI criAtomMeter_AttachLevelMeter(
 7127     const CriAtomLevelMeterConfig *config, void *work, CriSint32 work_size);
 7128 
 7136 void CRIAPI criAtomMeter_DetachLevelMeter(void);
 7137 
 7148 void CRIAPI criAtomMeter_GetLevelInfo(CriAtomLevelInfo *info);
 7149 
 7160 CriSint32 CRIAPI criAtomMeter_CalculateWorkSizeForLoudnessMeter(const CriAtomLoudnessMeterConfig *config);
 7161 
 7175 void CRIAPI criAtomMeter_AttachLoudnessMeter(const CriAtomLoudnessMeterConfig *config, void *work, CriSint32 work_size);
 7176 
 7184 void CRIAPI criAtomMeter_DetachLoudnessMeter(void);
 7185 
 7195 void CRIAPI criAtomMeter_GetLoudnessInfo(CriAtomLoudnessInfo *info);
 7196 
 7205 void CRIAPI criAtomMeter_ResetLoudnessMeter(void);
 7206 
 7217 CriSint32 CRIAPI criAtomMeter_CalculateWorkSizeForTruePeakMeter(const CriAtomTruePeakMeterConfig *config);
 7218 
 7232 void CRIAPI criAtomMeter_AttachTruePeakMeter(const CriAtomTruePeakMeterConfig *config, void *work, CriSint32 work_size);
 7233 
 7241 void CRIAPI criAtomMeter_DetachTruePeakMeter(void);
 7242 
 7252 void CRIAPI criAtomMeter_GetTruePeakInfo(CriAtomTruePeakInfo *info);
 7253 
 7254 /***************************************************************************
 7255  *      暫定API(使用はお控え下さい)
 7256  *      Tentative API (Please don't use it)
 7257  ***************************************************************************/
 7258 /* 以下に宣言されている関数はAtomの内部処理用、ゲームエンジンとの連携等にて
 7259  * 暫定的に使用されているAPIです。
 7260  * 今後のアップデートにて予告なく変更・削除が行われるため、使用はお控え下さい。
 7261  */
 7262 typedef void (CRIAPI *CriAtomPlayerDataEndCbFunc)(void *obj, void *buffer, CriSint32 size);
 7263 typedef void (CRIAPI *CriAtomPlayerCbFunc)(void *obj, CriAtomPlayerHn player);
 7264 typedef void (CRIAPI *CriAtomPlayerDecodeCbFunc)(void *obj, CriAtomPcmFormat format,
 7265     CriSint32 num_channels, CriSint32 num_samples, void *data[]);
 7266 void CRIAPI criAtomPlayer_SetDecodeCallback(
 7267     CriAtomPlayerHn player, CriAtomPlayerDecodeCbFunc func, void *obj);
 7268 void CRIAPI criAtomPlayer_DiscardSamples(CriAtomPlayerHn player, CriSint32 num_discard);
 7269 typedef CriSint32 CriAtomWaveType;
 7270 
 7271 #ifdef __cplusplus
 7272 }
 7273 #endif
 7274 
 7275 /***************************************************************************
 7276  *      旧バージョンとの互換用
 7277  *      For compatibility with old version
 7278  ***************************************************************************/
 7279 
 7280 /* レンダラーの出力Ch数設定に応じて、自動でダウンミックスするため下記関数は無効にしています */
 7281 #define criAtomHcaMx_SetBusSendLevel(mixer_id, bus_no, level) \
 7282     criAtomExHcaMx_SetBusSendLevel(mixer_id, bus_no, level)
 7283 
 7284 #endif  /* CRI_INCL_CRI_ATOM_H */
 7285 
 7286 /* --- end of file --- */-stdin

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