• 设为首页
  • 点击收藏
  • 手机版
    手机扫一扫访问
    迪恩网络手机版
  • 关注官方公众号
    微信扫一扫关注
    公众号

C++ processBuffer函数代码示例

原作者: [db:作者] 来自: [db:来源] 收藏 邀请

本文整理汇总了C++中processBuffer函数的典型用法代码示例。如果您正苦于以下问题:C++ processBuffer函数的具体用法?C++ processBuffer怎么用?C++ processBuffer使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。



在下文中一共展示了processBuffer函数的20个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: processBuffer

void InterSense::deviceThreadMethod(void)
	{
	/* Reset first measurement flags: */
	for(int i=0;i<numTrackers;++i)
		notFirstMeasurements[i]=false;
	
	/* Read first record in synchronizing mode: */
	int stationId;
	char recordBuffer[256];
	stationId=readRecordSync(recordBuffer);
	
	/* Parse read buffer: */
	processBuffer(stationIdToIndex[stationId],recordBuffer);
	
	while(true)
		{
		/* Try reading record in synchronized mode: */
		if((stationId=readRecordNoSync(recordBuffer))==0)
			{
			/* Fall back to synchronizing mode: */
			#ifdef VERBOSE
			printf("InterSense: Resynchronizing with tracker stream\n");
			fflush(stdout);
			#endif
			stationId=readRecordSync(recordBuffer);
			}
		
		/* Parse read buffer: */
		processBuffer(stationIdToIndex[stationId],recordBuffer);
		}
	}
开发者ID:jrevote,项目名称:3DA-Vrui,代码行数:31,代码来源:InterSense.cpp


示例2: readLogLines

static void readLogLines(int logfd)
{
    while (1) {
        unsigned char buf[LOGGER_ENTRY_MAX_LEN + 1] __attribute__((aligned(4)));
        struct logger_entry *entry = (struct logger_entry *) buf;
        int ret;

        ret = read(logfd, entry, LOGGER_ENTRY_MAX_LEN);
        if (ret < 0) {
            if (errno == EINTR)
                continue;
            if (errno == EAGAIN)
                break;
            perror("logcat read");
            exit(EXIT_FAILURE);
        }
        else if (!ret) {
            fprintf(stderr, "read: Unexpected EOF!\n");
            exit(EXIT_FAILURE);
        }

        /* NOTE: driver guarantees we read exactly one full entry */

        entry->msg[entry->len] = '\0';

        if (g_printBinary) {
            printBinary(entry);
        } else {
            (void) processBuffer(entry);
        }
    }
}
开发者ID:Dieken,项目名称:SurfaceFlinger,代码行数:32,代码来源:logcat.cpp


示例3: processBuffer

bool KeyStream::decodeMessage(QByteArray& buffer, int macOffset, int offset, int length)
{
    //qDebug() << "decodeMessage seq:" << seq;
    QByteArray base = buffer.left(buffer.size() - 4);
    QByteArray hmac = buffer.right(4);
    QByteArray buffer2 = processBuffer(base, seq++);
    buffer2 = mac->hmacSha1(buffer2);

    QByteArray origBuffer = buffer;
    buffer = base;
    rc4->Cipher(buffer.data(),0,buffer.size());

    for (int i = 0; i < 4; i++)
    {
        if (buffer2[macOffset + i] != hmac[i])
        {
            qDebug() << "error decoding message. macOffset:" << macOffset << "offset:" << offset << "length:" << length << "bufferSize:" << buffer.size();
            qDebug() << "buffer mac:" << buffer2.toHex() << "hmac:" << hmac.toHex();
            qDebug() << "buffer:" << buffer.toHex();
            qDebug() << "origBuffer:" << origBuffer.toHex();
            return false;
        }
    }
    return true;
}
开发者ID:0xaaa,项目名称:yappari,代码行数:25,代码来源:keystream.cpp


示例4: processBuffer

