Ejemplo n.º 1
0
/*
 * create a tone that goes from high-pitched to low-pitched
 */
static void BoltSound()
/*********************/
{
    short i;

    OpenSound();
    SetVoiceAccent( 1, 120, 50, S_LEGATO, 0 );
    for( i=84; i > 0; i-- ) {
        SetVoiceNote( 1, i, 128, 1 );
        /* place a 128th note of value i into voice queue 1 */
    }
    StartSound();
} /* BoltSound */
Ejemplo n.º 2
0
HSTREAM D3DCore_Impl::Stream_Load(const WCHAR *filename, DWORD size)
{
	if(m_bSilent) return 0;

	void *data;
	DWORD _size;
	CStreamList *stmItem;

	if(m_pADevice)
	{
		if(size) { data=(void *)filename; _size=size; }
		else
		{
			data=File_Load(filename, &_size);
			if(!data) return 0;
		}
		
		FilePtr pf = CreateMemoryFile(data, _size);
		SampleSourcePtr source = OpenSampleSource(pf);
		if (!source) {
			System_Log(L"[AUDIERE - ERROR] %s: Can't load sample source", filename);
			return 0;
		}

		LoopPointSourcePtr loop_source = CreateLoopPointSource(source);
		if (loop_source) {
			source = loop_source.get();
		}

		OutputStream* stream = OpenSound( m_pADevice, source, true);
		if (!stream) 
		{
			System_Log(L"[AUDIERE - ERROR] %s: Can't load stream", filename);
			if(!size) File_Free(data);
			return 0;
		}
		stream->ref();
		if(!size)
		{
			stmItem=new CStreamList;
			stmItem->hstream=(HSTREAM)stream;
			stmItem->data=data;
			stmItem->next=streams;
			streams=stmItem;
		}
		return (HSTREAM)stream;
	}
	else return 0;
}
Ejemplo n.º 3
0
HRESULT SoundClass::Initialize(HWND hwnd , MutableString&& path)
{
	HRESULT hr = S_OK;
	m_hWnd = hwnd;
	AudioDevicePtr audioDevice(OpenDevice());
	OutputStream* m_soundDataStream = OpenSound(audioDevice, path.getMultiByteString().c_str(), false);
	m_soundData.reset(new OutputStreamPtr(m_soundDataStream));
	if (m_soundData == nullptr ||
		m_soundData->get() == nullptr)
	{
		printf("No Sound File Found.\r\n");
		return E_FAIL;
	}
	(*m_soundData)->stop();
	return hr;
}
Ejemplo n.º 4
0
bool PlayerAudiere::open(QUrl fname, long start, long length)
{
    file = ToLocalFile(fname);
	SampleSource* source = OpenSampleSource(file.toLocal8Bit(), FF_AUTODETECT);
    stream = OpenSound(device, source, true);
    if(stream) {
		int ch, sr;
		SampleFormat sf;
		source->getFormat(ch, sr, sf);
		stream->setVolume(float(svolume)/100);
		_start = start * sr / 75;
		_length = length * sr / 75;
		if(!_length) _length = stream->getLength() - _start;
	} else {
		_start = _length = 0;
	}
    return stream;
}
Ejemplo n.º 5
0
HCHANNEL D3DCore_Impl::Effect_Play(HEFFECT eff)
{
	if(m_pADevice && eff != 0)
	{
		SampleSource* SSource = (SampleSource*)eff;
		OutputStream* OStream = OpenSound( m_pADevice, SSource, false );
		OStream->setVolume( m_VolFX );
		OStream->play();
		OStream->ref();
//		EffectChannelList.insert((HCHANNEL)OStream);

		Channel* chn = new Channel;
		chn->Handler = (HCHANNEL)OStream;
		chn->Type = CT_EFFECT;
		chn->next = channels;
		channels = chn;

		return (HCHANNEL)OStream;
	}
	else return 0;
}
Ejemplo n.º 6
0
HRESULT SoundClass::Initialize(HWND hwnd , MutableString&& path)
{
	HRESULT hr = S_OK;
	m_hWnd = hwnd;

	//Read Sound File right now;
	m_audioDevice = new AudioDevicePtr(OpenDevice());
	if (m_audioDevice == nullptr)
	{
		printf("No device\r\n");
		return E_FAIL;
	}
	OutputStream* m_soundDataStream = OpenSound(*m_audioDevice, path.getMultiByteString().c_str(), false);
	m_soundData = new OutputStreamPtr(m_soundDataStream);
	if (m_soundData == nullptr)
	{
		printf("No Sound File Found.\r\n");
		return E_FAIL;
	}
	(*m_soundData)->stop();
	return hr;
}
Ejemplo n.º 7
0
HCHANNEL D3DCore_Impl::Effect_PlayEx(HEFFECT eff, int volume, int pan, float pitch, bool loop)
{
	if(m_pADevice && eff != 0)
	{
		SampleSource* SSource = (SampleSource*)eff;
		OutputStream* OStream = OpenSound( m_pADevice, SSource, false );
		OStream->setVolume( m_VolFX * (volume/100.0f) );
		OStream->setPan( pan/100.0f );
		OStream->setPitchShift( pitch );
		OStream->setRepeat( loop );
		OStream->play();
		OStream->ref();
//		EffectChannelList.insert((HCHANNEL)OStream);

		Channel* chn = new Channel;
		chn->Handler = (HCHANNEL)OStream;
		chn->Type = CT_EFFECT;
		chn->next = channels;
		channels = chn;

		return (HCHANNEL)OStream;
	}
	else return 0;
}
Ejemplo n.º 8
0
SWBOOL CacheSound(int num, int type)
{
    VOC_INFOp vp = &voc[num];

    PRODUCTION_ASSERT(num >= 0 && num < DIGI_MAX);

    // if no data we need to cache it in
    if (!vp->data)
    {
        int handle;
        int length;

        if (!OpenSound(vp, &handle, &length))
        {
            sprintf(ds,"Could not open sound %s, num %d, priority %d\n",vp->name,num,vp->priority);
            CON_ConMessage(ds);
            return FALSE;
        }

        if (vp != NULL)
        {
            //FILE *fp;

            /*
            if (type == CACHE_SOUND_PLAY)
                // start it out locked at the min
                vp->lock = CACHE_LOCK_START;
            else
            if (type == CACHE_SOUND_PRECACHE)
                // start it out unlocked at the max
            */
            vp->lock = CACHE_UNLOCK_MAX;

            allocache((intptr_t*)&vp->data, length, &vp->lock);

#if 0
            // DEBUG
            globsndata[num] = AllocMem(length);
            glength[num] = length;

            fp = fopen(vp->name, "rb");
            if (fp != NULL)
            {
                fread(globsndata[num], length, 1, fp);
                ASSERT(globsndata[num] != NULL);
                fclose(fp);
            }
#endif
            ///////

            ASSERT(vp->data);
            ReadSound(handle, vp, length);

#if 0
            //DEBUG
            globvpdata[num] = vp->data;
            CheckSndData(__FILE__, __LINE__);
#endif
        }
    }

    return TRUE;
}
Ejemplo n.º 9
0
bool ZSoundEngine::LoadResource(char* pFileName)
{
	MXmlDocument Data;

	MZFile mzf;
	if(!mzf.Open(pFileName, m_pZFileSystem)) return false;

	char *buffer;
	buffer=new char[mzf.GetLength()+1];
	mzf.Read(buffer,mzf.GetLength());
	buffer[mzf.GetLength()]=0;

	Data.Create();
	if(!Data.LoadFromMemory(buffer))
	{
		delete buffer;
		return false;
	}
	delete buffer;
	mzf.Close();


	MXmlElement root, chr, attr;

	char szSoundName[256];
	char szSoundFileName[256];


	root		= Data.GetDocumentElement();
	int iCount	= root.GetChildNodeCount();

	for( int i = 0 ; i < iCount; ++i )
	{
		chr		= root.GetChildNode(i);
		chr.GetTagName( szSoundName );
		if( szSoundName[0] == '#' ) continue;

		chr.GetAttribute( szSoundName, "name" );
		strcpy( szSoundFileName, SOUNDEFFECT_DIR );
		strcat( szSoundFileName, szSoundName );
		strcat( szSoundFileName, ".wav" );

		char szType[64] = "";
		chr.GetAttribute(szType, "type", "3d");


		float min = ZDEF_MINDISTANCE;
		float max = ZDEF_MAXDISTANCE;
		float fTemp;
		if( chr.GetAttribute( &fTemp, "MINDISTANCE" )) min = fTemp;
		if( chr.GetAttribute( &fTemp, "MAXDISTANCE" )) max = fTemp;

		bool bLoop = false;
		chr.GetAttribute(&bLoop, "loop");

		float fDefaultVolume = 1.0f;
		chr.GetAttribute(&fDefaultVolume, "volume", 1.0f);

		unsigned long int nFlags=0;

		if (bLoop) nFlags |= RSOUND_LOOP_NORMAL;
		else nFlags |= RSOUND_LOOP_OFF;

		if (!stricmp(szType, "2d"))
		{
			OpenSound(szSoundFileName, RSOUND_2D | nFlags);

			if (!IS_EQ(fDefaultVolume, 1.0f))
			{
				RBaseSoundSource* pSoundSource = GetSoundSource(szSoundFileName, RSOUND_]2D);
				if (pSoundSource)
				{
					SetDefaultVolume(pSoundSource, fDefaultVolume);
				}
			}
		}