Added Qt4 client, Windows project changes.

git-svn-id: http://yate.null.ro/svn/yate/trunk@1582 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2008-01-07 08:11:29 +00:00
parent c6b993a961
commit eed2b1f5df
10 changed files with 2271 additions and 34 deletions

37
clients/main-qt4.cpp Normal file
View File

@ -0,0 +1,37 @@
/**
* main-qt4.cpp
* This file is part of the YATE Project http://YATE.null.ro
*
* A Qt-4 based universal telephony client
*
* Yet Another Telephony Engine - a fully featured software PBX and IVR
* Copyright (C) 2004-2006 Null Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include <yatephone.h>
#include "qt4/qt4client.h"
using namespace TelEngine;
static QtDriver qtdriver;
extern "C" int main(int argc, const char** argv, const char** envp)
{
TelEngine::Engine::extraPath("qt4");
return TelEngine::Engine::main(argc,argv,envp,TelEngine::Engine::Client);
}
/* vi: set ts=8 sw=4 sts=4 noet: */

1409
clients/qt4/qt4client.cpp Normal file

File diff suppressed because it is too large Load Diff

161
clients/qt4/qt4client.h Normal file
View File

@ -0,0 +1,161 @@
/**
* qt4client.h
* This file is part of the YATE Project http://YATE.null.ro
*
* A Qt-4 based universal telephony client
*
* Yet Another Telephony Engine - a fully featured software PBX and IVR
* Copyright (C) 2004-2006 Null Team
*
* This program is free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301, USA.
*/
#include <yatecbase.h>
#ifdef _WINDOWS
#ifdef LIBYQT4_EXPORTS
#define YQT4_API __declspec(dllexport)
#else
#ifndef LIBYQT4_STATIC
#define YQT4_API __declspec(dllimport)
#endif
#endif
#endif /* _WINDOWS */
#ifndef YQT4_API
#define YQT4_API
#endif
#undef open
#undef read
#undef close
#undef write
#undef mkdir
#include <string.h>
#include <stdlib.h>
#include <stdio.h>
#include <QtGui>
#include <QSound>
namespace TelEngine {
class QtWindow;
class YQT4_API QtClient : public Client
{
friend class QtWindow;
public:
QtClient();
virtual ~QtClient();
virtual void run();
virtual void main();
virtual void lock();
virtual void unlock();
virtual void allHidden();
virtual bool createWindow(const String& name);
virtual bool action(Window* wnd, const String& name);
protected:
virtual void loadWindows();
private:
QApplication* m_app;
};
class YQT4_API QtDriver : public ClientDriver
{
public:
QtDriver();
virtual ~QtDriver();
virtual void initialize();
};
class YQT4_API QtWindow : public QWidget, public Window
{
YCLASS(QtWindow, Window)
Q_CLASSINFO("QtWindow", "Yate")
Q_OBJECT
friend class QtClient;
public:
QtWindow();
QtWindow(const char* name, const char* description);
virtual ~QtWindow();
virtual void title(const String& text);
virtual void context(const String& text);
virtual bool setParams(const NamedList& params);
virtual void setOver(const Window* parent);
virtual bool hasElement(const String& name);
virtual bool setActive(const String& name, bool active);
virtual bool setFocus(const String& name, bool select = false);
virtual bool setShow(const String& name, bool visible);
virtual bool setText(const String& name, const String& text);
virtual bool setCheck(const String& name, bool checked);
virtual bool setSelect(const String& name, const String& item);
virtual bool setUrgent(const String& name, bool urgent);
virtual bool hasOption(const String& name, const String& item);
virtual bool addOption(const String& name, const String& item, bool atStart = false, const String& text = String::empty());
virtual bool delOption(const String& name, const String& item);
virtual bool addTableRow(const String& name, const String& item, const NamedList* data = 0, bool atStart = false);
virtual bool delTableRow(const String& name, const String& item);
virtual bool setTableRow(const String& name, const String& item, const NamedList* data);
virtual bool getTableRow(const String& name, const String& item, NamedList* data = 0);
virtual bool clearTable(const String& name);
virtual bool getText(const String& name, String& text);
virtual bool getCheck(const String& name, bool& checked);
virtual bool getSelect(const String& name, String& item);
virtual void populate();
virtual void init();
virtual void show();
virtual void hide();
virtual void size(int width, int height);
virtual void move(int x, int y);
virtual void moveRel(int dx, int dy);
virtual bool related(const Window* wnd) const;
virtual void menu(int x, int y) ;
virtual void closeEvent(QCloseEvent* event);
bool select(const String& name, const String& item, const String& text = String::empty());
void keyPressEvent(QKeyEvent* e);
public slots:
void setVisible(bool visible);
void enableDebugOptions(bool enable);
void chooseFile();
void enableFileChoosing(bool enable);
void select(int value);
void selectionToCallto();
private slots:
void disableCombo();
void focus();
void idleActions();
void action();
void openUrl(const QString& link);
protected:
String m_description;
bool m_keysVisible;
QStringList channelsList;
int m_x, m_y, m_width, m_height;
bool m_visible;
QSound* m_ringtone;
};
}; // namespace TelEngine
/* vi: set ts=8 sw=4 sts=4 noet: */