void ttSerialDevice::update() {
	if ( m_connection.isInitialized() ) {
		int available = m_connection.available();
		if ( available > 0 ) {
			unsigned char* buffer = new unsigned char [ available + 1 ];
			buffer[ available ] = 0;
			m_connection.readBytes(buffer,available);
			//
			//
			//
			bool partial_message = m_buffer.tellp() > 0;
			for ( int i = 0; i < available; i++ ) {
				if ( partial_message ) {
					if ( buffer[ i ] == ']' ) { // end message
						processBuffer();
						return;
					} else {
						m_buffer << buffer[ i ];
					}
				} else if ( buffer[ i ] == '[' ) { // start of message
					partial_message = true;
				}
			}
		}
	}
}
开发者ID:SodaLtd,项目名称:Travellers-Tails,代码行数:26,代码来源:ttSerialDevice.cpp


示例5: while

void EPDStreamer::processResponse()
{
    while (connState == STATE_CONN_CONNECTED) {
        while (client.available()) {
            char c = client.read();

            if (httpState == STATE_HTTP_BODY) {
                if (callbacksEnabled && onBodyByteReadCallback) {
                    onBodyByteReadCallback(c);
                }
            } else {
                if (c == 13) {
                    continue;
                } else if (c == 10) {
                    buffer[bufferPtr] = 0;
                    processBuffer();
                    bufferPtr = 0;
                } else {
                    buffer[bufferPtr++] = c;
                }
            }
        }

        if (!client.connected()) {
            Serial.println("The client has disconnected");
            client.stop();
            connState = STATE_CONN_DISCONNECTED;

            if (httpState == STATE_HTTP_BODY && callbacksEnabled && onStreamingCompletedCallback) {
                onStreamingCompletedCallback();
            }
        }
    }
}
开发者ID:oxullo,项目名称:weatherpod,代码行数:34,代码来源:epdstreamer.cpp


示例6: LOG

void WebSocketChannel::didReceiveSocketStreamData(SocketStreamHandle& handle, const char* data, std::optional<size_t> len)
{
    if (len)
        LOG(Network, "WebSocketChannel %p didReceiveSocketStreamData() Received %zu bytes", this, len.value());
    else
        LOG(Network, "WebSocketChannel %p didReceiveSocketStreamData() Received no bytes", this);
    Ref<WebSocketChannel> protectedThis(*this); // The client can close the channel, potentially removing the last reference.
    ASSERT(&handle == m_handle);
    if (!m_document) {
        return;
    }
    if (!len || !len.value()) {
        handle.disconnect();
        return;
    }
    if (!m_client) {
        m_shouldDiscardReceivedData = true;
        handle.disconnect();
        return;
    }
    if (m_shouldDiscardReceivedData)
        return;
    if (!appendToBuffer(data, len.value())) {
        m_shouldDiscardReceivedData = true;
        fail("Ran out of memory while receiving WebSocket data.");
        return;
    }
    while (!m_suspended && m_client && !m_buffer.isEmpty()) {
        if (!processBuffer())
            break;
    }
}
开发者ID:eocanha,项目名称:webkit,代码行数:32,代码来源:WebSocketChannel.cpp


示例7: newRawPack

void PackParser::processBuffer()
{
    if(last_pack_unfinished){
        if(raw_buffer_.bytesAvailable() >= pack_size){
            QByteArray info = raw_buffer_.read(pack_size);
            last_pack_unfinished = false;
            emit newRawPack(info);
        }else{
            return;
        }
    }

    if(raw_buffer_.size() < 4){
        return;
    }

    // in case we have a lot of data to process
    QCoreApplication::processEvents();
    char c1, c2, c3, c4;
    raw_buffer_.getChar(&c1);
    raw_buffer_.getChar(&c2);
    raw_buffer_.getChar(&c3);
    raw_buffer_.getChar(&c4);
    pack_size = (uchar(c1) << 24) + (uchar(c2) << 16)
            + (uchar(c3) << 8) + uchar(c4);

    processBuffer();
}
开发者ID:aluex,项目名称:painttyWidget,代码行数:28,代码来源:packparser.cpp


