⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 network_ctrl.h

📁 嵌入式linux系统的网络编程(C++) 在ARM上实现视频会议 此程序获得全国研究生电子大赛一等奖 压缩包内为全部源码
💻 H
字号:
///////////////////////////////////////////////////////// FileName:	network_ctrl.h// Author:		b1gm0use// Project:		myvideo#ifndef _NETWORK_CTRL_H_#define _NETWORK_CTRL_H_#include <qwidget.h>#include <qmutex.h>#include <list>#include "common.h"using namespace std;class network_ctrl_recv_thread;class network_ctrl_send_thread;class QSemaphore;class QWaitCondition;class avi;class buff_t // {{{{public:			buff_t ( BUFF * ptr, int size )	{		buff_ptr = ptr;		buff_size = size;	};	~buff_t ( void )	{		if ( NULL != buff_ptr);		{			delete [] buff_ptr;		}	}public:			BUFF * buff_ptr;	int buff_size;}; // }}}class network_ctrl : public QWidget{    Q_OBJECTpublic:	// 构造函数    network_ctrl ( avi * avi_ptr_in, QWidget *parent = 0, const char *name = 0, 			int wFlags = 0 );	// 析构函数    ~network_ctrl();	// 初始化函数	int init( void );	void begin_running ( void );	void stop_running ( void );	bool running ( void );	friend class network_ctrl_send_thread;	friend class network_ctrl_recv_thread;	friend class network_audio_send_thread;	friend class network_audio_recv_thread;	friend class network_video_send_thread;	friend class network_video_recv_thread;protected:	// 内部函数,用于接收自定义的事件	void customEvent ( QCustomEvent * e );private:	// 指向捕捉线程的指针	network_ctrl_recv_thread * ncrt;	network_ctrl_send_thread * ncst;	// 保护audio_buff不会被同时访问	QSemaphore * audio_send_buff_sema;	// 保护video_buff不会被同时访问	QSemaphore * video_send_buff_sema;		// 通知音频发送线程可以发送	QWaitCondition * ready_to_send_audio;	// 通知视频发送线程可以发送	QWaitCondition * ready_to_send_video;	// 待发送的音频缓冲	buff_t * audio_buff[3];	// 待发送的视频缓冲	buff_t * video_buff[3];	// 指示下一个将使用的是哪一个音频缓冲	int video_frame;	// 指示下一个将使用的是哪一个视频缓冲	int audio_frame;	// 指向avi的指针	avi * avi_ptr;	QSemaphore * term_sub_thread_sema;	bool term_sub_thread;};#endif //_NETWORK_CTRL_H_

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -