www.gusucode.com > 嵌入式linux系统的网络编程源码程序 > 嵌入式linux系统的网络编程源码程序/视频会议源码/network_audio_send.cpp
/////////////////////////////////////////////////////// // FileName: network_audio_send.cpp // Author: b1gm0use // Project: myvideo #include <iostream> #include <string.h> #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <unistd.h> #include <qapplication.h> #include <qsemaphore.h> #include "network_audio_send.h" #include "network.h" #include "capture_event.h" #include "video.h" #include "avi.h" using namespace std; /////////////////////////////////////////////////////// // Public Functions /////////////////////////////////////////////////////// // 构造函数 network_audio_send::network_audio_send ( avi * avi_ptr_in ) // {{{ { verbose_output( 2, "create network_audio_send" ); cfd = 0; last_buff = NULL; avi_ptr = avi_ptr_in; } // }}} network_audio_send::~network_audio_send ( void ) // {{{ { delete [] last_buff; } // }}} // 初始化函数 int network_audio_send::init ( void ) // {{{ { verbose_output( 2, "init network_audio_send" ); last_buff = new BUFF [ MAX_AUDIO_BUFF_SIZE ]; return SUCCEED; } // }}} // 向网络上发送图像 int network_audio_send::send_image ( const BUFF * buff, int size ) // {{{ { verbose_output( 2, "network_audio_send send_image" ); memcpy( last_buff, buff, size ); capture_event new_event( AUDIO_NET_SEND_EVENT, last_buff, size ); if ( NULL != avi_ptr->network_ctrl_ptr ) { (*(avi_ptr->send_image_semaphore))++; QApplication::sendEvent( (QObject *) avi_ptr->network_ctrl_ptr, (QEvent *) &new_event ); (*(avi_ptr->send_image_semaphore))--; } verbose_output( 3, "send audio frame ok" ); return SUCCEED; } // }}}