示例8: ASSERT_UNUSED

void MainThreadWebSocketChannel::resumeTimerFired(Timer<MainThreadWebSocketChannel>* timer)
{
    ASSERT_UNUSED(timer, timer == &m_resumeTimer);

    processBuffer();
    if (!m_suspended && m_client && (m_state == ChannelClosed) && m_handle)
        didCloseSocketStream(m_handle.get());
}
开发者ID:darktears,项目名称:blink-crosswalk,代码行数:8,代码来源:MainThreadWebSocketChannel.cpp


示例9: printNextEntry

static void printNextEntry(log_device_t* dev) {
    maybePrintStart(dev);
    if (g_printBinary) {
        printBinary(&dev->queue->entry);
    } else {
        processBuffer(dev, &dev->queue->entry);
    }
    skipNextEntry(dev);
}
开发者ID:ACSOP,项目名称:android_system_core,代码行数:9,代码来源:logcat.cpp


示例10: protectedThis

void WebSocketChannel::resumeTimerFired()
{
    Ref<WebSocketChannel> protectedThis(*this); // The client can close the channel, potentially removing the last reference.
    while (!m_suspended && m_client && !m_buffer.isEmpty())
        if (!processBuffer())
            break;
    if (!m_suspended && m_client && m_closed && m_handle)
        didCloseSocketStream(*m_handle);
}
开发者ID:eocanha,项目名称:webkit,代码行数:9,代码来源:WebSocketChannel.cpp


示例11: envir

void TCPStreamSink::afterGettingFrame(unsigned frameSize, unsigned numTruncatedBytes) {
  if (numTruncatedBytes > 0) {
    envir() << "TCPStreamSink::afterGettingFrame(): The input frame data was too large for our buffer.  "
	    << numTruncatedBytes
	    << " bytes of trailing data was dropped!  Correct this by increasing the definition of \"TCP_STREAM_SINK_BUFFER_SIZE\" in \"include/TCPStreamSink.hh\".\n";
  }
  fUnwrittenBytesEnd += frameSize;
  processBuffer();
}
开发者ID:DayDayUpCQ,项目名称:live555,代码行数:9,代码来源:TCPStreamSink.cpp


示例12: while

void Connection::socketData() {

    int toRead;
    int bytesRead=0;
    int thisRead;

    toRead=tcpSocket->bytesAvailable();
    while(bytesRead<toRead) {
        switch(state) {
        case READ_HEADER_TYPE:
            thisRead=tcpSocket->read(&hdr[0],1);
            if (thisRead == 1) bytes++;
            if (hdr[0] == AUDIO_BUFFER) state=READ_AUDIO_HEADER;
            else state=READ_HEADER;
            break;

        case READ_AUDIO_HEADER:
            thisRead=tcpSocket->read(&hdr[bytes],AUDIO_HEADER_SIZE - bytes);
            bytes+=thisRead;
            if ((bytes == AUDIO_HEADER_SIZE)){
                    length = atoi(&hdr[AUDIO_LENGTH_POSITION]);
                    buffer = (char*)malloc(length);
                    bytes = 0;
                    state = READ_BUFFER;
             }
            break;

         case READ_HEADER:
            thisRead=tcpSocket->read(&hdr[bytes],HEADER_SIZE - bytes);
            bytes+=thisRead;
            if(bytes==HEADER_SIZE) {
                length=atoi(&hdr[26]);
                buffer=(char*)malloc(length);
                bytes=0;
                state=READ_BUFFER;
            }
            break;

        case READ_BUFFER:
            thisRead=tcpSocket->read(&buffer[bytes],length-bytes);
            bytes+=thisRead;
            //qDebug() << "READ_BUFFER: read " << bytes << " of " << length;
            if(bytes==length) {
                queue.enqueue(new Buffer(hdr,buffer));
                QTimer::singleShot(0,this,SLOT(processBuffer()));
                hdr=(char*)malloc(HEADER_SIZE);
                bytes=0;
                state=READ_HEADER_TYPE;
            }
            break;
        }
        bytesRead+=thisRead;
    }
}
开发者ID:8cH9azbsFifZ,项目名称:ghpsdr3-alex,代码行数:54,代码来源:Connection.cpp


