/*
-------------------- Initialization functions for the SoundManager2 class --------------------
*/
bool SoundManager2::initialize( bool debug_flag ){
    setDebug( debug_flag );
    activate();
    setMusicVolume(255);
    setSoundEffectVolume(255);
    setMusicChannel(1);
    setSwapMusicChannel(2);
    setInitialSoundEffectChannel(3);    
    setSoundEffectChannel(getInitialSoundEffectChannel());
    setMaxChannels(64);

    bool initialized = FSOUND_Init (44100, getMaxChannels(), 0);

    if(isDebug()){
        printf("SoundManager Initialization (debug: %i):\n", isDebug());
        printf("\tActive: %i\n", isActive());
        printf("\tMusic Volume: %i\n", getMusicVolume());
        printf("\tSound Effect Volume: %i\n", getSoundEffectVolume());
        printf("\tSound Effect Channel: %i\n", getSoundEffectChannel());
        printf("\tMusic Channel: %i\n", getMusicChannel());
        printf("\tSwap Music Channel: %i\n", getSwapMusicChannel());
        printf("\tInitial Sound Effect Channel: %i\n", getInitialSoundEffectChannel());
        printf("\tMusic Channel: %i\n", getMusicChannel());
    }

    return initialized;

}
AFM_API_EXPORT OMX_ERRORTYPE AFM_Encoder::getParameter(
    OMX_INDEXTYPE nParamIndex,
    OMX_PTR pComponentParameterStructure) const
{
    OMX_ERRORTYPE error = OMX_ErrorNone;

    switch (nParamIndex) {
    case AFM_IndexParamPcmLayout:
    {
        AFM_PARAM_PCMLAYOUTTYPE *pcmlayoutIn
            = (AFM_PARAM_PCMLAYOUTTYPE *) pComponentParameterStructure;


        if (pcmlayoutIn->nPortIndex != 0) {
            return OMX_ErrorBadPortIndex;
        }


        pcmlayoutIn->nBlockSize      = getSampleFrameSize();
        pcmlayoutIn->nChannels       = getChannels();
        pcmlayoutIn->nMaxChannels    = getMaxChannels();
        pcmlayoutIn->nBitsPerSample  = getSampleBitSize();
        pcmlayoutIn->nNbBuffers      = 1;

        return error;
    }

    default:
        return AFM_Component::getParameter(
                   nParamIndex, pComponentParameterStructure);
    }
}
OMX_ERRORTYPE  GSMFRDecoder::construct()
{
	OMX_ERRORTYPE error;
	OMX_AUDIO_PARAM_PCMMODETYPE defaultPcmSettings;
    OMX_AUDIO_PARAM_GSMFRTYPE defaultGsmfrSettings;

	defaultPcmSettings.nPortIndex     = 1;
	defaultPcmSettings.eNumData       = OMX_NumericalDataSigned;
	defaultPcmSettings.eEndian        = OMX_EndianBig;
	defaultPcmSettings.bInterleaved   = OMX_TRUE;
	defaultPcmSettings.ePCMMode       = OMX_AUDIO_PCMModeLinear;
	defaultPcmSettings.nBitPerSample  = 16;

	defaultPcmSettings.nChannels      = 1;
	defaultPcmSettings.nSamplingRate  = 8000;

	defaultPcmSettings.eChannelMapping[0] = OMX_AUDIO_ChannelCF;

    defaultGsmfrSettings.nSize         = sizeof(OMX_AUDIO_PARAM_GSMFRTYPE);
    getOmxIlSpecVersion(&defaultGsmfrSettings.nVersion);
    defaultGsmfrSettings.nPortIndex      = 0;
    defaultGsmfrSettings.bDTX            = OMX_FALSE;
    defaultGsmfrSettings.bHiPassFilter   = OMX_TRUE;
    
	error = AFM_Decoder::construct(
			OMX_AUDIO_CodingGSMFR, getSampleFrameSize()*getMaxChannels(), defaultPcmSettings, 1);
	if (error != OMX_ErrorNone) return error;
	
	ENS_String<16> role = "audio_decoder.gsmfr";
  role.put((OMX_STRING)mRoles[0]);
  setActiveRole(mRoles[0]);

	error = createGSMFRBitstreamPort(defaultGsmfrSettings);
    if (error != OMX_ErrorNone) return error;

    if (mIsHost) {
        AFM_PcmPort *pcmPort = static_cast<AFM_PcmPort *>(getPort(1));
        //pcmPort->forceStandardTunneling();
	    pcmPort->setSupportedProprietaryComm(AFM_HOST_PROPRIETARY_COMMUNICATION);

    }

	return OMX_ErrorNone;
}
Пример #4
0
uint16_t World::getRandomChannel() const {
	return Randomizer::Instance()->randShort(getMaxChannels() - 1);
}