11
clients/run-qt4 Executable file
View File

@ -0,0 +1,11 @@
#!/bin/sh
# Script to run the Qt4 client from the build directory
if [ -x yate-qt4 -a -x ../run ]; then
# Need to put the path to extra Qt/KDE libraries here
# export LD_LIBRARY_PATH=
cd ..; exec ./run --executable clients/yate-qt4 "$@"
else
echo "Could not find client executable or run script" >&2
fi

View File

@ -48,7 +48,7 @@
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".,..,../libs/gtk2"
AdditionalIncludeDirectories=".,..,../clients/gtk2"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBYGTK2_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
@ -145,7 +145,7 @@
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories=".,..,../libs/gtk2"
AdditionalIncludeDirectories=".,..,../clients/gtk2"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBYGTK2_EXPORTS"
StringPooling="true"
RuntimeLibrary="2"

276
windows/LibQt4.vcproj Normal file
View File

@ -0,0 +1,276 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="LibQt4"
ProjectGUID="{E98D46ED-71CD-7146-5CD8-16C08BC0A45C}"
RootNamespace="LibQt4"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/LibQt4.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".,..,../clients/qt4"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS;_USRDLL;LIBYQT4_EXPORTS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
PrecompiledHeaderFile=".\Debug/LibQt4.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="4"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="gtk-win32-2.0.lib gdk-win32-2.0.lib gobject-2.0.lib glib-2.0.lib"
OutputFile="Debug/Libyqt4.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/Libyqt4.pdb"
ImportLibrary=".\Debug/Libyqt4.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Debug/LibQt4.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release"
ConfigurationType="2"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release/LibQt4.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories=".,..,../clients/qt4"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS;_USRDLL;LIBYQT4_EXPORTS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\Release/LibQt4.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="gtk-win32-2.0.lib gdk-win32-2.0.lib gobject-2.0.lib glib-2.0.lib"
OutputFile="Release/Libyqt4.dll"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/Libyqt4.pdb"
ImportLibrary=".\Release/Libyqt4.lib"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release/LibQt4.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="..\clients\qt4\qt4client.cpp"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
<File
RelativePath="..\clients\qt4\qt4client.h"
>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
<File
RelativePath="version.rc"
>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

274
windows/Qt4Client.vcproj Normal file
View File