示例13: QWidget

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    Fdata=new fft;
    Wdata=new wavedata;
    probe=new QAudioProbe;
    Ddata=new detaildata;
    l=new QStringList;
    label=new QLabel;

    label->resize( QSize( 500, 100 ));
    QPalette pa;

    pa.setColor(QPalette::Background, QColor(0x00,0xff,0x00,0x00));
    pa.setColor(QPalette::WindowText,Qt::white);

    label->setPalette (pa);

    QFont ft;
    ft.setPointSize(14);
    label->setFont(ft);
    volume=80;
    order=0;
    ismute=0;
    ui->setupUi(this);
    pushButtonc=0;
    ui->tableWidget->clearContents();
    ui->tableWidget->setEditTriggers(QAbstractItemView::NoEditTriggers);
    playList=new QMediaPlaylist;
    playList->setPlaybackMode(QMediaPlaylist::Loop);
    player=new QMediaPlayer;
    player->setPlaylist(playList);
    player->setVolume(volume);
    ui->horizontalSlider->setRange(0, 0);
    ui->tableWidget->setContextMenuPolicy(Qt::CustomContextMenu);
    connect(ui->tableWidget, SIGNAL(customContextMenuRequested(const QPoint&)),
            this, SLOT(show_contextmenu(const QPoint&)));

    connect(player, SIGNAL(positionChanged(qint64)), this, SLOT(positionChanged1(qint64)));
    connect(player, SIGNAL(durationChanged(qint64)), this, SLOT(durationChanged1(qint64)));

    probe->setSource(player);
    connect(probe,SIGNAL(audioBufferProbed(QAudioBuffer)),Wdata,SLOT(processBuffer(QAudioBuffer)));
    //connect(probe,SIGNAL(audioBufferProbed(QAudioBuffer)),this,SLOT(test(QAudioBuffer)));
    connect(Wdata,SIGNAL(wavedataUpdated(wavedata&)),Fdata,SLOT(calculateFFT(wavedata&)));
    connect(Wdata,SIGNAL(wavedataUpdated(wavedata&)),Ddata,SLOT(processWaveData(wavedata&)));
    connect(Fdata,SIGNAL(FFTstandby(fft&)),Ddata,SLOT(processFFTData(fft&)));
    connect(Ddata,SIGNAL(detailDataStandbyT(QString&)),this,SLOT(update_ZhuangBi(QString&)));


}
开发者ID:LetUsScrewSomething,项目名称:triangle,代码行数:52,代码来源:widget.cpp


示例14: processBuffer

void StreamingPlayer::poling() {

    int processed = cross::AudioSystem::getSourceProcessed(source_id_);

    if (processed) {
        cross::AudioSystem::BufferID buffer;

        // 処理を終えたキューをデキュー
        cross::AudioSystem::unqueueBuffers(source_id_, 1, &buffer);

        // バッファを埋める
        processBuffer(buffer);
        
        // エンキュー
        cross::AudioSystem::queueBuffers(source_id_, 1, &buffer);
    }

}
开发者ID:doscoy,项目名称:tri_engine,代码行数:18,代码来源:tri_streaming_player.cpp


示例15: assert

