亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? conference.h

?? openmcu 是開源的H.323會議服務器,需要pwlib 和 openh323的編譯庫文件支持。
?? H
?? 第 1 頁 / 共 2 頁
字號:
/*
 * conference.h
 *
 * Conferencing functions for a simple MCU
 *
 * Copyright (c) 2000 Equivalence Pty. Ltd.
 * Copyright (c) 2004 Post Increment
 *
 * The contents of this file are subject to the Mozilla Public License
 * Version 1.0 (the "License"); you may not use this file except in
 * compliance with the License. You may obtain a copy of the License at
 * http://www.mozilla.org/MPL/
 *
 * Software distributed under the License is distributed on an "AS IS"
 * basis, WITHOUT WARRANTY OF ANY KIND, either express or implied. See
 * the License for the specific language governing rights and limitations
 * under the License.
 *
 * The Original Code is Portable Windows Library.
 *
 * The Initial Developer of the Original Code is Equivalence Pty. Ltd.
 *
 * Portions of this code were written by Post Increment (http://www.postincrement.com) 
 * with the assistance of funding from Citron Networks (http://www.citron.com.tw)
 *
 * Portions are Copyright (C) 1993 Free Software Foundation, Inc.
 * All Rights Reserved.
 *
 * Contributor(s): Derek J Smithies (derek@indranet.co.nz)
 *                 ------------------------------
 *
 * $Log: conference.h,v $
 * Revision 2.4  2005/03/11 00:25:24  csoutheren
 * Fixed problems with flags
 *
 * Revision 2.3  2004/05/26 06:54:31  csoutheren
 * Changed to be a PHTTPServiceProcess
 * Added ability to play WAV files on member entry and exit
 * Added additional documentation on all classes
 * Preparation for re-introducing video
 *
 * Revision 2.2  2004/03/31 03:36:38  csoutheren
 * Fixed problem with user indication messages
 * Fixed problems with room listener and unlisten
 *
 * Revision 2.1  2004/03/11 20:49:44  csoutheren
 * Removed warnings
 *
 * Revision 2.0  2004/03/08 02:06:24  csoutheren
 * Totally rewritten to use new connection locking mecahnism
 * Added ability to monitor conferences
 * Added initial support for H.323 MCU messages
 * Thanks to Citron Networks for supporting this work
 *
 */

#ifndef _OpenMCU_CONFERENCE_H
#define _OpenMCU_CONFERENCE_H

#ifdef _WIN32
#pragma warning(disable:4786)
#pragma warning(disable:4100)
#endif

#include <set>
#include <map>

#include <h323.h>
#include <h323pdu.h>

class OpenMCUH323Connection;

////////////////////////////////////////////////////

#ifndef NO_MCU_VIDEO

class VideoBuffer : public PObject
{
  PCLASSINFO(VideoBuffer, PObject);

  public:
    VideoBuffer();
    ~VideoBuffer();
 
    void WriteAll( BYTE * ptr, PINDEX amount);  //For single stream option
    void Write( BYTE * ptr, PINDEX amount, PINDEX posn);
    void Read(BYTE * ptr, PINDEX amount);
    void Clear(PINDEX posn); //Reset the buffer at the specified position 
    void SetSize(int x, int y); // Set the vidbuffer size

  protected:
    BYTE * buffer;
    PINDEX videoBufferSize;    ///Total number of bytes in buffer. Never gets changed.
    PMutex videoBufferMutex;
    int    bufferFrameSize;
    int    xSize, ySize;
};

typedef map<PString, VideoBuffer *> VideoBufferDict;

#endif

////////////////////////////////////////////////////

class AudioDelay : public PObject
{
  PCLASSINFO(AudioDelay, PObject);

  public:
    AudioDelay();
    virtual BOOL Delay(int time);
    virtual void Restart();

  protected:
    PTime  previousTime;
    BOOL   firstTime;
    int    error;
};

class VideoDelay : public AudioDelay
{
  PCLASSINFO(VideoDelay, AudioDelay);

  public:
    BOOL Delay(int time);
};

////////////////////////////////////////////////////

class MCULock : public PObject
{
  PCLASSINFO(MCULock, PObject);
  public:
    MCULock();
    BOOL Wait(BOOL hard = FALSE);
    void Signal(BOOL hard = FALSE);
    void WaitForClose();
  protected:
    PMutex mutex;
    BOOL closing;
    int count;
    PSyncPoint closeSync;
};

////////////////////////////////////////////////////

class Conference;

/**
  * this class describes a connection between a conference member and a conference
  * each conference member has one instance of class for every other member of the conference
  */

class ConferenceConnection : public PObject {
  PCLASSINFO(ConferenceConnection, PObject);
  public:
    ConferenceConnection(void * _id);
    ~ConferenceConnection();

    void * GetID() const
    { return id; }

#ifdef _WIN32
#pragma warning(push)
#pragma warning(disable:4311)
#endif
    virtual PString GetName() const
    { return PString(PString::Unsigned, (unsigned)id); }
#ifdef _WIN32
#pragma warning(pop)
#endif