@ -0,0 +1,274 @@
<?xml version="1.0" encoding="Windows-1252"?>
<VisualStudioProject
ProjectType="Visual C++"
Version="8.00"
Name="Qt4Client"
ProjectGUID="{E91387A2-D00D-6BF1-A230-44C8070A985F}"
RootNamespace="Qt4Client"
>
<Platforms>
<Platform
Name="Win32"
/>
</Platforms>
<ToolFiles>
</ToolFiles>
<Configurations>
<Configuration
Name="Release|Win32"
OutputDirectory=".\Release"
IntermediateDirectory=".\Release\engine"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="NDEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Release/Qt4Client.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="2"
InlineFunctionExpansion="1"
AdditionalIncludeDirectories=".,..,../clients/qt4"
PreprocessorDefinitions="WIN32;NDEBUG;_WINDOWS"
StringPooling="true"
RuntimeLibrary="2"
EnableFunctionLevelLinking="true"
PrecompiledHeaderFile=".\Release/Qt4Client.pch"
AssemblerListingLocation=".\Release/"
ObjectFile=".\Release/"
ProgramDataBaseFileName=".\Release/"
WarningLevel="3"
SuppressStartupBanner="true"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="NDEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="gtk-win32-2.0.lib gdk-win32-2.0.lib glib-2.0.lib gthread-2.0.lib"
OutputFile="Release/yate-qt4.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
ProgramDatabaseFile=".\Release/yate-qt4.pdb"
SubSystem="2"
EntryPointSymbol="mainCRTStartup"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Release/Qt4Client.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
<Configuration
Name="Debug|Win32"
OutputDirectory=".\Debug"
IntermediateDirectory=".\Debug\engine"
ConfigurationType="1"
InheritedPropertySheets="$(VCInstallDir)VCProjectDefaults\UpgradeFromVC60.vsprops"
UseOfMFC="0"
ATLMinimizesCRunTimeLibraryUsage="false"
CharacterSet="2"
>
<Tool
Name="VCPreBuildEventTool"
/>
<Tool
Name="VCCustomBuildTool"
/>
<Tool
Name="VCXMLDataGeneratorTool"
/>
<Tool
Name="VCWebServiceProxyGeneratorTool"
/>
<Tool
Name="VCMIDLTool"
PreprocessorDefinitions="_DEBUG"
MkTypLibCompatible="true"
SuppressStartupBanner="true"
TargetEnvironment="1"
TypeLibraryName=".\Debug/Qt4Client.tlb"
HeaderFileName=""
/>
<Tool
Name="VCCLCompilerTool"
Optimization="0"
AdditionalIncludeDirectories=".,..,../clients/qt4"
PreprocessorDefinitions="WIN32;_DEBUG;_WINDOWS"
MinimalRebuild="true"
BasicRuntimeChecks="3"
RuntimeLibrary="3"
PrecompiledHeaderFile=".\Debug/Qt4Client.pch"
AssemblerListingLocation=".\Debug/"
ObjectFile=".\Debug/"
ProgramDataBaseFileName=".\Debug/"
WarningLevel="3"
SuppressStartupBanner="true"
DebugInformationFormat="3"
/>
<Tool
Name="VCManagedResourceCompilerTool"
/>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions="_DEBUG"
Culture="1033"
/>
<Tool
Name="VCPreLinkEventTool"
/>
<Tool
Name="VCLinkerTool"
AdditionalDependencies="gtk-win32-2.0.lib gdk-win32-2.0.lib glib-2.0.lib gthread-2.0.lib"
OutputFile="Debug/yate-qt4.exe"
LinkIncremental="1"
SuppressStartupBanner="true"
GenerateDebugInformation="true"
ProgramDatabaseFile=".\Debug/yate-qt4.pdb"
SubSystem="2"
EntryPointSymbol="mainCRTStartup"
TargetMachine="1"
/>
<Tool
Name="VCALinkTool"
/>
<Tool
Name="VCManifestTool"
/>
<Tool
Name="VCXDCMakeTool"
/>
<Tool
Name="VCBscMakeTool"
SuppressStartupBanner="true"
OutputFile=".\Debug/Qt4Client.bsc"
/>
<Tool
Name="VCFxCopTool"
/>
<Tool
Name="VCAppVerifierTool"
/>
<Tool
Name="VCWebDeploymentTool"
/>
<Tool
Name="VCPostBuildEventTool"
/>
</Configuration>
</Configurations>
<References>
</References>
<Files>
<Filter
Name="Source Files"
Filter="cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
>
<File
RelativePath="..\clients\main-qt4.cpp"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCCLCompilerTool"
AdditionalIncludeDirectories=""
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Resource Files"
Filter="ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
>
<File
RelativePath="ver+icon.rc"
>
<FileConfiguration
Name="Release|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
<FileConfiguration
Name="Debug|Win32"
>
<Tool
Name="VCResourceCompilerTool"
PreprocessorDefinitions=""
/>
</FileConfiguration>
</File>
</Filter>
<Filter
Name="Header Files"
Filter="h;hpp;hxx;hm;inl"
>
</Filter>
</Files>
<Globals>
</Globals>
</VisualStudioProject>

View File

