// // 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 CPhone, a cross platform voip gui. // // The Initial Developer of the Original Code is Derek Smithies. // // Copyright (C) 2002 Indranet Technologies Ltd, // http://www.indranet-technologies.com // All Rights Reserved. // // Contributor(s): _______________ /* * * $Log: main.h,v $ * Revision 1.4 2003/08/26 04:48:02 dereksmithies * Fixes to get statistics working right, add icons, add ok,cancel,apply buttons * * Revision 1.3 2003/04/04 04:37:49 dereksmithies * Major upgrade. * Ixj & microtelco support added. Fix threading issues. * * Revision 1.2 2002/11/27 23:52:48 dereksmithies * Changes to make compatible with current openh323 library code. * * Revision 1.1.1.1 2002/05/12 22:55:01 dereksmithies * Initial release. * * * */ #ifndef _CPhone_MAIN_H #define _CPhone_MAIN_H #include #include "cpendpoint.h" #include class MainUi; enum WindowName { eAudioProperties, eVideoProperties, eAddressBook, eSettings, eCallAnswer, eMainUi, eStatistics, eNumWindows }; class CpConnection : public H323Connection { PCLASSINFO(CpConnection, H323Connection); public: CpConnection(unsigned, unsigned); // overrides from H323Connection BOOL OnSendSignalSetup(H323SignalPDU & setupPDU); AnswerCallResponse OnAnswerCall(const PString &, const H323SignalPDU &, H323SignalPDU &); BOOL OnStartLogicalChannel(H323Channel &); BOOL OnAlerting(const H323SignalPDU &, const PString &); void OnUserInputString(const PString &); }; ////////////////////////////////////////// class LocalVideoDisplayThread : public PThread { PCLASSINFO(LocalVideoDisplayThread, PThread); public: LocalVideoDisplayThread(CpVideoChannel *vChannel); void InitiateTermination(); void Main(); protected: CpVideoChannel *localVideoChannel; PSyncPoint exitFlag; }; ////////////////////////////////////////////////////// ////////////////////////////////////////////////////// class CPhone : public PProcess { PCLASSINFO(CPhone, PProcess) public: CPhone(); ~CPhone(); void Main(); static CPhone & Current() { return (CPhone &)PProcess::Current(); } static MainUi & GetUi() { return *((CPhone &)PProcess::Current()).MainUI(); } void SetUi(MainUi *newUi); QWidget *GetWindow(enum WindowName winName); void SetWindowId(enum WindowName winName, WId newId); BOOL ForgetExists(enum WindowName winName, WId currentId); void ForgetCallAnswer(); protected: MainUi *MainUI() { return mainUi; } MainUi * mainUi; PMutex accessMutex; WId windowIds[eNumWindows]; BOOL isActive[eNumWindows]; }; #endif // _CPhone_MAIN_H // End of File ///////////////////////////////////////////////////////////////