• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            Cpper
            C/C++高級工程師 Android高級軟件工程師 IT集成工程師 音頻工程師 熟悉c,c++,java,c#,py,js,asp等多種語言 程序猿
            【基本介紹】
            蓋莫音頻引擎SDK1.
            6.0(類似fmod音頻api)原本為蓋莫游戲引擎開發(fā)
            當前支持win7,xmp,vista操作系統(tǒng)
            支持10種音頻格式:mp3,ogg,wav,au,aiff,mod,it,xm,s3m,flac
            支持真3d音效
            使用多線程流式播放
            支持vc和mingw系列編譯器
            注意這并不是一個播放器
            !
            本音頻SDK先后發(fā)布過1.02,1.15,1.28,1.35,1.55版本
            當前發(fā)布的為最新的1.60版本
            主要修改了接口函數和移除了音效配置
            下次修改將會增加使用dsound功能
            使用本接口與非商業(yè)用途不需要付費喔(當然商業(yè)用途需要付費哈)
            接口全文:
            下面是header全文
            /*!==========================================================================
            *  GaiMo Audio SDK1.6.0
            *     personal edition free.
            *     enterprise edition 388$
            *     emai:gaimosoft@yahoo.com
            *     website:www.gaimosoft.com
            *     please ensure openal is installed.  
            *****************************************************************************
            /*!==========================================================================
            *  GaiMo Audio SDK is a Cplusplus Library designed for game engine used(GaimoEngine.).
            *  The following audio type is supported:
            *  ogg,mp3,wav,it,mod,xm,s3m,flac,au,aiff
            *  And it support 3D playing mode and support.
            *  There are 2 versions here:
            *     personal edition free
            *     and enterprise edition 388$
            *     Emai:gaimosoft@yahoo.com
            *  libsndfile.dll is additive.
            *     PLEASE ENSURE OPENAL IS INSTALLED.
            *****************************************************************************
            //! 蓋莫游戲3d音頻引擎是成都蓋莫軟件技術工作室推出的一款專門
            //! 面向游戲開發(fā)的音頻庫,該庫具有使用簡介,功能強大的功能
            //! 本音頻庫使用于非商業(yè)產品不收取任何費用
            //! websize:www.gaimo.net
            //! email:ccsdu2004@yahoo.com.cn
            //! telephone:+86-028-67607663,
            //! fax:      +86-028-67607665
            //! 版本更新list.
            /*!==========================================================================
            *  2010.01.22 版本:1.0.0
            *     提供功能:支持wav,ogg,mp3格式
            *              使用多線程流式播放
            *              簡單易用的程序接口
            *     使用本版本需要安裝OpenAL驅動     
            ***************************************************************************
            */
            /*!==========================================================================
            *  2010.03.20 版本:1.1.0
            *     提供功能:真3d音效,及幾個音效
            *     使用本版本需要安裝OpenAL驅動     
            ***************************************************************************
            */
            /*!==========================================================================
            *  2010.05.05 版本:1.2.8
            *     增加功能:支持音頻錄入到文件(當前僅為wav格式)
            *     增加了對:it,s3m,xm,mod4種音樂文件的支持
            *     修改了幾個接口
            *     使用本版本需要安裝OpenAL驅動     
            ***************************************************************************
            */
            /*!==========================================================================
            * 2010.05.18 版本1.4.2
            *     1.平臺支持:xp,vista,win7
            *     2.編譯器支持vc6,vc7,vc9,codeblock,devc++
            *     4.增加對aiff,flac音頻格式的支持
            *     5.改用多線程錄入音頻
            ***************************************************************************
            */
            /*!==========================================================================
            * 2010.06.20 版本1.5.5
            *     1.通過使用sndfile插件支持flac,au等其它音頻格式
            *     2.增加了設置音頻插件目錄的參數
            *     3.提供獲取音頻播放當前時間和總播放時間的接口
            *     4.支持從內存播放音頻
            *     5.支持efx reverb
            *     6.支持reverb
            *     7.支持lowpass filter.
            *     7.可配置的音效參數修改(通過xml配置)
            *     8.增加了檢測音卡的日志輸出內容
            *     8.增加了一個完全的播放器界面-蓋莫播放器
            ***************************************************************************
            */
            /*!==========================================================================
            * 2010.10.25 版本1.6.0
            *     1.changed interface.
            *     2.remove effect config file setting.
            ***************************************************************************
            */
            /*!==========================================================================
            * 蓋莫音頻引擎發(fā)展方向
            *     1.對多平臺的支持(含mac,xbox,unix)
            *     2.對多語言的支持(C#,Python,Dephi,易語言,)
            *     3.脫離OpenAL音頻接口
            *     4.對其他音頻格式的支持(voc,aac,acc,ape,wma,midi)(插件或內置)
            *     5.音頻頻譜處理
            *     6.音頻格式轉換
            ***************************************************************************
            */
            /*!==========================================================================
            * 蓋莫音頻引擎設計的原則和宗旨
            *     1.針對游戲開發(fā),在保持使用極其方便的基礎之上滿足游戲音頻的各類需要
            *     2.可使用蓋莫音頻引擎設計簡單的播放器
            ***************************************************************************
            */  
            #ifndef GAIMO_AUDIODEVICE_HPP
            #define GAIMO_AUDIODEVICE_HPP

            ////////////////////////////////////////////////////////////
            /// header file include
            ////////////////////////////////////////////////////////////
            #include <string>

            #if defined(_WIN32) || (defined(__WIN32__)) || defined(WIN32)
               #ifndef G_WIN32
               
            #define G_WIN32
               
            #endif   
            #endif  

            #ifndef __cplusplus
                
            #error please use cplusplus compiler.
            #endif

            #ifndef G_CALL
            #  ifdef G_WIN32
            #    define G_CALL __stdcall
            #  
            else
            #    define G_CALL __stdcall
            #  endif
            #endif

            #if !defined(G_DLL_API) && defined(G_WIN32)
                
            #if defined(BUILDING_DLL)
                    
            #define G_DLL_API __declspec(dllexport)
                
            #else
                    
            #define G_DLL_API __declspec(dllimport)
                
            #endif
            #endif

            #define G_FUNC(ret) extern "C" G_DLL_API ret

            #ifndef NULL
            #define NULL 0
            #endif

            typedef unsigned 
            char  uchar8;
            typedef unsigned 
            int   uint;
            typedef unsigned 
            char  uint8;
            typedef signed   
            short int16;
            typedef unsigned 
            short uint16;
            typedef signed   
            int   int32;
            typedef std::
            string    engine_string;

            //! 個人版,企業(yè)版
            #ifndef GAUDIO_VERSION_PERSON
            #define GAUDIO_VERSION_PERSON  
            #endif

            namespace core
            {

            /////////////////////////////////////////////////////////
            //! audio file type.
            /////////////////////////////////////////////////////////
            enum AUDIO_FILE_TYPE
            {   
                
            //! WAV音頻格式
                AUDIO_FILE_TYPE_WAV = 0,  //! support!
                    
            //! OGG音頻格式
                    AUDIO_FILE_TYPE_OGG,      //! support!
                    
            //! MP3音頻格式
                AUDIO_FILE_TYPE_MP3,      //! support!
                    
            //! XM,IT,MOD,S3M格式
                    AUDIO_FILE_TYPE_XM,       //! support!
                    AUDIO_FILE_TYPE_IT,       //! support!
                    AUDIO_FILE_TYPE_MOD,      //! support!
                    AUDIO_FILE_TYPE_S3M,      //! support!
                    
            //! AU格式
                    AUDIO_FILE_TYPE_AU,       //! support!
                    
            //! AIFF格式
                    AUDIO_FILE_TYPE_AIFF,     //! support!
                    AUDIO_FILE_TYPE_AAC,
                AUDIO_FILE_TYPE_ACC,
                AUDIO_FILE_TYPE_MP1,
                AUDIO_FILE_TYPE_MP2,
                AUDIO_FILE_TYPE_VOC,
                    
            //! 微軟WMA格式
                    AUDIO_FILE_TYPE_WMA,      
                    
            //! APE壓縮格式
                    AUDIO_FILE_TYPE_APE,
                    
            //! MIDI音樂格式
                    AUDIO_FILE_TYPE_MIDI,
                    
            //! FLAC音頻格式
                    AUDIO_FILE_TYPE_FLAC,     //! support!
                    
            //! 空的音頻格式
                    AUDIO_FILE_TYPE_NULL
            };

            ////////////////////////////////////////////////////////////
            /// audio distance mode.  
            ////////////////////////////////////////////////////////////       
            enum AUDIO_DISTANCE_MODE
            {
                AUDIO_DISTANCE_MODEL 
            = 0,
                AUDIO_INVERSE_DISTANCE,
                    AUDIO_INVERSE_DISTANCE_CLAMPED,
                AUDIO_LINEAR_DISTANCE,
                AUDIO_LINEAR_DISTANCE_CLAMPED,
                AUDIO_EXPONENT_DISTANCE,
                    AUDIO_EXPONENT_DISTANCE_CLAMPED,
                    AUDIO_DISTANCE_MODE_NULL
            };       

            /////////////////////////////////////////////////////////
            //! audio effect type.
            /////////////////////////////////////////////////////////
            enum AUDIO_EFFECT_TYPE  
            {
                AUDIO_EFFECT_TYPE_REVERB 
            = 0,          
                    AUDIO_EFFECT_TYPE_EFXREVERB,         
                AUDIO_EFFECT_TYPE_CHORUS,           
                    AUDIO_EFFECT_TYPE_DISTORTION,
                    AUDIO_EFFECT_TYPE_ECHO,
                    AUDIO_EFFECT_TYPE_FLANGER,
                AUDIO_EFFECT_TYPE_FREQUENCY_SHIFTER,
                    AUDIO_EFFECT_TYPE_VOCAL_MORPHER,
                    AUDIO_EFFECT_TYPE_PITCH_SHIFTER,
                    AUDIO_EFFECT_TYPE_RING_MODULATOR,
                    AUDIO_EFFECT_TYPE_AUTOWAH,
                    AUDIO_EFFECT_TYPE_COMPRESSOR,
                AUDIO_EFFECT_TYPE_EQUALIZER,
                    AUDIO_EFFECT_TYPE_NULL
            };

            /////////////////////////////////////////////////////////
            //! audio filter type.
            /////////////////////////////////////////////////////////
            enum AUDIO_FILTER_TYPE
            {
                    AUDIO_FILTER_TYPE_LOWPASS,   
                    AUDIO_FILTER_TYPE_HIGHPASS,
                    AUDIO_FILTER_TYPE_BANDPASS,
                    AUDIO_FILTER_TYPE_NULL
            };

            //! audio vel.
            const float AUDIO_SPACE_VELOCITY = 343.0f;

            //! doppler factor.
            const float AUDIO_DOPPLER_FACTOR = 1.0f;

            /////////////////////////////////////////////////////////
            /// audio object.
            /////////////////////////////////////////////////////////
            class AudioObject
            {
            public:
                    
            virtual ~AudioObject(){}
            public:
                
            /////////////////////////////////////////////////////
                    //! set,get audio object pos.
                    /////////////////////////////////////////////////////
                    virtual void SetPosition(float x,float y,float z) = 0;
                    
            virtual void GetPosition(float &x,float &y,float &z) = 0;
                   
                    
            /////////////////////////////////////////////////////
                    //! set,get audio object direction.
                    /////////////////////////////////////////////////////
                    virtual void SetDirection(float dirx,float diry,float dirz) = 0;
                
            virtual void GetDirection(float &dirx,float &diry,float &dirz) = 0;

                    
            /////////////////////////////////////////////////////
                    //! set,get audio object vel.
                    /////////////////////////////////////////////////////
                    virtual void SetVelocity(float velx,float vely,float velz) = 0;
                
            virtual void GetVelocity(float &velx,float &vely,float &velz) = 0;

                    
            ////////////////////////////////////////////////////
                    //! move audio object(by offset.)
                    ////////////////////////////////////////////////////          
                virtual void Move(float offsetx,float offsety,float offsetz) = 0;          
            };

            //////////////////////////////////////////////////////
            /// audio capture interface.
            //////////////////////////////////////////////////////
            class AudioCapture
            {
            public:
                    
            virtual ~AudioCapture(){}
            public:
                
            //////////////////////////////////////////////////
                    //! capture audio and stop it.
                    //////////////////////////////////////////////////
                    virtual void CaptureAudio() = 0;       
                    
            virtual void CaptureStop() = 0;       
            };

            /////////////////////////////////////////////////////////
            /// object listener.
            /////////////////////////////////////////////////////////
            class AudioListener : public AudioObject
            {
            public:
                
            /////////////////////////////////////////////////////
                    //! set,get global volume(0.0f,1.0f)
                    /////////////////////////////////////////////////////               
                virtual void  SetGlobalVolume(float volume) = 0;
                    
            virtual float GetGlobalVolume()const = 0;     
            };

            ////////////////////////////////////////////////////////
            //! audio source object
            ////////////////////////////////////////////////////////
            class AudioSource : public AudioObject
            {
            public:
                
            ////////////////////////////////////////////////////
                //! play audio(2d mode.)
                    ////////////////////////////////////////////////////
                virtual bool Play(const engine_string& audiofile,bool loop = false= 0;
                   
                
            ////////////////////////////////////////////////////
                //! play audio(3d mode.)
                    ////////////////////////////////////////////////////
                virtual bool Play(const engine_string& audiofile,bool loop,float mindist,float maxdist) = 0;       

                    
            ////////////////////////////////////////////////////
                //! stop,pause audio.
                    ////////////////////////////////////////////////////
                virtual bool Stop() = 0;
                    
            virtual bool Pause() = 0;

                    
            ///////////////////////////////////////////////////
                    //! check status.
                    ///////////////////////////////////////////////////
                    virtual bool IsPlay()const = 0;
                    
            virtual bool IsPause()const = 0;
                    
            virtual bool IsStop()const = 0;
                   
                    
            ///////////////////////////////////////////////////
                    //! set,get volume[0.0f,1.0f]
                    ///////////////////////////////////////////////////
                    virtual void  SetVolume(float gain) = 0;
                    
            virtual float GetVolume()const = 0;  
                    
            virtual void  SetMaxVolume(float gain) = 0;
                
            virtual float GetMinVolume()const = 0;
                    
            virtual void  SetMinVolume(float gain) = 0;
                
            virtual float GetMaxVolume()const = 0;   

                
            virtual void SetMaxDistance(float distance) = 0;
                
            virtual void GetMaxDistance(float &distance)= 0;
                
            virtual void SetMinDistance(float distance) = 0;
                
            virtual void GetMinDistance(float &distance)= 0;
               
                
            virtual void SetAudioCone(float innerangle,float outerangle,float outergain) = 0;
                
            virtual void GetAudioCone(float &innerangle,float &outerangle,float &outergain) = 0;  
               
                    
            ////////////////////////////////////////////////////
                //! get playing time.
                    ////////////////////////////////////////////////////   
                    virtual float GetTotalTime()const = 0;
                    
            virtual float GetCurTime()const = 0;

                    
            ////////////////////////////////////////////////////
                //! able,disable effectr
                    ////////////////////////////////////////////////////     
                    virtual bool EnableEffect(AUDIO_EFFECT_TYPE type) = 0;
                    
            virtual void DisableEffect() = 0;
                    
            virtual bool IsEffectActive() = 0;
                   
                    
            ////////////////////////////////////////////////////
                //! able,disable filter.
                    ////////////////////////////////////////////////////   
                virtual bool AttachFiler(AUDIO_FILTER_TYPE type) = 0;       
            };


            //////////////////////////////////////////////////////
            //! audio device.
            //////////////////////////////////////////////////////
            class AudioDevice
            {
            public:      
                    
            /////////////////////////////////////////////////
                //! get audio device version.
                    /////////////////////////////////////////////////
                    virtual engine_string GetVerson() const = 0;

                    
            /////////////////////////////////////////////////
                    //! get audio maker.
                    /////////////////////////////////////////////////
                    virtual engine_string GetMaker() const = 0;

                    
            /////////////////////////////////////////////////
                    //! check given audio type is supported or not.
                    /////////////////////////////////////////////////
                virtual bool IsSupport(const AUDIO_FILE_TYPE& type)const = 0;

                    
            /////////////////////////////////////////////////
                    //! get audio source(personal edition for 5 sources.)
                    /////////////////////////////////////////////////
                    virtual AudioSource*  GetAudioSource() = 0;

                    
            /////////////////////////////////////////////////
                    //! get listener pointer(only 1)
                    /////////////////////////////////////////////////
                virtual AudioListener* GetAudioListener(float x,float y,float z) = 0;
               
                    
            /////////////////////////////////////////////////
                    //! get audio capture pointer(personal edition for 1 capture.)
                    /////////////////////////////////////////////////
                virtual AudioCapture* GetAudioCapture(const engine_string& name) = 0;

                
            virtual void  SetMetersPerUnit(float meters) = 0;
                
            virtual float GetMetersPerUnit(voidconst = 0;  
                    
            virtual int   GetMaxEffectMuber()const = 0;
                   
                    
            /////////////////////////////////////////////////
                    //! set doppler factor(1.0f,343.3)
                    /////////////////////////////////////////////////
                virtual void  SetDoppler(float factor,float vel) = 0;

                    
            /////////////////////////////////////////////////
                    //! set audio wolrd sistance model.
                    /////////////////////////////////////////////////
                    virtual void  SetDistanceModel(const AUDIO_DISTANCE_MODE &model) = 0;
                   
                    
            /////////////////////////////////////////////////
                    //! check given effect
                    /////////////////////////////////////////////////       
                    virtual bool  IsSupportAudioEffect(AUDIO_EFFECT_TYPE type) = 0;
            };

            /////////////////////////////////////////////////////
            //! init audio device(return NULL for failed.)
            /////////////////////////////////////////////////////
            G_FUNC(AudioDevice*) InitAudioDevice();

            /////////////////////////////////////////////////////
            //! deinit audio device.
            /////////////////////////////////////////////////////
            G_FUNC(void)         TerminateAudioDevice();

            }

            #endif
            //! maker:ccsdu2004

            下載在這里:
            http://www.duote.com/soft/28571.html

            posted on 2010-10-26 08:57 ccsdu2009 閱讀(818) 評論(0)  編輯 收藏 引用 所屬分類: Game引擎
             
            欧洲成人午夜精品无码区久久| 99久久婷婷国产综合精品草原| 久久毛片一区二区| 2021国内精品久久久久久影院| 午夜精品久久久久久毛片| 国产91久久精品一区二区| 国产福利电影一区二区三区久久老子无码午夜伦不 | 国产99久久九九精品无码| 久久久久人妻一区精品果冻| 亚洲国产精品无码久久九九| 97久久综合精品久久久综合| 久久久久亚洲精品中文字幕| 久久99国产综合精品女同| 欧美国产精品久久高清| 久久精品9988| 国产精品免费看久久久| 久久无码AV中文出轨人妻| 一本伊大人香蕉久久网手机| 久久久久久久波多野结衣高潮| 伊人久久精品线影院| 色综合久久久久无码专区| 久久精品三级视频| 美女写真久久影院| 99999久久久久久亚洲| 久久天天躁狠狠躁夜夜2020一 | 婷婷久久香蕉五月综合加勒比| 久久久精品视频免费观看| 国产精品99久久精品| 中文精品久久久久人妻不卡| 久久久噜噜噜久久| 久久久免费观成人影院| 久久免费国产精品| 久久精品18| 久久精品国产WWW456C0M| 精品99久久aaa一级毛片| 久久国产精品一区| 香蕉久久AⅤ一区二区三区| 久久国产三级无码一区二区| 久久久久久久久久免免费精品 | 久久93精品国产91久久综合| 国产精品久久久久久久久免费|