@ -13,13 +13,14 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Console", "Console.vcproj",
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Extra", "Extra.vcproj", "{B1E0D82A-DB84-4D66-A30D-D028D96D8315}"
ProjectSection(ProjectDependencies) = postProject
{2358F303-8EF4-404A-80C8-6E1826B2D423} = {2358F303-8EF4-404A-80C8-6E1826B2D423}
{E91387A2-D00D-6BF1-A230-44C8070A985F} = {E91387A2-D00D-6BF1-A230-44C8070A985F}
{889C65FD-CBA9-4E88-B380-DE2640A140A7} = {889C65FD-CBA9-4E88-B380-DE2640A140A7}
{A9670DE2-5B1D-403C-9225-75135605C790} = {A9670DE2-5B1D-403C-9225-75135605C790}
{E91BA1B2-C7C3-4DF1-9560-44C8077CFD5F} = {E91BA1B2-C7C3-4DF1-9560-44C8077CFD5F}
{8CF9A752-8606-4819-99D8-CE3C4E744F85} = {8CF9A752-8606-4819-99D8-CE3C4E744F85}
{3EA5873D-E3FA-4CA4-B8BB-8FE4183652A1} = {3EA5873D-E3FA-4CA4-B8BB-8FE4183652A1}
{DC897705-0065-4FA0-B1C2-5A3E75240A95} = {DC897705-0065-4FA0-B1C2-5A3E75240A95}
{2358F303-8EF4-404A-80C8-6E1826B2D423} = {2358F303-8EF4-404A-80C8-6E1826B2D423}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Gtk2Client", "Gtk2Client.vcproj", "{E91BA1B2-C7C3-4DF1-9560-44C8077CFD5F}"
@ -40,8 +41,6 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Libyate", "Libyate.vcproj",
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Modules", "Modules.vcproj", "{BE362993-354F-4315-B878-05E952E1D164}"
ProjectSection(ProjectDependencies) = postProject
{5F248A16-8E3D-497A-8E68-F9E08971F583} = {5F248A16-8E3D-497A-8E68-F9E08971F583}
{1254C781-292C-48F4-9CB6-93338721E89C} = {1254C781-292C-48F4-9CB6-93338721E89C}
{C296BBF2-AD56-4249-AEF6-C04B03131474} = {C296BBF2-AD56-4249-AEF6-C04B03131474}
{88C1CCEC-C1AF-4888-A4A1-C0798EDB3947} = {88C1CCEC-C1AF-4888-A4A1-C0798EDB3947}
{A9CA94EB-27BA-46FA-A585-94D36706C4D7} = {A9CA94EB-27BA-46FA-A585-94D36706C4D7}
@ -63,6 +62,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Modules", "Modules.vcproj",
{11BDB689-6A50-48AC-9D2E-1DF68E53510C} = {11BDB689-6A50-48AC-9D2E-1DF68E53510C}
{06121688-9DC7-4032-B366-9862CDE6D313} = {06121688-9DC7-4032-B366-9862CDE6D313}
{F85C5686-5E6E-490E-99F7-6B8E1776CF71} = {F85C5686-5E6E-490E-99F7-6B8E1776CF71}
{1254C781-292C-48F4-9CB6-93338721E89C} = {1254C781-292C-48F4-9CB6-93338721E89C}
{8B67BE6A-B42B-47CA-8188-99A890786A3A} = {8B67BE6A-B42B-47CA-8188-99A890786A3A}
{130EC95B-8851-4946-B0B5-6091CE3EFB00} = {130EC95B-8851-4946-B0B5-6091CE3EFB00}
{E8EE0F54-0D2B-48FF-B2AF-6E268442A4D1} = {E8EE0F54-0D2B-48FF-B2AF-6E268442A4D1}
@ -77,6 +77,7 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Modules", "Modules.vcproj",
{AA54CD1D-E1E1-4A00-9974-EE6924D85DBD} = {AA54CD1D-E1E1-4A00-9974-EE6924D85DBD}
{34AC2018-91F1-41AF-A839-47DCF27D4434} = {34AC2018-91F1-41AF-A839-47DCF27D4434}
{42B76F17-895F-4B1C-B783-7AAC92AFD56E} = {42B76F17-895F-4B1C-B783-7AAC92AFD56E}
{5F248A16-8E3D-497A-8E68-F9E08971F583} = {5F248A16-8E3D-497A-8E68-F9E08971F583}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Service", "Service.vcproj", "{B1015F66-0C3D-43DA-8329-15FB43D2F74B}"
@ -369,6 +370,17 @@ Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "_mux", "_mux.vcproj", "{125
{254C6F00-6DE5-44A6-AD44-ACABA8912381} = {254C6F00-6DE5-44A6-AD44-ACABA8912381}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "LibQt4", "LibQt4.vcproj", "{E98D46ED-71CD-7146-5CD8-16C08BC0A45C}"
ProjectSection(ProjectDependencies) = postProject
{254C6F00-6DE5-44A6-AD44-ACABA8912381} = {254C6F00-6DE5-44A6-AD44-ACABA8912381}
EndProjectSection
EndProject
Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "Qt4Client", "Qt4Client.vcproj", "{E91387A2-D00D-6BF1-A230-44C8070A985F}"
ProjectSection(ProjectDependencies) = postProject
{254C6F00-6DE5-44A6-AD44-ACABA8912381} = {254C6F00-6DE5-44A6-AD44-ACABA8912381}
{E98D46ED-71CD-7146-5CD8-16C08BC0A45C} = {E98D46ED-71CD-7146-5CD8-16C08BC0A45C}
EndProjectSection
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Win32 = Debug|Win32
@ -627,6 +639,14 @@ Global
{1254C781-292C-48F4-9CB6-93338721E89C}.Debug|Win32.Build.0 = Debug|Win32
{1254C781-292C-48F4-9CB6-93338721E89C}.Release|Win32.ActiveCfg = Release|Win32
{1254C781-292C-48F4-9CB6-93338721E89C}.Release|Win32.Build.0 = Release|Win32
{E98D46ED-71CD-7146-5CD8-16C08BC0A45C}.Debug|Win32.ActiveCfg = Debug|Win32
{E98D46ED-71CD-7146-5CD8-16C08BC0A45C}.Debug|Win32.Build.0 = Debug|Win32
{E98D46ED-71CD-7146-5CD8-16C08BC0A45C}.Release|Win32.ActiveCfg = Release|Win32
{E98D46ED-71CD-7146-5CD8-16C08BC0A45C}.Release|Win32.Build.0 = Release|Win32
{E91387A2-D00D-6BF1-A230-44C8070A985F}.Debug|Win32.ActiveCfg = Debug|Win32
{E91387A2-D00D-6BF1-A230-44C8070A985F}.Debug|Win32.Build.0 = Debug|Win32
{E91387A2-D00D-6BF1-A230-44C8070A985F}.Release|Win32.ActiveCfg = Release|Win32
{E91387A2-D00D-6BF1-A230-44C8070A985F}.Release|Win32.Build.0 = Release|Win32
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.1 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

