• <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)原本為蓋莫游戲引擎開發
            當前支持win7,xmp,vista操作系統
            支持10種音頻格式:mp3,ogg,wav,au,aiff,mod,it,xm,s3m,flac
            支持真3d音效
            使用多線程流式播放
            支持vc和mingw系列編譯器
            注意這并不是一個播放器
            !
            本音頻SDK先后發布過1.02,1.15,1.28,1.35,1.55版本
            當前發布的為最新的1.60版本
            主要修改了接口函數和移除了音效配置
            下次修改將會增加使用dsound功能
            使用本接口與非商業用途不需要付費喔(當然商業用途需要付費哈)
            接口全文:
            下面是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音頻引擎是成都蓋莫軟件技術工作室推出的一款專門
            //! 面向游戲開發的音頻庫,該庫具有使用簡介,功能強大的功能
            //! 本音頻庫使用于非商業產品不收取任何費用
            //! 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.
            ***************************************************************************
            */
            /*!==========================================================================
            * 蓋莫音頻引擎發展方向
            *     1.對多平臺的支持(含mac,xbox,unix)
            *     2.對多語言的支持(C#,Python,Dephi,易語言,)
            *     3.脫離OpenAL音頻接口
            *     4.對其他音頻格式的支持(voc,aac,acc,ape,wma,midi)(插件或內置)
            *     5.音頻頻譜處理
            *     6.音頻格式轉換
            ***************************************************************************
            */
            /*!==========================================================================
            * 蓋莫音頻引擎設計的原則和宗旨
            *     1.針對游戲開發,在保持使用極其方便的基礎之上滿足游戲音頻的各類需要
            *     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;

            //! 個人版,企業版
            #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 閱讀(817) 評論(0)  編輯 收藏 引用 所屬分類: Game引擎
             
            久久综合九色综合网站| 久久免费高清视频| 狠狠综合久久综合88亚洲 | 久久天天躁狠狠躁夜夜2020老熟妇| 国産精品久久久久久久| 久久精品中文无码资源站| 久久精品国产秦先生| 欧美成人免费观看久久| 青青草国产精品久久| 久久久久亚洲av成人网人人软件 | 精品久久人人做人人爽综合 | avtt天堂网久久精品| 久久综合伊人77777| 国内精品久久久久影院免费| 香蕉久久影院| 九九热久久免费视频| 国产亚洲色婷婷久久99精品| 欧美亚洲国产精品久久| 国产精品成人精品久久久 | 国内精品伊人久久久久av一坑 | 久久99精品久久久久久野外 | 国内精品伊人久久久影院 | 欧美日韩久久中文字幕| 久久国产视频99电影| 久久综合九色综合97_久久久| 中文字幕热久久久久久久| 久久综合久久伊人| 国产精品亚洲综合专区片高清久久久 | 久久久精品波多野结衣| 久久久九九有精品国产| 久久国产亚洲精品无码| 久久午夜无码鲁丝片| 精品国产乱码久久久久软件| 久久成人小视频| 亚洲第一永久AV网站久久精品男人的天堂AV | 久久亚洲美女精品国产精品| 久久久久久精品免费免费自慰| 亚洲午夜久久久| 精品久久久久久久国产潘金莲| 精品国产日韩久久亚洲| 久久婷婷五月综合97色直播|