Esempio n. 1
0
int AudioInputALSA::PcmRead(void* buf, uint nbytes)
{
    unsigned char* bufptr = (unsigned char*)buf;
    snd_pcm_uframes_t to_read = snd_pcm_bytes_to_frames(pcm_handle, nbytes);
    snd_pcm_uframes_t nframes = to_read;
    snd_pcm_sframes_t nread, avail;
    int retries = 0;
    while (nframes > 0 && retries < 3)
    {
        if (AlsaBad((avail = snd_pcm_avail_update(pcm_handle)),
                    "available update failed"))
        {
            if (!Recovery(avail))
            {
                ++retries;
                continue;
            }
        }
        if ((nread = snd_pcm_readi(pcm_handle, bufptr, nframes)) < 0)
        {
            switch (nread)
            {
            case -EAGAIN:
                break;
            case -EBADFD:
                LOG(VB_GENERAL, LOG_ERR, LOC_DEV +
                    QString("in a state unfit to read (%1): %2")
                    .arg(nread).arg(snd_strerror(nread)));
                break;
            case -EINTR:
            case -EPIPE:
            case -ESTRPIPE:
                Recovery(nread);
                break;
            default:
                LOG(VB_GENERAL, LOG_ERR, LOC_DEV +
                    QString("weird return from snd_pcm_readi: %1")
                    .arg(snd_strerror(nread)));
                break;
            }
        }
        else
        {
            nframes -= nread;
            bufptr += snd_pcm_frames_to_bytes(pcm_handle, nread);
        }
        ++retries;
    }
    if (nframes > 0)
        LOG(VB_AUDIO, LOG_ERR, LOC_DEV +
            QString("short pcm read, %1 of %2 frames, retries %3")
            .arg(to_read - nframes).arg(to_read).arg(retries));
    return snd_pcm_frames_to_bytes(pcm_handle, to_read - nframes);
}
Esempio n. 2
0
j_result_t CXlClient::OnMessage(j_string_t strHostId, const CXlClientRespData &respData)
{
	switch (respData.respHeader.cmd)
	{
	case CXlProtocol::xlc_real_alarm:
	{
		AlarmEnableMap::iterator it = m_alarmEnableMap.find(strHostId);
		if (it != m_alarmEnableMap.end() && it->second == false)
		{
			return J_OK;
		}
		break;
	}
	case CXlProtocol::xlc_dev_connected:
		Recovery();
		break;
	}

	CXlHelper::MakeResponse(respData.respHeader.cmd, respData.respHeader.flag, respData.respHeader.seq,
		(j_char_t *)respData.pData, sizeof(CXlClientRespData::RespErrorCode), m_dataBuff);
	J_StreamHeader streamHeader = { 0 };
	streamHeader.dataLen = sizeof(CXlProtocol::CmdHeader) + sizeof(CXlClientRespData::RespLogin) + sizeof(CXlProtocol::CmdTail);
	m_ringBuffer.PushBuffer(m_dataBuff, streamHeader);


	return J_OK;
}
Esempio n. 3
0
int main(int argc, char* argv[])
{
	if (argc < 3 || strcmp(argv[1], "--help") == 0)
	{
		help(argv);
		return 0;
	}

	if (strcmp(argv[1], "Encrypt") == 0)
		Hide(argv[3], argv[2]);
	else if (strcmp(argv[1], "Decrypt") == 0)
		Recovery(argv[2], argv[3]);
	else
		printf("Invalid parameter\n");

	printf("Done\n");
	
	return 0;
}
Esempio n. 4
0
int main()
{
	int A, B, C, D;
	int _ret_val_0;
	bool completed[2];
	A=10;
	B=15;
	completed[1]=false;
	completed[0]=false;
	while (completed[1]==false)
	{
		bool check[1];
		while (completed[0]==false)
		{
			bool check[2];
			do
			{
				C=Compute(A, B);
				check[0]=Checker(A);
				if (check[0]==false)
				{
					if (Load(A)==false)
					{
						throw unrecoverable;
					}
				}
				check[1]=Checker(B);
				if (check[1]==false)
				{
					if (Load(B)==false)
					{
						throw unrecoverable;
					}
				}
			}while((check[0]==false)||(check[1]==false));
			
			if ((check[0]==true)&&(check[1]==true))
			{
				completed[0]=true;
			}
		}
		D=7;
		do
		{
			Store(C);
			check[0]=Checker(C);
			if (check[0]==false)
			{
				if (Recovery(C)==false)
				{
					throw unrecoverable;
				}
			}
		}while(check[0]==false);
		
		if (check[0]==true)
		{
			completed[1]=true;
		}
	}
	_ret_val_0=0;
	return _ret_val_0;
}