示例#1
0
DWORD PCOBuffer::Remove()
{
  DWORD err = 0;
  err = RemoveBuffer(cameraHandle, bufnr);
  errmsg.ShowPCOError("RemoveBuffer", err);
  return err;
}
示例#2
0
//==============================================================================
int COptoTrack::DisconnectOpto(){

  int iSensor;
  if( !IsRunning() ) {
    CP_printf("Opto is not connected!\n");
    return 1;
  }
  CP_printf("\nDisonnecting OptoTrak...   ");
  // Stop the thread, specify stopping time in ms (duration of 10 frames)
  if( m_StopReadingThread( int(FRAME_TIME_MS) * 10 )  > 1 ) {
    CP_printf("\nError: m_StopReadingThread() failed!\n");
    return 1;
  }

  // release the buffers
  RemoveBuffer();

  // Set signal level indicator to OFF
  for(iSensor =0; iSensor < N_SENSORS_MAX; iSensor++)
    m_iDistirtionLevel[iSensor]= ecSensorOff;

  CP_printf("Opto disconnected.\n");
  CP_printf("Collected %d frames.\n", m_iReadCount);
  CP_printf("Last frame index from OptotTrak:  %d\n", m_iOptoFrameIdx);
  CP_printf("Number of missed frames: %d\n", m_nMissedFrames);
  CP_printf("Number of missed times: %d\n", m_nMissedTimes);
  
  CP_printf("++++++++++++++++++++++++++++++++++++++\n");

  return 0;
}
示例#3
0
void DeleteBuffer(ALCdevice *device, ALbuffer *buffer)
{
    RemoveBuffer(device, buffer->id);
    FreeThunkEntry(buffer->id);

    free(buffer->data);

    memset(buffer, 0, sizeof(*buffer));
    free(buffer);
}
示例#4
0
文件: tcpSocket.cpp 项目: gthgame/gth
CRecvBuffer::CRecvBuffer (int packetCount)
: m_bufferSize (packetCount * sizeof (PACKET_GAME)),
  m_init (true)
{
	m_pBuffer = new unsigned char [m_bufferSize] ;

	if ( NULL == m_pBuffer )
	{
		m_init = false ;
		RemoveBuffer () ;
	}

	Clear () ;
}
示例#5
0
//===========================================================================
int CSerialThread::m_CloseSerialThread( ){

  //Terminate thread
  m_blnThreadActive = false;
  Sleep(200); // Wait for the thread to finish

  if( m_hSerialThread != NULL ) {
    CP_printf("Error in m_CloseSerialThread()! Thread is still running.\n");
  }
  m_Serial.disconnect();
  RemoveBuffer();

  return 0;
}
示例#6
0
//==============================================================================
int CEyeTrack::ConnectISCAN(  ){
  int iRet;

  if( IsRunning() ) {
    CP_printf("Error in m_InitSerialThread()! Thread is already running.\n");
    return 1;
  }
  iRet = g_SysGrantIO( LPT_BASE );
  if( iRet ) {
    iPortIO_Granted = 0;
    printf("Error: Cannot grant I/O access, error: %d\n", iRet );
    return 1;
  }
 
  iPortIO_Granted = 1;
  PortOutput( LPT_CONTROL, RESET_ON);
  Sleep(1);
  PortOutput( LPT_CONTROL, GATE_OFF);
  Sleep(1);
  PortOutput( LPT_CONTROL, GATE_ON);


  CP_printf("Connecting to %s port\n", x_aszComNames[ m_iComPortIdx-1]);
  iRet = m_Serial.connect(x_aszComNames[ m_iComPortIdx-1], m_iBaudRate, m_iSerialParity);
  if(iRet) {
    CP_printf("Error in m_InitSerialThread, m_Serial.connect() failed\n");
    return 1;
  }

  m_ReadCount = 0;
  m_iMissCount = 0;
  m_nMissedFrames = 0;
  m_iPrevFrame = 0;
  m_iReportSync = 1;  // report next sync
  // Init sliding buffer
  SetBuffer(sizeof(IScanFrameStruct), ISCAN_BUFFER_SIZE);
  ResetBuffer();
  ResetTime();
  m_StartReadingThread( ); 
  if( !IsRunning() ) {
    CP_printf("Error in m_InitSerialThread()! CreateThread() failed.\n");
    PortOutput( LPT_CONTROL, GATE_OFF);
    RemoveBuffer();
    return 1;
  }
  CP_printf("Connected ISCAN\n");
  CP_printf("Expected number of parameters: %d\n", N_DATA_ITEMS);
  return 0;
}
示例#7
0
//==============================================================================
int CEyeTrack::DisconnectISCAN(){


  if( iPortIO_Granted ) {
    PortOutput( LPT_CONTROL, GATE_OFF);
  }
  //Terminate thread
  m_StopReadingThread( 500 ); // thread stop time msec
  m_Serial.disconnect();
  RemoveBuffer();

  CP_printf("Disconnected ISCAN\n");

  return 0;
}
示例#8
0
/* 
 * This application substitues in the DNA sequence the outside ACGT chars by random ACGT symbols.
 */