bool ImuseChannel::appendData(Common::SeekableReadStream &b, int32 size) {
	if (_dataSize == -1) {
		assert(size > 8);
		uint32 imus_type = b.readUint32BE();
		/*uint32 imus_size =*/ b.readUint32BE();
		if (imus_type != MKTAG('i','M','U','S'))
			error("Invalid Chunk for imuse_channel");
		size -= 8;
		_tbufferSize = size;
		assert(_tbufferSize);
		_tbuffer = (byte *)malloc(_tbufferSize);
		if (!_tbuffer)
			error("imuse_channel failed to allocate memory");
		b.read(_tbuffer, size);
		_dataSize = -2;
	} else {
		if (_tbuffer) {
			byte *old = _tbuffer;
			int32 new_size = size + _tbufferSize;
			_tbuffer = (byte *)malloc(new_size);
			if (!_tbuffer)
				error("imuse_channel failed to allocate memory");
			memcpy(_tbuffer, old, _tbufferSize);
			free(old);
			b.read(_tbuffer + _tbufferSize, size);
			_tbufferSize += size;
		} else {
			_tbufferSize = size;
			_tbuffer = (byte *)malloc(_tbufferSize);
			if (!_tbuffer)
				error("imuse_channel failed to allocate memory");
			b.read(_tbuffer, size);
		}
	}

	processBuffer();

	_srbufferSize = _sbufferSize;
	if (_sbuffer && _bitsize == 12)
		decode();

	return true;
}
开发者ID:AlbanBedel,项目名称:scummvm,代码行数:43,代码来源:imuse_channel.cpp


示例16: ReadFromClient

// 读取客户端数据
void ReadFromClient(aeEventLoop *el, int fd, void *privdata, int mask)
{
	int res;
	client_t* c = privdata;
	res = read(fd, c->request + c->len, MAX_LEN - c->len);
	if( res <= 0 )
	{
		ClientClose(el, c, res);
		return;
	}
	c->len += res;	
	
	if(processBuffer(el, c, res) == OK) {
		if(aeCreateFileEvent(el, fd, AE_WRITABLE, sendReplyToClient, c) == AE_ERR)  {
			fprintf(stderr, "Can't Register File Writeable Event.\n");
			ClientClose(el, c, res);
		}			
	}
	
}
开发者ID:wshgit,项目名称:redis-net,代码行数:21,代码来源:server.c


示例17: PRINT

// figure processing latency by doing 'dry runs' of processBuffer()
bigtime_t AudioFilterNode::calcProcessingLatency() {

	PRINT(("AudioFilterNode::calcProcessingLatency()\n"));
	
	ASSERT(m_input.source != media_source::null);
	ASSERT(m_output.destination != media_destination::null);
	ASSERT(m_op);

	// initialize filter
	m_op->init();

	size_t maxSize = max_c(
		m_input.format.u.raw_audio.buffer_size,
		m_output.format.u.raw_audio.buffer_size);

	// allocate a temporary buffer group
	BBufferGroup* testGroup = new BBufferGroup(
		maxSize, 1);
	
	// fetch a buffer big enough for in-place processing
	BBuffer* buffer = testGroup->RequestBuffer(
		maxSize, -1);
	ASSERT(buffer);
	
	buffer->Header()->type = B_MEDIA_RAW_AUDIO;
	buffer->Header()->size_used = m_input.format.u.raw_audio.buffer_size;
	
	// run the test
	bigtime_t preTest = system_time();
	processBuffer(buffer, buffer);
	bigtime_t elapsed = system_time()-preTest;
	
	// clean up
	buffer->Recycle();
	delete testGroup;

	// reset filter state
	m_op->init();

	return elapsed;// + 100000LL;
}
开发者ID:mariuz,项目名称:haiku,代码行数:42,代码来源:AudioFilterNode.cpp


示例18: QWidget

