Skip to content
Snippets Groups Projects
Select Git revision
  • branchX
  • Inventory
  • UIControls
  • fsv2
  • tonetest
  • from_nb
  • tonemapping
  • opt-shadows
  • BX-634
  • xCSG
  • hc
  • gizmos
  • gui2CSSLexer
  • msExporter
  • gui2
  • gui2Fix
  • master protected
  • pk
  • mesh_optimize
  • light_wip
  • version_X.11.2 protected
  • version_X.11.1 protected
  • version_X.11.1-dev protected
  • version_X.11.0-dev protected
  • version_X.10.1 protected
  • version_X.10.1-dev protected
  • version_X.10.0-dev protected
  • version_X.9.5 protected
  • version_X.9.4 protected
  • version_X.9.3 protected
  • version_X.9.3-dev protected
  • version_X.9.2-dev protected
  • version_X.9.1-dev protected
  • version_X.9.0-dev protected
  • version_X.8.2 protected
  • version_X.8.2-dev protected
  • version_X.8.1-dev protected
  • version_X.8.0-dev protected
  • version_X.7.1 protected
  • version_X.7.0 protected
40 results

IXAudioCodec.h

Blame
  • IXAudioCodec.h 5.02 KiB
    /*****************************************************
    Copyright © DogmaNet Team, 2020
    Site: dogmanet.ru
    See the license in LICENSE
    *****************************************************/
    
    #ifndef __IXAUDIOCODEC_H
    #define __IXAUDIOCODEC_H
    
    #include <gdefines.h>
    #include <xcommon/IXBuffer.h>
    #include <xcommon/IXSoundSystem.h>
    #include <common/AudioRawDesc.h>
    
    //##########################################################################
    
    // {7D338709-3BC1-4008-8AA0-74305E337D7F}
    #define IXAUDIOCODEC_GUID DEFINE_XGUID(0x7d338709, 0x3bc1, 0x4008, 0x8a, 0xa0, 0x74, 0x30, 0x5e, 0x33, 0x7d, 0x7f)
    
    #define IXAUDIOCODEC_VERSION 1
    
    //##########################################################################
    
    class IXAudioCodecTarget;
    
    /*!
     * интерфейс аудио кодека выдающего целевой обьект для работы с файлом
    */
    class IXAudioCodec: public IXUnknown
    {
    public:
    
    	/*! возвращает формат кодека
    		@note например ogg-vorbis, wav-pcm
    	*/
    	virtual const char* XMETHODCALLTYPE getFormat() const = 0;
    
    	//************************************************************************
    
    	/*! возвращает расширение файлов кодека
    		@note кодек может принимать несколько расширений, но это не значит что идентификация формата идет на основании расширения
    		@param uIndex порядковый номер
    		@return строку если uIndex корректный (находится в пределах массива расширений), NULL в ином случае
    	*/
    	virtual const char* XMETHODCALLTYPE getExt(UINT uIndex=0) const = 0;
    
    	//************************************************************************
    
    	//! возвращает количество поддерживаемых расширений файлов
    	virtual UINT XMETHODCALLTYPE getExtCount() const = 0;
    
    	/*! возвращает может ли кодек декодировать (прочитать) файл pFile
    		@param szFile путь до файла
    		@param szArg аргументы в строке, игнорируется
    		@param ppTarget указатель на неиницилизированный целевой обьект кодека
    		@param forSave открыть ли файл для записи
    		@return true если может открыть (для чтения или записи) и декодировать (для чтения), иначе false
    	*/
    	virtual bool XMETHODCALLTYPE open(const char *szFile, const char *szArg, IXAudioCodecTarget **ppTarget, bool forSave = false) = 0;
    
    	//************************************************************************
    
    	//! возвращает может ли кодек кодировать (записывать)
    	virtual bool XMETHODCALLTYPE canSave(UINT uIndex=0) const = 0;
    };
    
    //##########################################################################
    
    /*!
    	интерфейс целевого кодека работающего с файлом