int main(int argc, char *argv[]){
  uint32_t streamSize, index, seed = 0;
  uint8_t  value;
  char     *bases = "ACGT";
  BUF *Buffer;
  srand(seed);
  
  char *programName = argv[0];
  struct argparse_option options[] = {
        OPT_HELP(),
        OPT_GROUP("Basic options"),
        OPT_BUFF('<', "input.seq", "Input sequence file (stdin)"),
        OPT_BUFF('>', "output.seq", "Output sequence file (stdout)"),
        OPT_END(),
  };
  struct argparse argparse;

  char usage[250] = "\nExample: "; 
  strcat(usage, programName);
  strcat(usage, " < input.seq > output.seq\n");

  argparse_init(&argparse, options, NULL, programName, 0);
  argparse_describe(&argparse, "\nIt substitues in the DNA sequence the outside "
    "ACGT chars by random ACGT symbols.\nIt works in sequence file formats\n", usage);
  argc = argparse_parse(&argparse, argc, argv);

  if(argc != 0)
    argparse_help_cb(&argparse, options);

  Buffer = CreateBuffer(BUF_SIZE);

  while((streamSize = fread(Buffer->buf, 1, Buffer->size, stdin)))
    for(index = 0 ; index < streamSize ; ++index)
    {
      value = Buffer->buf[index];
      if(value == '\n')
        continue;
      RandIfExtra(value, bases);
    } 

  RemoveBuffer(Buffer); 
  return EXIT_SUCCESS;
}
示例#9
0
AL_API ALvoid AL_APIENTRY alDeleteBuffers(ALsizei n, const ALuint *buffers)
{
    ALCdevice *device;
    ALCcontext *context;
    ALbuffer *ALBuf;
    ALsizei i;

    context = GetContextRef();
    if(!context) return;

    if(!(n >= 0))
        SET_ERROR_AND_GOTO(context, AL_INVALID_VALUE, done);

    device = context->Device;
    for(i = 0; i < n; i++)
    {
        if(!buffers[i])
            continue;

        /* Check for valid Buffer ID */
        if((ALBuf=LookupBuffer(device, buffers[i])) == NULL)
            SET_ERROR_AND_GOTO(context, AL_INVALID_NAME, done);
        if(ReadRef(&ALBuf->ref) != 0)
            SET_ERROR_AND_GOTO(context, AL_INVALID_OPERATION, done);
    }

    for(i = 0; i < n; i++)
    {
        if((ALBuf=RemoveBuffer(device, buffers[i])) == NULL)
            continue;
        FreeThunkEntry(ALBuf->id);

        free(ALBuf->data);

        memset(ALBuf, 0, sizeof(*ALBuf));
        free(ALBuf);
    }

done:
    ALCcontext_DecRef(context);
}
示例#10
0
void BufferCircle::Resize(int size)
{
	while(size < Size())
		RemoveBuffer(Size()-1);

	int oldSize = Size();

	SoundBuffer.resize(size);
	BufferSize.resize(size);
	BufferReady.resize(size);

	for(int i = oldSize; i < Size(); i++)
	{
		if(BufferBlockSize > 0)
			SoundBuffer[i] = (u8 *) memalign(32, ALIGN32(BufferBlockSize));
		else
			SoundBuffer[i] = NULL;
		BufferSize[i] = 0;
		BufferReady[i] = false;
	}
}
示例#11
0
void AudioHandlerAl::UnloadSound(const std::string& resource)
{
  // remove all referenced source first
  
  std::map<std::string, int>::iterator itor = buffer_resource_map_.find(resource);
  if (itor != buffer_resource_map_.end())
  {
    int buffer_ref = itor->second;
    size_t source_num = sources_.size();
    for (int i = 0; i < source_num; ++i)
    {
      if (sources_[i].buffer_ref == buffer_ref)
        RemoveSource(i);
    }
  }
  
  // if still exist
  
  itor = buffer_resource_map_.find(resource);
  if (itor != buffer_resource_map_.end())
  {
    RemoveBuffer(itor->second);
  }
}
示例#12
0
文件: tcpSocket.cpp 项目: gthgame/gth
CRecvBuffer::~CRecvBuffer ()
{
	RemoveBuffer () ;
}
示例#13
0
/* 
 * This application substitues in the FASTQ files, the DNA sequence the outside ACGT chars by random ACGT symbols.
 */