Widget::Widget(QWidget *parent) :
    QWidget(parent),
    ui(new Ui::Widget)
{
    ui->setupUi(this);

    createTrayIcon();
    createAudioRecorder();
    createDeviceList();
    createRecordButtonsGroup();

    connect(audioRecorder, SIGNAL(stateChanged(QMediaRecorder::State)),
            this, SLOT(onStateChanged(QMediaRecorder::State)));
    connect(audioRecorder, SIGNAL(durationChanged(qint64)),
            this, SLOT(updateProgress(qint64)));
    connect(trayIcon, SIGNAL(activated(QSystemTrayIcon::ActivationReason)),
            this, SLOT(iconActivated(QSystemTrayIcon::ActivationReason)));
    connect(recordButtons, SIGNAL(buttonClicked(QAbstractButton*)),
            this, SLOT(toggleRecord(QAbstractButton*)));
    connect(probe, SIGNAL(audioBufferProbed(QAudioBuffer)),
            this, SLOT(processBuffer(QAudioBuffer)));
}
开发者ID:dolohow,项目名称:whistle-my-mouse,代码行数:22,代码来源:widget.cpp


示例19: assert

bool SaudChannel::appendData(Common::SeekableReadStream &b, int32 size) {
	if (_dataSize == -1) {
		assert(size > 8);
		uint32 saud_type = b.readUint32BE();
		/*uint32 saud_size =*/ b.readUint32BE();
		if (saud_type != MKID_BE('SAUD'))
			error("Invalid Chunk for SaudChannel : %X", saud_type);
		size -= 8;
		_dataSize = -2;
	}
	if (_tbuffer) {
		byte *old = _tbuffer;
		_tbuffer = (byte *)malloc(_tbufferSize + size);
		if (!_tbuffer)
			error("saud_channel failed to allocate memory");
		memcpy(_tbuffer, old, _tbufferSize);
		free(old);
		b.read(_tbuffer + _tbufferSize, size);
		_tbufferSize += size;
	} else {
		_tbufferSize = size;
		_tbuffer = (byte *)malloc(_tbufferSize);
		if (!_tbuffer)
			error("saud_channel failed to allocate memory");
		b.read(_tbuffer, _tbufferSize);
	}

	if (_keepSize) {
		_sbufferSize = _tbufferSize;
		_sbuffer = _tbuffer;
		_tbufferSize = 0;
		_tbuffer = 0;
	} else {
		processBuffer();
	}

	return true;
}
开发者ID:Templier,项目名称:scummvm-test,代码行数:38,代码来源:saud_channel.cpp


示例20: processBuffer

/// return latest hash as 16 hex characters
std::string Keccak::getHash()
{
  // process remaining bytes
  processBuffer();

  // convert hash to string
  static const char dec2hex[16 + 1] = "0123456789abcdef";

  // number of significant elements in hash (uint64_t)
  unsigned int hashLength = m_bits / 64;

  std::string result;
  for (unsigned int i = 0; i < hashLength; i++)
    for (unsigned int j = 0; j < 8; j++) // 64 bits => 8 bytes
    {
      // convert a byte to hex
      unsigned char oneByte = (unsigned char) (m_hash[i] >> (8 * j));
      result += dec2hex[oneByte >> 4];
      result += dec2hex[oneByte & 15];
    }

  return result;
}
开发者ID:bouviervj,项目名称:webcjson,代码行数:24,代码来源:keccak.cpp



注:本文中的processBuffer函数示例由纯净天空整理自Github/MSDocs等源码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。


鲜花

握手

雷人

路过

鸡蛋
该文章已有0人参与评论

请发表评论

全部评论

专题导读
上一篇:
C++ processCommand函数代码示例发布时间:2022-05-30
下一篇:
C++ processBlock函数代码示例发布时间:2022-05-30
热门推荐
阅读排行榜

扫描微信二维码

查看手机版网站

随时了解更新最新资讯

139-2527-9053

在线客服(服务时间 9:00~18:00)

在线QQ客服
地址:深圳市南山区西丽大学城创智工业园
电邮:jeky_zhao#qq.com
移动电话:139-2527-9053

Powered by 互联科技 X3.4© 2001-2213 极客世界.|Sitemap