View File

@ -26,9 +26,11 @@ Name: "engine"; Description: "Engine only (unlikely)"
[Components]
Name: "engine"; Description: "Engine library"; Types: full client server engine custom; Flags: fixed
Name: "client"; Description: "Client files"; Types: full client
Name: "client\run"; Description: "Client runtime libraries"; Types: full client
Name: "client\skin"; Description: "Client skins"; Types: full client
Name: "client\skin\tabbed"; Description: "Tabbed skin"; Types: full client
Name: "client\skin\skinned"; Description: "Graphical skin"; Types: full
Name: "server"; Description: "Server files"; Types: full server
Name: "server\cluster"; Description: "Server clustering modules"; Types: full
Name: "driver"; Description: "Protocol drivers"; Types: full client server
Name: "driver\base"; Description: "Files, tones, mixers"; Types: full client server custom
Name: "driver\sip"; Description: "SIP Protocol driver"; Types: full client server
@ -36,7 +38,7 @@ Name: "driver\h323"; Description: "H.323 Protocol driver"; Types: full client se
Name: "driver\h323\run"; Description: "OpenH323 library"; Types: full client server
Name: "driver\iax"; Description: "IAX Protocol driver"; Types: full client server
Name: "driver\jingle"; Description: "Jingle Protocol driver"; Types: full server
Name: "driver\wp"; Description: "Wanpipe card driver"; Types: full server
;Name: "driver\wp"; Description: "Wanpipe card driver"; Types: full server
Name: "database"; Description: "Database drivers"; Types: full server
Name: "database\my"; Description: "MySQL database driver"; Types: full server
Name: "database\my\run"; Description: "MySQL client libraries"; Types: full server
@ -59,41 +61,49 @@ Name: "desktop"; Description: "Create a &Desktop icon"; GroupDescription: "Addit
Source: "Release\libyate.dll"; DestDir: "{app}"; Components: engine
Source: "Release\libygtk2.dll"; DestDir: "{app}"; Components: client
Source: "Release\yate-gtk2.exe"; DestDir: "{app}"; Components: client
;Source: "..\share\sounds\ring.wav"; DestDir: "{app}\sounds"; Components: client
;Source: "Runtimes\qtcore4.dll"; DestDir: "{app}"; Components: client\run
;Source: "Runtimes\qtgui4.dll"; DestDir: "{app}"; Components: client\run
;Source: "Runtimes\qtxml4.dll"; DestDir: "{app}"; Components: client\run
Source: "Release\yate-service.exe"; DestDir: "{app}"; Components: server
Source: "Release\yate-console.exe"; DestDir: "{app}"; Components: debug
Source: "Release\accfile.yate"; DestDir: "{app}\modules"; Components: client server
Source: "Release\server\accfile.yate"; DestDir: "{app}\modules\server"; Components: client server
Source: "Release\analyzer.yate"; DestDir: "{app}\modules"; Components: server debug
Source: "Release\callfork.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\callgen.yate"; DestDir: "{app}\modules"; Components: debug
Source: "Release\cdrbuild.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\cdrfile.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\conference.yate"; DestDir: "{app}\modules"; Components: driver\base
Source: "Release\dsoundchan.yate"; DestDir: "{app}\modules"; Components: client
Source: "Release\client\dsoundchan.yate"; DestDir: "{app}\modules\client"; Components: client
Source: "Release\dumbchan.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\extmodule.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\msgsniff.yate"; DestDir: "{app}\modules"; Components: debug
Source: "Release\regexroute.yate"; DestDir: "{app}\modules"; Components: client server debug
Source: "Release\regfile.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\server\regfile.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\rmanager.yate"; DestDir: "{app}\modules"; Components: server debug
Source: "Release\tonegen.yate"; DestDir: "{app}\modules"; Components: driver\base
Source: "Release\tonedetect.yate"; DestDir: "{app}\modules"; Components: driver\base
Source: "Release\wavefile.yate"; DestDir: "{app}\modules"; Components: driver\base
Source: "Release\yradius.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\register.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\dbpbx.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\server\yradius.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\server\register.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\server\dbpbx.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\pbx.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\pbxassist.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\park.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\queues.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\sipfeatures.yate"; DestDir: "{app}\modules"; Components: server
Source: "Release\server\pbxassist.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\server\park.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\server\queues.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\server\sipfeatures.yate"; DestDir: "{app}\modules\server"; Components: server
Source: "Release\wpchan.yate"; DestDir: "{app}\modules"; Components: driver\wp
Source: "Release\server\heartbeat.yate"; DestDir: "{app}\modules\server"; Components: server\cluster
Source: "Release\server\mgcpca.yate"; DestDir: "{app}\modules\server"; Components: server\cluster
Source: "Release\server\mgcpgw.yate"; DestDir: "{app}\modules\server"; Components: server\cluster
;Source: "Release\wpchan.yate"; DestDir: "{app}\modules"; Components: driver\wp
Source: "Release\yrtpchan.yate"; DestDir: "{app}\modules"; Components: driver\sip driver\h323 driver\jingle
Source: "Release\ysipchan.yate"; DestDir: "{app}\modules"; Components: driver\sip
Source: "Release\h323chan.yate"; DestDir: "{app}\modules"; Components: driver\h323
Source: "Runtimes\ptlib.dll"; DestDir: "{app}"; Components: driver\h323\run
Source: "Runtimes\openh323.dll"; DestDir: "{app}"; Components: driver\h323\run
;Source: "Release\h323chan.yate"; DestDir: "{app}\modules"; Components: driver\h323
;Source: "Runtimes\ptlib.dll"; DestDir: "{app}"; Components: driver\h323\run
;Source: "Runtimes\openh323.dll"; DestDir: "{app}"; Components: driver\h323\run
Source: "Release\yiaxchan.yate"; DestDir: "{app}\modules"; Components: driver\iax
Source: "Release\yjinglechan.yate"; DestDir: "{app}\modules"; Components: driver\jingle
Source: "Release\ystunchan.yate"; DestDir: "{app}\modules"; Components: driver\jingle
@ -101,9 +111,9 @@ Source: "Release\ystunchan.yate"; DestDir: "{app}\modules"; Components: driver\j
Source: "Release\gsmcodec.yate"; DestDir: "{app}\modules"; Components: codecs\gsm
Source: "Release\ilbccodec.yate"; DestDir: "{app}\modules"; Components: codecs\ilbc
Source: "Release\mysqldb.yate"; DestDir: "{app}\modules"; Components: database\my
Source: "Release\server\mysqldb.yate"; DestDir: "{app}\modules\server"; Components: database\my
Source: "Runtimes\libmysql.dll"; DestDir: "{app}"; Components: database\my\run
Source: "Release\pgsqldb.yate"; DestDir: "{app}\modules"; Components: database\pg
Source: "Release\server\pgsqldb.yate"; DestDir: "{app}\modules\server"; Components: database\pg
Source: "Runtimes\libpq.dll"; DestDir: "{app}"; Components: database\pg\run
Source: "Runtimes\comerr32.dll"; DestDir: "{app}"; Components: database\pg\run
Source: "Runtimes\libeay32.dll"; DestDir: "{app}"; Components: database\pg\run
@ -113,25 +123,29 @@ Source: "Runtimes\libintl-2.dll"; DestDir: "{app}"; Components: database\pg\run
Source: "Runtimes\libiconv-2.dll"; DestDir: "{app}"; Components: database\pg\run
Source: "..\COPYING"; DestName: "COPYING.txt"; DestDir: "{app}"
Source: "..\yate.url"; DestDir: "{app}"
Source: "..\packing\yate.url"; DestDir: "{app}"
Source: "null_team.ico"; DestDir: "{app}"
Source: "..\conf.d\*.conf.sample"; DestDir: "{app}\conf.d"
Source: "..\modules\help\*.yhlp"; DestDir: "{app}\modules\help"; Components: client
Source: "..\share\help\*.yhlp"; DestDir: "{app}\help"; Components: client
Source: "..\conf.d\providers.conf.default"; DestName: "providers.conf"; DestDir: "{app}\conf.d"; Components: client
Source: "..\modules\skin\default\gtk2client.??"; DestDir: "{app}\modules\skin\default"; Components: client
Source: "..\modules\skin\default\*.png"; DestDir: "{app}\modules\skin\default"; Components: client
Source: "..\share\skins\default\gtk2client.??"; DestDir: "{app}\skins\default"; Components: client
Source: "..\share\skins\default\*.png"; DestDir: "{app}\skins\default"; Components: client
Source: "..\modules\skin\tabbed\gtk2client.??"; DestDir: "{app}\modules\skin\tabbed"; Components: client\skin\tabbed
Source: "..\modules\skin\tabbed\*.png"; DestDir: "{app}\modules\skin\tabbed"; Components: client\skin\tabbed
Source: "..\conf.d\yate-gtk2.conf.default"; DestName: "yate-gtk2.conf"; DestDir: "{app}\conf.d"; Components: client\skin\tabbed; Flags: skipifsourcedoesntexist
Source: "..\share\skins\skinned\gtk2client.??"; DestDir: "{app}\skins\skinned"; Components: client\skin\skinned
Source: "..\share\skins\skinned\*.png"; DestDir: "{app}\skins\skinned"; Components: client\skin\skinned
Source: "..\conf.d\yate-gtk2.conf.default"; DestName: "yate-gtk2.conf"; DestDir: "{app}\conf.d"; Components: client\skin\skinned; Flags: skipifsourcedoesntexist
Source: "..\scripts\*.php"; DestDir: "{app}\scripts"; Components: external\php
Source: "..\share\scripts\*.php"; DestDir: "{app}\scripts"; Components: external\php
Source: "Release\libyate.lib"; DestDir: "{app}\devel"; Components: devel
Source: "..\yate*.h"; DestDir: "{app}\devel"; Components: devel
Source: "yateversn.h"; DestDir: "{app}\devel"; Components: devel
Source: "version.rc"; DestDir: "{app}\devel"; Components: devel
Source: "..\clients\gtk2\gtk2client.h"; DestDir: "{app}\devel"; Components: devel
Source: "Release\libygtk2.lib"; DestDir: "{app}\devel"; Components: devel
Source: "..\clients\qt4\qt4client.h"; DestDir: "{app}\devel"; Components: devel
;Source: "Release\libyqt4.lib"; DestDir: "{app}\devel"; Components: devel
Source: "..\README"; DestName: "README.txt"; DestDir: "{app}\devel"; Components: devel
Source: "..\ChangeLog"; DestName: "ChangeLog.txt"; DestDir: "{app}\devel"; Components: devel
Source: "..\docs\*.html"; DestDir: "{app}\devel\docs"; Components: devel\doc
@ -143,6 +157,7 @@ Source: "Runtimes\gtk+-2.6.9-setup.exe"; DestDir: "{app}"; Components: client; F
[Icons]
Name: "{group}\Yate Client"; Filename: "{app}\yate-gtk2.exe"; Parameters: "-n yate-gtk2 -w ""{app}"""; Components: client
;Name: "{group}\Yate Client"; Filename: "{app}\yate-qt4.exe"; Parameters: "-n yate-qt4 -w ""{app}"""; Components: client
Name: "{group}\Yate Console"; Filename: "{app}\yate-console.exe"; Parameters: "-n yate-console -w ""{app}"""; Components: debug
Name: "{group}\Register Service"; Filename: "{app}\yate-service.exe"; Parameters: "--install -w ""{app}"""; Components: server
Name: "{group}\Unregister Service"; Filename: "{app}\yate-service.exe"; Parameters: "--remove"; Components: server
@ -151,11 +166,14 @@ Name: "{group}\Yate Web Site"; Filename: "{app}\yate.url"
Name: "{group}\Developer docs"; Filename: "{app}\devel\docs\index.html"; Components: devel\doc
Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Yate Client"; Filename: "{app}\yate-gtk2.exe"; Parameters: "-n yate-gtk2 -w ""{app}"""; Components: client; Tasks: qlaunch
Name: "{userdesktop}\Yate Client"; Filename: "{app}\yate-gtk2.exe"; Parameters: "-n yate-gtk2 -w ""{app}"""; Components: client; Tasks: desktop
;Name: "{userappdata}\Microsoft\Internet Explorer\Quick Launch\Yate Client"; Filename: "{app}\yate-qt4.exe"; Parameters: "-n yate-qt4 -w ""{app}"""; Components: client; Tasks: qlaunch
;Name: "{userdesktop}\Yate Client"; Filename: "{app}\yate-qt4.exe"; Parameters: "-n yate-qt4 -w ""{app}"""; Components: client; Tasks: desktop
[Run]
Filename: "{app}\yate-service.exe"; Description: "Register service"; Parameters: "--install -w ""{app}"""; Components: server
Filename: "net.exe"; Description: "Start service"; Components: server; Parameters: "start yate"; Flags: postinstall skipifsilent unchecked
Filename: "{app}\yate-gtk2.exe"; Description: "Launch client"; Components: client; Flags: postinstall nowait skipifsilent unchecked
Filename: "{app}\yate-gtk2.exe"; Parameters: "-n yate-gtk2 -w ""{app}"""; Description: "Launch client"; Components: client; Flags: postinstall nowait skipifsilent unchecked
;Filename: "{app}\yate-qt4.exe"; Parameters: "-n yate-qt4 -w ""{app}"""; Description: "Launch client"; Components: client; Flags: postinstall nowait skipifsilent unchecked
[UninstallRun]
Filename: "net.exe"; Parameters: "stop yate"; Components: server
@ -163,14 +181,24 @@ Filename: "{app}\yate-service.exe"; Parameters: "--remove"; Components: server
[Code]
var
CrtLoadable : Boolean;
GtkRegistry : Boolean;
GtkLoadable : Boolean;
function CrtClock() : Longint;
external 'clock@MSVCR80.DLL stdcall delayload setuponly';
function GtkTrue() : Integer;
external 'gtk_true@LIBGTK-WIN32-2.0-0.DLL stdcall delayload setuponly';
function InitializeSetup() : Boolean;
begin
try
CrtLoadable := CrtClock() <> 0;
UnloadDLL('MSVCR80.DLL');
except
CrtLoadable := False;
end;
GtkRegistry := RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\GTK\2.0', 'DllPath');
try
GtkLoadable := GtkTrue() <> 0;
@ -187,8 +215,29 @@ var
url : String;
err : Integer;
begin
if (CurStep = ssInstall) and IsComponentSelected('client') then begin
if not (GtkRegistry and GtkLoadable) then begin
if (CurStep = ssInstall) then begin
if not CrtLoadable then begin
msg := 'MSVCR80.DLL is not installed or loadable';
msg := msg + #13 #13 'Do you want to install Microsoft Runtime 8.0 now?';
repeat
err := SuppressibleMsgBox(msg, mbConfirmation, MB_YESNOCANCEL, IDNO);
if (err = IDCANCEL) and ExitSetupMsgBox() then Abort;
until err <> IDCANCEL;
if err = IDYES then begin
url := 'msvcr80-setup.exe';
try
ExtractTemporaryFile(url);
url := ExpandConstant('{tmp}\') + url;
if FileExists(url) and ShellExec('open', url, '', '', SW_SHOW, ewWaitUntilTerminated, err) then
exit;
except
end;
url := 'http://yate.null.ro/msvcr80.php';
if not ShellExec('open', url, '', '', SW_SHOW, ewNoWait, err) then
MsgBox('Browser failed. Please go to:' #13 + url,mbError,MB_OK);
end;
end;
if IsComponentSelected('client') and not (GtkRegistry and GtkLoadable) then begin
msg := 'Gtk2 client installation requested' #13 'but Gtk2 is not ';
if GtkRegistry then msg := msg + 'loadable'
else if GtkLoadable then msg := msg + 'in Registry'