    virtual void OnUserInputIndication(const PString &)
    { }

    void WriteAudio(void * source, const void * buffer, PINDEX amount);
    void Write(const BYTE * ptr, PINDEX amount);
    void ReadAudio(BYTE * ptr, PINDEX amount);
    void ReadAndMixAudio(BYTE * ptr, PINDEX amount, PINDEX channels);

  protected:
    Conference * conference;
    void * id;

    void Mix(BYTE * dst, const BYTE * src, PINDEX count, PINDEX channels);

    BYTE * buffer;
    PINDEX bufferLen;     ///Number of bytes unread in the buffer.
    PINDEX bufferStart;   ///Current position in the buffer.
    PINDEX bufferSize;    ///Total number of bytes in buffer. Never gets changed.
    PMutex audioBufferMutex;

#ifndef NO_MCU_VIDEO
    BOOL hasVideo;
    IncomingVideo * incomingVideo;
    OutgoingVideo * outgoingVideo;
#endif
};

////////////////////////////////////////////////////

/**
  * this class describes a member of a conference
  */

class ConferenceManager;

class ConferenceMember : public PObject
{
  PCLASSINFO(ConferenceMember, PObject);
  public:

    /**
      * create a new conference member. The single parameter is an "id" (usually a pointer) 
      * that can used to identify this member unambiguously
      */
    ConferenceMember(void * id);

    /**
      * used to add a conference member to a conference. This is not done in the constructor
      * as some conference members have non-trivial startup requirements
      */
    virtual BOOL AddToConference(Conference * conference);

    /**
      * used to remove a conference member from a conference. This is not done in the destructor
      * as some conference members have non-trivial shutdown requirements
      */
    virtual void RemoveFromConference();

    /**
      * If this returns TRUE, the conference member will be visible in all publically displayed
      * conference lists. It will always be visible in the console displays
      */
    virtual BOOL Visible() const
    { return TRUE; }

    /**
      * return the conference member ID
      */
    void * GetID() const
    { return id; }

     
#ifdef _WIN32
#pragma warning(push)
#pragma warning(disable:4311)
#endif

    /**
      * return the name of the the conference member
      */
    virtual PString GetName() const
    { return PString(PString::Unsigned, (unsigned)id); }

#ifdef _WIN32
#pragma warning(pop)
#endif

    /**
      * return the conference this member belongs to
      */
    Conference * GetConference()
    { return conference; }

    /**
      * add a new connection for the specified member to this member to the internal list of connections
      */
    virtual void AddConnection(ConferenceMember * newMember);

    /**
      * remove any connections belong to the specified ID from the internal list of connections
      */
    virtual void RemoveConnection(void * id);

    /**
     * This is called when the conference member want to send a user input indication to the the conference.
     * By default, this routines calls OnReceivedUserInputIndication for all of the other conference members
     */
    virtual void SendUserInputIndication(const PString & str);

    /**
     * this virtual function is called when the conference sends a user input indication to the endpoint
     * the conference
     */
    virtual void OnReceivedUserInputIndication(const PString & str)
    { }