int main(int argc, char *argv[])
{
  uint32_t streamSize, index, seed = 0;
  uint8_t  value, line = 0;
  char     *bases = "ACGT";
  PARSER *Parser = CreateParser();
  BUF *Buffer;
  srand(seed);

  char *programName = argv[0];
  struct argparse_option options[] = {
        OPT_HELP(),
        OPT_GROUP("Basic options"),
        OPT_BUFF('<', "input.fastq", "Input FASTQ file format (stdin)"),
        OPT_BUFF('>', "output.fastq", "Output FASTQ file format (stdout)"),
        OPT_END(),
  };
  struct argparse argparse;

  char usage[250] = "\nExample: "; 
  strcat(usage, programName);
  strcat(usage, " < input.fastq > output.fastq\n");

  argparse_init(&argparse, options, NULL, programName, 0);
  argparse_describe(&argparse, "\nIt substitues in the FASTQ files, the DNA sequence the outside ACGT chars by random ACGT symbols.", usage);
  argc = argparse_parse(&argparse, argc, argv);

  if(argc != 0)
    argparse_help_cb(&argparse, options);

  FileType(Parser, stdin);
  if(Parser->type != 2)
  {
    fprintf(stderr, "ERROR: This is not a FASTQ file!\n");
    exit(1);
  }

  Buffer = CreateBuffer(BUF_SIZE);

  while((streamSize = fread(Buffer->buf, 1, Buffer->size, stdin)))
    for(index = 0 ; index < streamSize ; ++index)
    {
      value = Buffer->buf[index];
      switch(line)
      {
        case 0:
          putchar(value);
          if(value == '\n') line = 1;
          break;

        case 1: 
          if(value == '\n')
          {
            putchar('\n');
            line = 2;
            break;
          }
          RandIfExtra(value, bases);
          break;

        case 2:
          putchar(value); 
          if(value == '\n') line = 3; 
          break;
        
        case 3: 
          putchar(value);
          if(value == '\n') line = 0; 
          break;
      } 
    }

  RemoveBuffer(Buffer); 
  return EXIT_SUCCESS;
}
示例#14
0
//----------------------------------------------------------------
CSlideBuf2::~CSlideBuf2(){
  RemoveBuffer();
  DeleteCriticalSection( &m_CriticalSection );
}
示例#15
0
/*
 * This application converts a amino acid sequence to a group sequence.
 */
