PAudioData.cpp
上传用户:popouu88
上传日期:2013-02-11
资源大小:2894k
文件大小:1k
源码类别:

IP电话/视频会议

开发平台:

Visual C++

  1. // PAudioData.cpp: implementation of the PAudioData class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "PAudioData.h"
  5. //////////////////////////////////////////////////////////////////////
  6. // Construction/Destruction
  7. //////////////////////////////////////////////////////////////////////
  8. PAudioData::PAudioData()
  9. {
  10. this->Tag = PAudioDataTAG;
  11. this->user_id = 0;
  12. this->audio_buffer = NULL;
  13. this->audio_size = 0;
  14. }
  15. PAudioData::~PAudioData()
  16. {
  17. }
  18. bool PAudioData::assembleData( int user_id , char * buffer , int size )
  19. {
  20. this->buffer.Resize( 4 * INT_SIZE + size );
  21. char * now = this->buffer.GetBuffer( );
  22. *( int * )now = this->buffer.GetSize( ); now += INT_SIZE;
  23. *( int * )now = this->Tag; now += INT_SIZE;
  24. *( int * )now = user_id; now += INT_SIZE;
  25. *( int * )now = size; now += INT_SIZE;
  26. if( size )
  27. memcpy( now , buffer , size );
  28. return true;
  29. }
  30. bool PAudioData::parseData( CBuffer & buffer )
  31. {
  32. if( ! buffer.GetSize( ) ) return false;
  33. char * now = buffer.GetBuffer( ) + 2 * INT_SIZE;
  34. this->user_id = *( int * )now ; now += INT_SIZE;
  35. this->audio_size = *( int * )now; now += INT_SIZE;
  36. this->audio_buffer = this->audio_size ? now : NULL;
  37. return true;
  38. }