Ejemplo n.º 1
0
static int WavegenFile(void)
{
    int finished;
    unsigned char wav_outbuf[1024];
    char fname[210];

    out_ptr = out_start = wav_outbuf;
    out_end = wav_outbuf + sizeof(wav_outbuf);

    finished = WavegenFill();

    if (quiet)
        return finished;

    if (f_wave == NULL) {
        sprintf(fname, "%s_%.2d%s", wavefile, ++wavefile_count, filetype);
        if (OpenWaveFile(fname, samplerate) != 0)
            return 1;
    }

    if (end_of_sentence) {
        end_of_sentence = 0;
        if ((samples_split > 0 ) && (samples_total > samples_split)) {
            CloseWaveFile();
            samples_total = 0;
        }
    }

    if (f_wave != NULL) {
        samples_total += (out_ptr - wav_outbuf)/2;
        fwrite(wav_outbuf, 1, out_ptr - wav_outbuf, f_wave);
    }
    return finished;
}
Ejemplo n.º 2
0
BOOL CAudioCtrl::Play(char *pszPath)
{
	if (pszPath == NULL || m_eStatus == ENUM_STATUS_PLAYING)
	{
		return FALSE;
	}

	m_bRecording = FALSE;
	if (m_eStatus != ENUM_STATUS_READY)
	{
		return FALSE;
	}

	if (!OpenWaveFile(pszPath))
		return FALSE;

	MMRESULT mmReturn = 0;
	// open wavein device
	mmReturn = ::waveOutOpen (&m_hPlay, m_uiDeviceID, &m_Format, (DWORD)GetSafeHwnd(), NULL, CALLBACK_WINDOW);
	if ( mmReturn )
	{
		TRACE("waveOutOpen() failed\r\n");
		return FALSE;
	}
	else
	{
		// make several input buffers and add them to the input queue
		for(int i=0; i<m_wInQueu; i++)
		{
			int nSize = m_dwQueuBufferSize;
			if ( !ReadSoundDataFromFile ( m_szAryInData[i], nSize ) )
			{
				if ( i == 0 )
				{
					AfxMessageBox ( "Read sound data from file failed" );
					return FALSE;
				}
			}
			if ( !AddOutputBufferToQueue ( i, nSize ) )
				return FALSE;
		}
	}
	
	m_eStatus = ENUM_STATUS_PLAYING;
	return TRUE;
}
Ejemplo n.º 3
0
/* OpenSpeechFile: open waveform or parm file */
void OpenSpeechFile(char *s)
{
   HTime len;
   char buf[MAXSTRLEN];
   
   if (labF) tr = LoadTransLabs(s);   
   if(IsWave(s))  
      len = OpenWaveFile(s);
   else  
      len = OpenParmFile(s);
   if(labF) AppendLabs(tr,len);
   if (trace & T_TOP) AppendTrace(s);
   if (tgtPK == ANON) tgtPK = srcPK;      
   if(trace & T_KINDS){
      printf("Source file format: %s [%s]\n",
             Format2Str(srcFF), ParmKind2Str(srcPK,buf));
      printf("Target file format: %s [%s]\n",
             Format2Str(tgtFF), ParmKind2Str(tgtPK,buf));
      printf("Source rate: %.0f Target rate: %.0f \n",
             srcSampRate,tgtSampRate);
   }
}
Ejemplo n.º 4
0
CSoundFile::CSoundFile(LPCTSTR pszFileName, WAVEFORMATEX* format)
{
	m_hFile = NULL;
	_tcscpy(m_szFileName, pszFileName);

	ZeroMemory(&m_MMCKInfoParent,sizeof(MMCKINFO));
	ZeroMemory(&m_MMCKInfoChild,sizeof(MMCKINFO));
	ZeroMemory(&m_MMCKInfoData,sizeof(MMCKINFO));
	
	if(format == NULL)
	{
		m_Mode = READ;
		OpenWaveFile();
	}
	else
	{
		m_Mode = WRITE;
		m_Format = *format;
		CreateWaveFile();
	}
	
	if(m_Mode == ERROR) Close();
}