int main(int argc, char *argv[])
{
  int64_t streamSize, index;
  char value;
  BUF *Buffer;

  char *programName = argv[0];
  struct argparse_option options[] = {
        OPT_HELP(),
        OPT_GROUP("Basic options"),
        OPT_BUFF('<', "input.prot", "Input amino acid sequence file (stdin)"),
        OPT_BUFF('>', "output.group", "Output group sequence file (stdout)"),
        OPT_END(),
  };
  struct argparse argparse;

  char usage[500] = "\nExample: "; 
  strcat(usage, programName);
  strcat(usage, " < input.prot > output.group\n");
  strcat(usage, "Table:\n");
  strcat(usage, "Prot\tGroup\n");
  strcat(usage, "R\tP\n");
  strcat(usage, "H\tP  Amino acids with electric charged side chains: POSITIVE\n");
  strcat(usage, "K\tP\n");
  strcat(usage, "-\t-\n");
  strcat(usage, "D\tN\n");
  strcat(usage, "E\tN  Amino acids with electric charged side chains: NEGATIVE\n");
  strcat(usage, "-\t-\n");
  strcat(usage, "S\tU\n");
  strcat(usage, "T\tU\n");
  strcat(usage, "N\tU  Amino acids with electric UNCHARGED side chains\n");
  strcat(usage, "Q\tU\n");
  strcat(usage, "-\t-\n");
  strcat(usage, "C\tS\n");
  strcat(usage, "U\tS\n");
  strcat(usage, "G\tS  Special cases\n");
  strcat(usage, "P\tS\n");
  strcat(usage, "-\t-\n");
  strcat(usage, "A\tH\n");
  strcat(usage, "V\tH\n");
  strcat(usage, "I\tH\n");
  strcat(usage, "L\tH\n");
  strcat(usage, "M\tH  Amino acids with hydrophobic side chains\n");
  strcat(usage, "F\tH\n");
  strcat(usage, "Y\tH\n");
  strcat(usage, "W\tH\n");
  strcat(usage, "-\t-\n");
  strcat(usage, "*\t*  Others\n");
  strcat(usage, "X\tX  Unknown\n");

  argparse_init(&argparse, options, NULL, programName, 0);
  argparse_describe(&argparse, "\nIt converts a amino acid sequence to a group sequence.", usage);
  argc = argparse_parse(&argparse, argc, argv);

  if(argc != 0)
    argparse_help_cb(&argparse, options);

  Buffer = CreateBuffer(BUF_SIZE);
  while((streamSize = fread(Buffer->buf, 1, Buffer->size, stdin)))
  {
    for(index = 0 ; index < streamSize ; ++index)
    {
      value = Buffer->buf[index];
      switch(value)
      {
        case 'R': putchar('P'); break;
        case 'H': putchar('P'); break;
        case 'K': putchar('P'); break;

        case 'D': putchar('N'); break;
        case 'E': putchar('N'); break;

        case 'S': putchar('U'); break;
        case 'T': putchar('U'); break;
        case 'N': putchar('U'); break;
        case 'Q': putchar('U'); break;

        case 'C': putchar('S'); break;
        case 'U': putchar('S'); break;
        case 'G': putchar('S'); break;
        case 'P': putchar('S'); break;

        case 'A': putchar('H'); break;
        case 'V': putchar('H'); break;
        case 'I': putchar('H'); break;
        case 'L': putchar('H'); break;
        case 'M': putchar('H'); break;
        case 'F': putchar('H'); break;
        case 'Y': putchar('H'); break;
        case 'W': putchar('H'); break;

        case '*': putchar('*'); break;
        case 'X': putchar('X'); break;
      }
    }
  }

  RemoveBuffer(Buffer);

  return EXIT_SUCCESS;
}
示例#16
0
int AudioHandlerAl::AddBuffer(const std::string& resource)
{
  ALenum error = AL_NO_ERROR;
  
  AudioBufferInfo buffer_info;
  
  // Create some OpenAL Buffer Objects
  
  alGenBuffers(1, &buffer_info.buffer);
  if ((error = alGetError()) != AL_NO_ERROR)
  {
    fprintf(stderr, "Error(%x) generating buffer for %s\n", error, resource.c_str());
    return -1;
  }
  
  ALenum format;
  ALsizei size;
  ALsizei freq;
  
  void* data = GetAlAudioData(resource,
                              size,
                              format,
                              freq);
  
  if (NULL == data)
  {
    fprintf(stderr, "Failed to get audio data for %s\n", resource.c_str());
    return -1;
  }
  
  // use the static buffer data API
  //alBufferDataStaticProc(buffer_info.buffer, format, data, size, freq);
  alBufferData(buffer_info.buffer, format, data, size, freq);
  
  free(data);
  
  if ((error = alGetError()) != AL_NO_ERROR) {
    fprintf(stderr, "Error(%x) attaching audio to buffer for %s\n", error, resource.c_str());
    return -1;
  }		
  
  int i = 0;
  for (; i < buffers_.size(); ++i)
  {
    if (buffers_[i].reference_count == 0)
    {
      if (buffers_[i].buffer != 0)
        RemoveBuffer(i);
      
      buffers_[i] = buffer_info;
      
#ifdef AUDIO_LOG
      fprintf(stdout, "AddBuffer replace buffer %d\n", i);
#endif
      break;
    }
  }
  
  if (i == buffers_.size())
  {
    buffers_.push_back(buffer_info);
    
#ifdef AUDIO_LOG
    fprintf(stdout, "AddBuffer push back buffer %d\n", i);
#endif
  }
  
  buffer_resource_map_.insert(std::make_pair(resource, i));
  
#ifdef AUDIO_LOG
  fprintf(stdout, "AddBuffer to map %s -> %d\n", resource.c_str(), i);
#endif
  
  return i;
}