    /**
      *  Called when the conference member want to send audio data to the cofnerence
      */
    virtual void WriteAudio(const void * buffer, PINDEX amount);

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲一区二区三区四区的| 国产农村妇女毛片精品久久麻豆| 国产成人亚洲综合a∨婷婷 | 在线看日本不卡| 91女厕偷拍女厕偷拍高清| 成人va在线观看| 成人av免费网站| 成人av在线播放网址| 国产成人精品免费网站| 99精品视频在线免费观看| 99久久免费精品| 色婷婷av一区二区三区软件 | 色综合中文综合网| 一区二区三区精品在线| 综合网在线视频| 一区二区日韩电影| 日韩经典中文字幕一区| 极品尤物av久久免费看| 国产精品一二三四区| 成人a区在线观看| 一本色道久久综合亚洲aⅴ蜜桃| 91麻豆国产精品久久| 欧美视频一区二区三区| 4438成人网| 久久久蜜桃精品| 亚洲欧洲综合另类在线| 爽爽淫人综合网网站| 经典三级视频一区| 欧美精品在线观看一区二区| 欧美成人猛片aaaaaaa| 国产女人aaa级久久久级| 亚洲人午夜精品天堂一二香蕉| 亚洲成人7777| 国产成人亚洲精品青草天美| 91网站黄www| 欧美大片免费久久精品三p| 国产精品免费久久久久| 亚洲国产精品影院| 国产综合色在线视频区| 在线观看亚洲精品视频| 久久久亚洲精品石原莉奈| 亚洲午夜精品久久久久久久久| 国模少妇一区二区三区| 欧美少妇xxx| 国产人成一区二区三区影院| 亚洲一区二区精品视频| 成人在线综合网站| 欧美一区二区三区视频免费| 国产精品久久久久一区| 久久精品国产99国产| 色天使久久综合网天天| 久久久精品免费网站| 日韩国产成人精品| 色综合久久久久综合体桃花网| 欧美mv和日韩mv国产网站| 亚洲一二三四在线观看| www.欧美精品一二区| 2023国产精品自拍| 免费在线观看成人| 欧美亚洲一区二区在线观看| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 欧美日韩高清在线播放| 国产精品视频一二三| 韩国成人在线视频| 欧美日本视频在线| 一区二区三区免费在线观看| 99久久精品久久久久久清纯| 国产三级一区二区| 国产乱人伦偷精品视频免下载| 欧美一区二区三级| 日韩二区在线观看| 91麻豆精品国产91久久久| 午夜精品爽啪视频| 欧美亚洲国产一卡| 午夜视频在线观看一区二区 | 国内精品嫩模私拍在线| 日韩一卡二卡三卡| 美女视频网站久久| 欧美成人一区二区三区在线观看| 亚洲高清一区二区三区| 欧美日韩一区二区三区不卡| 亚洲激情图片小说视频| 欧美性大战久久| 偷拍与自拍一区| 欧美一区二区视频在线观看2022| 丝袜诱惑亚洲看片| 欧美一区二区三区免费视频| 视频精品一区二区| 精品91自产拍在线观看一区| 国产伦精品一区二区三区免费迷| 欧美精品一区二区三区视频 | 亚洲日本在线观看| 欧美色爱综合网| 麻豆久久久久久| 欧美极品美女视频| 色噜噜狠狠色综合中国| 日韩国产欧美在线视频| 日韩精品中文字幕一区二区三区| 狠狠色狠狠色合久久伊人| 国产日产欧产精品推荐色| av欧美精品.com| 亚洲国产精品一区二区www在线| 欧美精品第一页| 久久国产精品99精品国产| 国产精品你懂的| 欧美日高清视频| 国产成人日日夜夜| 亚洲综合久久久| 久久久久久毛片| 在线观看一区二区视频| 久久激情五月激情| 综合亚洲深深色噜噜狠狠网站| 欧美日韩国产bt| 成人精品亚洲人成在线| 天堂久久久久va久久久久| 国产亚洲欧洲997久久综合| 欧美亚洲日本一区| 国产sm精品调教视频网站| 亚洲影视在线观看| 国产清纯白嫩初高生在线观看91 | 丁香亚洲综合激情啪啪综合| 亚洲午夜久久久| 久久久久久夜精品精品免费| 在线免费不卡电影| 豆国产96在线|亚洲| 美女高潮久久久| 亚洲已满18点击进入久久| 日本一区二区视频在线观看| 欧美一级二级在线观看| 色先锋资源久久综合| 国产不卡视频在线观看| 青草国产精品久久久久久| 亚洲视频在线一区| 国产欧美日韩精品一区| 日韩一级片在线播放| 欧美三级在线看| 成人av在线一区二区| 国产精品1区2区3区| 蜜臀久久99精品久久久久久9| 亚洲精品va在线观看| 中文字幕高清不卡| 久久久精品免费免费| 久久蜜桃av一区精品变态类天堂 | 亚洲免费视频中文字幕| 国产精品乱子久久久久| 精品久久久久久久久久久久久久久| 欧美日韩在线直播| 欧美日韩在线一区二区| 欧美三日本三级三级在线播放| 91色视频在线| 91麻豆123| 色婷婷亚洲精品| 色偷偷久久一区二区三区| 99精品欧美一区二区三区小说 | 337p日本欧洲亚洲大胆色噜噜| 91精品婷婷国产综合久久性色| 欧美日韩免费视频| 欧美这里有精品| 欧美伦理视频网站| 日韩一级二级三级| 欧美tickling网站挠脚心| 欧美成va人片在线观看| 久久综合一区二区| 国产欧美日韩在线| 亚洲欧洲国产日韩| 亚洲成人精品一区二区| 亚洲成人三级小说| 免费xxxx性欧美18vr| 国产在线乱码一区二区三区| 狠狠v欧美v日韩v亚洲ⅴ| 国产jizzjizz一区二区| 91在线无精精品入口| 欧美综合在线视频| 欧美一级生活片| 久久久亚洲精品一区二区三区| 中文av字幕一区| 亚洲人xxxx| 免费看日韩a级影片| 夫妻av一区二区| 欧美视频三区在线播放| 欧美va在线播放| 国产精品国产馆在线真实露脸| 亚洲男人电影天堂| 久久97超碰色| 99久免费精品视频在线观看| 欧美日韩色综合| 国产欧美一区二区精品婷婷| 亚洲精选免费视频| 久久av资源网| 欧美午夜一区二区三区 | 亚洲精选在线视频| 蜜臀精品一区二区三区在线观看| 国产在线一区观看| 欧美日韩一区二区欧美激情| 国产欧美综合在线| 婷婷中文字幕一区三区| 成人黄色一级视频| 2021国产精品久久精品| 一区二区三区产品免费精品久久75| 另类的小说在线视频另类成人小视频在线|