Added VC++6 projects and lots of porting changes

git-svn-id: http://yate.null.ro/svn/yate/trunk@272 acf43c95-373e-0410-b603-e72c3f656dc1
This commit is contained in:
paulc 2005-04-02 00:49:38 +00:00
parent e52b2a0b15
commit 60ec9fec0b
47 changed files with 8703 additions and 196 deletions

View File

@ -76,7 +76,11 @@ extern char iax_errstr[];
#define IAX_SCHEDULE_FUZZ 0 /* ms of fuzz to drop */
#ifdef WIN32
#if defined(_MSC_VER)
typedef int (__stdcall *sendto_t)(SOCKET, const char *, int, int, const struct sockaddr *, int);
#else
typedef int PASCAL (*sendto_t)(SOCKET, const char *, int, int, const struct sockaddr *, int);
#endif
#else
typedef int (*sendto_t)(int, const void *, size_t, int, const struct sockaddr *, socklen_t);
#endif

View File

@ -271,7 +271,7 @@ void SIPEngine::processEvent(SIPEvent *event)
delete event;
}
unsigned long long SIPEngine::getTimer(char which, bool reliable) const
u_int64_t SIPEngine::getTimer(char which, bool reliable) const
{
switch (which) {
case '1':

View File

@ -150,7 +150,7 @@ void SIPTransaction::setPendingEvent(SIPEvent* event, bool replace)
m_pending = event;
}
void SIPTransaction::setTimeout(unsigned long long delay, unsigned int count)
void SIPTransaction::setTimeout(u_int64_t delay, unsigned int count)
{
m_timeouts = count;
m_delay = delay;

View File

@ -680,22 +680,22 @@ protected:
* @return True is there is a pending event
*/
inline bool isPendingEvent() const
{ return m_pending; }
{ return (m_pending != 0); }
/**
* Set a repetitive timeout
* @param delay How often (in microseconds) to fire the timeout
* @param count How many times to keep firing the timeout
*/
void setTimeout(unsigned long long delay = 0, unsigned int count = 1);
void setTimeout(u_int64_t delay = 0, unsigned int count = 1);
bool m_outgoing;
bool m_invite;
bool m_transmit;
int m_state;
unsigned int m_timeouts;
unsigned long long m_delay;
unsigned long long m_timeout;
u_int64_t m_delay;
u_int64_t m_timeout;
SIPMessage* m_firstMessage;
SIPMessage* m_lastMessage;
SIPEvent* m_pending;
@ -839,7 +839,7 @@ public:
* @param reliable Whether we request the timer value for a reliable protocol
* @return Duration of the selected timer or 0 if invalid
*/
unsigned long long getTimer(char which, bool reliable = false) const;
u_int64_t getTimer(char which, bool reliable = false) const;
/**
* Get the default value of the Max-Forwards header for this engine
@ -888,8 +888,8 @@ public:
protected:
Mutex m_mutex;
unsigned long long m_t1;
unsigned long long m_t4;
u_int64_t m_t1;
u_int64_t m_t4;
unsigned int m_maxForwards;
int m_cseq;
String m_userAgent;

View File

@ -21,21 +21,42 @@
*/
#include "yatengine.h"
#include "yatepaths.h"
#include "yateversn.h"
#ifdef _WINDOWS
#include <windows.h>
#include <io.h>
#include <process.h>
#define O_RDONLY _O_RDONLY
#define O_WRONLY _O_WRONLY
#define O_APPEND _O_APPEND
#define O_CREAT _O_CREAT
#define open _open
#define dup2 _dup2
#define read _read
#define write _write
#define close _close
#define getpid _getpid
#define RTLD_NOW 0
#define dlopen(name,flags) LoadLibrary(name)
#define dlclose !FreeLibrary
#define dlerror() "LoadLibrary error"
#else
#include "yatepaths.h"
#include <dirent.h>
#include <dlfcn.h>
#include <sys/wait.h>
typedef void* HMODULE;
#endif
#include <unistd.h>
#include <stdlib.h>
#include <signal.h>
#include <string.h>
#include <stdio.h>
#include <errno.h>
#include <dlfcn.h>
#include <time.h>
#include <sys/types.h>
#include <sys/stat.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <assert.h>
@ -69,8 +90,8 @@ using namespace TelEngine;
#define MAX_SANITY 5
static unsigned long long s_nextinit = 0;
static unsigned long long s_restarts = 0;
static u_int64_t s_nextinit = 0;
static u_int64_t s_restarts = 0;
static bool s_makeworker = true;
static bool s_keepclosing = false;
static int s_super_handle = -1;
@ -78,12 +99,14 @@ static int s_super_handle = -1;
static void sighandler(int signal)
{
switch (signal) {
#ifndef _WINDOWS
case SIGHUP:
case SIGQUIT:
if (s_nextinit <= Time::now())
Engine::init();
s_nextinit = Time::now() + 2000000;
break;
#endif
case SIGINT:
case SIGTERM:
Engine::halt(0);
@ -113,12 +136,12 @@ public:
virtual ~SLib();
static SLib* load(const char* file);
private:
SLib(void* handle, const char* file);
SLib(HMODULE handle, const char* file);
const char* m_file;
void* m_handle;
HMODULE m_handle;
};
SLib::SLib(void* handle, const char* file)
SLib::SLib(HMODULE handle, const char* file)
: m_handle(handle)
{
DDebug(DebugAll,"SLib::SLib(%p,'%s') [%p]",handle,file,this);
@ -144,11 +167,15 @@ SLib::~SLib()
SLib* SLib::load(const char* file)
{
DDebug("SLib::load('%s')",file);
void *handle = ::dlopen(file,RTLD_NOW);
DDebug(DebugAll,"SLib::load('%s')",file);
HMODULE handle = ::dlopen(file,RTLD_NOW);
if (handle)
return new SLib(handle,file);
#ifdef _WINDOWS
Debug(DebugWarn,"LoadLibrary error %u in '%s'",::GetLastError(),file);
#else
Debug(DebugWarn,dlerror());
#endif
return 0;
}
@ -196,7 +223,7 @@ void EnginePrivate::run()
Engine::Engine()
{
DDebug("Engine::Engine()"," [%p]",this);
DDebug(DebugAll,"Engine::Engine()"," [%p]",this);
}
Engine::~Engine()
@ -232,9 +259,11 @@ int Engine::run()
Debug(DebugInfo,"Engine dispatching start message");
dispatch("engine.start");
unsigned long corr = 0;
#ifndef _WINDOWS
::signal(SIGHUP,sighandler);
::signal(SIGQUIT,sighandler);
::signal(SIGPIPE,SIG_IGN);
#endif
Output("Yate engine is initialized and starting up");
while (s_haltcode == -1) {
if (s_cmds) {
@ -280,12 +309,12 @@ int Engine::run()
}
// Attempt to sleep until the next full second
unsigned long t = (Time::now() + corr) % 1000000;
::usleep(1000000 - t);
unsigned long t = (unsigned long)((Time::now() + corr) % 1000000);
Thread::usleep(1000000 - t);
Message *m = new Message("engine.timer");
m->addParam("time",String((int)m->msgTime().sec()));
// Try to fine tune the ticker
t = m->msgTime().usec() % 1000000;
t = (unsigned long)(m->msgTime().usec() % 1000000);
if (t > 500000)
corr -= (1000000-t)/10;
else
@ -301,8 +330,10 @@ int Engine::run()
m_dispatcher.dequeue();
::signal(SIGINT,SIG_DFL);
::signal(SIGTERM,SIG_DFL);
#ifndef _WINDOWS
::signal(SIGHUP,SIG_DFL);
::signal(SIGQUIT,SIG_DFL);
#endif
delete this;
Debug(DebugInfo,"Exiting with %d locked mutexes",Mutex::locks());
return s_haltcode;
@ -315,6 +346,11 @@ Engine* Engine::self()
return s_self;
}
String Engine::configFile(const char* name)
{
return s_cfgpath+"/"+name+s_cfgsuffix;
}
bool Engine::Register(const Plugin* plugin, bool reg)
{
DDebug(DebugInfo,"Engine::Register(%p,%d)",plugin,reg);
@ -363,14 +399,31 @@ void Engine::loadPlugins()
loadPlugin(n->name());
}
}
#ifdef _WINDOWS
WIN32_FIND_DATA entry;
HANDLE hf = ::FindFirstFile(s_modpath+"\\*",&entry);
if (hf == INVALID_HANDLE_VALUE) {
Debug(DebugFail,"Engine::loadPlugins() failed directory '%s'",s_modpath.safe());
return;
}
do {
XDebug(DebugInfo,"Found dir entry %s",entry.cFileName);
int n = ::strlen(entry.cFileName) - s_modsuffix.length();
if ((n > 0) && !::strcmp(entry.cFileName+n,s_modsuffix)) {
if (cfg.getBoolValue("modules",entry.cFileName,defload))
loadPlugin(s_modpath+"\\"+entry.cFileName);
}
} while (::FindNextFile(hf,&entry));
::FindClose(hf);
#else
DIR *dir = ::opendir(s_modpath);
if (!dir) {
Debug(DebugFail,"Engine::loadPlugins() failed opendir()");
Debug(DebugFail,"Engine::loadPlugins() failed directory '%s'",s_modpath.safe());
return;
}
struct dirent *entry;
while ((entry = ::readdir(dir)) != 0) {
DDebug(DebugInfo,"Found dir entry %s",entry->d_name);
XDebug(DebugInfo,"Found dir entry %s",entry->d_name);
int n = ::strlen(entry->d_name) - s_modsuffix.length();
if ((n > 0) && !::strcmp(entry->d_name+n,s_modsuffix)) {
if (cfg.getBoolValue("modules",entry->d_name,defload))
@ -378,6 +431,7 @@ void Engine::loadPlugins()
}
}
::closedir(dir);
#endif
l = cfg.getSection("postload");
if (l) {
unsigned int len = l->length();
@ -461,10 +515,12 @@ bool Engine::dispatch(const char* name)
}
static pid_t s_childpid = -1;
static bool s_runagain = true;
static bool s_sigabrt = false;
#ifndef _WINDOWS
static bool s_runagain = true;
static pid_t s_childpid = -1;
static void superhandler(int signal)
{
switch (signal) {
@ -566,6 +622,7 @@ static int supervise(void)
::fprintf(stderr,"Supervisor (%d) exiting with code %d\n",::getpid(),retcode);
return retcode;
}
#endif /* _WINDOWS */
static void usage(FILE* f)
{
@ -574,10 +631,12 @@ static void usage(FILE* f)
" -h Help message (this one)\n"
" -v Verbose debugging (you can use more than once)\n"
" -q Quieter debugging (you can use more than once)\n"
#ifndef _WINDOWS
" -d Daemonify, suppress output unless logged\n"
" -s Supervised, restart if crashes or locks up\n"
" -l filename Log to file\n"
#endif
" -p filename Write PID to file\n"
" -l filename Log to file\n"
" -n configname Use specified configuration name (%s)\n"
" -c pathname Path to conf files directory (" CFG_PATH ")\n"
" -m pathname Path to modules directory (" MOD_PATH ")\n"
@ -609,11 +668,13 @@ static void noarg(const char* opt)
int Engine::main(int argc, const char** argv, const char** environ)
{
#ifndef _WINDOWS
bool daemonic = false;
bool supervised = false;
int debug_level = debugLevel();
const char *logfile = 0;
#endif
const char *pidfile = 0;
const char *logfile = 0;
int debug_level = debugLevel();
s_cfgfile = ::strrchr(argv[0],'/');
if (s_cfgfile)
@ -650,12 +711,22 @@ int Engine::main(int argc, const char** argv, const char** environ)
case 'q':
debug_level--;
break;
#ifndef _WINDOWS
case 'd':
daemonic = true;
break;
case 's':
supervised = true;
break;
#endif
case 'p':
if (i+1 >= argc) {
noarg(argv[i]);
return ENOENT;
}
pc = 0;
pidfile=argv[++i];
break;
case 'l':
if (i+1 >= argc) {
noarg(argv[i]);
@ -664,14 +735,6 @@ int Engine::main(int argc, const char** argv, const char** environ)
pc = 0;
logfile=argv[++i];
break;
case 'p':
if (i+1 >= argc) {
noarg(argv[i]);
return ENOENT;
}
pc = 0;
pidfile=argv[++i];
break;
case 'n':
if (i+1 >= argc) {
noarg(argv[i]);
@ -736,6 +799,7 @@ int Engine::main(int argc, const char** argv, const char** environ)
}
}
#ifndef _WINDOWS
if (daemonic) {
Debugger::enableOutput(false);
// Make sure X client modules fail initialization in daemon mode
@ -746,6 +810,7 @@ int Engine::main(int argc, const char** argv, const char** environ)
return err;
}
}
#endif
if (pidfile) {
int fd = ::open(pidfile,O_WRONLY|O_CREAT,0644);
@ -773,9 +838,13 @@ int Engine::main(int argc, const char** argv, const char** environ)
debugLevel(debug_level);
abortOnBug(s_sigabrt);
int retcode = supervised ? supervise() : -1;
int retcode = -1;
#ifndef _WINDOWS
if (supervised)
retcode = supervise()
if (retcode >= 0)
return retcode;
#endif
time_t t = ::time(0);
Output("Yate (%u) is starting %s",::getpid(),::ctime(&t));

View File

@ -28,7 +28,7 @@ using namespace TelEngine;
Message::Message(const char* name, const char* retval)
: NamedList(name), m_return(retval), m_data(0)
{
DDebug(DebugAll,"Message::Message(\"%s\",\"%s\") [%p]",name,retval,this);
XDebug(DebugAll,"Message::Message(\"%s\",\"%s\") [%p]",name,retval,this);
}
Message::~Message()
@ -87,7 +87,11 @@ int Message::decode(const char* str, String& id)
t >> tm;
if (!t.null())
return sep-str;
#ifdef _WINDOWS
m_time=((u_int32_t)1000000)*tm;
#else
m_time=1000000ULL*tm;
#endif
return commonDecode(str,sep2-str+1);
}
@ -242,7 +246,7 @@ bool MessageDispatcher::uninstall(MessageHandler* handler)
bool MessageDispatcher::dispatch(Message& msg)
{
#ifdef DEBUG
#ifdef XDEBUG
Debugger debug("MessageDispatcher::dispatch","(%p) (\"%s\")",&msg,msg.c_str());
#endif
bool retv = false;

View File

@ -23,6 +23,14 @@
#include "yatengine.h"
#include <unistd.h>
#ifdef _WINDOWS
#include <windows.h>
typedef HANDLE HMUTEX;
#else
#include <pthread.h>
#ifdef MUTEX_HACK
@ -31,6 +39,10 @@ extern int pthread_mutexattr_settype(pthread_mutexattr_t *__attr, int __kind) _
}
#endif
typedef pthread_mutex_t HMUTEX;
#endif /* ! _WINDOWS */
namespace TelEngine {
class MutexPrivate {
@ -45,12 +57,12 @@ public:
{ return m_recursive; }
bool locked() const
{ return (m_locked > 0); }
bool lock(long long int maxwait);
bool lock(int64_t maxwait);
void unlock();
static volatile int s_count;
static volatile int s_locks;
private:
pthread_mutex_t m_mutex;
HMUTEX m_mutex;
int m_refcount;
volatile unsigned int m_locked;
bool m_recursive;
@ -64,7 +76,7 @@ public:
static void unlock();
private:
static bool s_init;
static pthread_mutex_t s_mutex;
static HMUTEX s_mutex;
};
};
@ -76,7 +88,7 @@ GlobalMutex s_global;
volatile int MutexPrivate::s_count = 0;
volatile int MutexPrivate::s_locks = 0;
bool GlobalMutex::s_init = true;
pthread_mutex_t GlobalMutex::s_mutex;
HMUTEX GlobalMutex::s_mutex;
// WARNING!!!
// No debug messages are allowed in mutexes since the debug output itself
@ -86,11 +98,15 @@ void GlobalMutex::init()
{
if (s_init) {
s_init = false;
#ifdef _WINDOWS
s_mutex = ::CreateMutex(NULL,FALSE,NULL);
#else
pthread_mutexattr_t attr;
::pthread_mutexattr_init(&attr);
::pthread_mutexattr_settype(&attr,PTHREAD_MUTEX_RECURSIVE_NP);
::pthread_mutex_init(&s_mutex,&attr);
::pthread_mutexattr_destroy(&attr);
#endif
}
}
@ -102,13 +118,21 @@ GlobalMutex::GlobalMutex()
void GlobalMutex::lock()
{
init();
#ifdef _WINDOWS
::WaitForSingleObject(s_mutex,INFINITE);
#else
::pthread_mutex_lock(&s_mutex);
#endif
}
void GlobalMutex::unlock()
{
init();
#ifdef _WINDOWS
::ReleaseMutex(s_mutex);
#else
::pthread_mutex_unlock(&s_mutex);
#endif
}
MutexPrivate::MutexPrivate(bool recursive)
@ -116,6 +140,10 @@ MutexPrivate::MutexPrivate(bool recursive)
{
GlobalMutex::lock();
s_count++;
#ifdef _WINDOWS
// All mutexes are recursive in Windows
m_mutex = ::CreateMutex(NULL,FALSE,NULL);
#else
if (recursive) {
pthread_mutexattr_t attr;
::pthread_mutexattr_init(&attr);
@ -125,6 +153,7 @@ MutexPrivate::MutexPrivate(bool recursive)
}
else
::pthread_mutex_init(&m_mutex,0);
#endif
GlobalMutex::unlock();
}
@ -134,32 +163,51 @@ MutexPrivate::~MutexPrivate()
if (m_locked) {
m_locked--;
s_locks--;
#ifdef _WINDOWS
::ReleaseMutex(m_mutex);
#else
::pthread_mutex_unlock(&m_mutex);
#endif
}
s_count--;
#ifdef _WINDOWS
::CloseHandle(m_mutex);
m_mutex = 0;
#else
::pthread_mutex_destroy(&m_mutex);
#endif
GlobalMutex::unlock();
}
bool MutexPrivate::lock(long long int maxwait)
bool MutexPrivate::lock(int64_t maxwait)
{
bool rval = false;
GlobalMutex::lock();
ref();
GlobalMutex::unlock();
#ifdef _WINDOWS
DWORD ms = 0;
if (maxwait < 0)
ms = INFINITE;
else if (maxwait > 0) {
ms = (DWORD)(maxwait / 1000);
}
rval = (::WaitForSingleObject(m_mutex,ms) == WAIT_OBJECT_0);
#else
if (maxwait < 0)
rval = !::pthread_mutex_lock(&m_mutex);
else if (!maxwait)
rval = !::pthread_mutex_trylock(&m_mutex);
else {
unsigned long long t = Time::now() + maxwait;
u_int64_t t = Time::now() + maxwait;
do {
rval = !::pthread_mutex_trylock(&m_mutex);
if (rval)
break;
::usleep(1);
Thread::yield();
} while (t > Time::now());
}
#endif
GlobalMutex::lock();
if (rval) {
s_locks++;
@ -179,7 +227,11 @@ void MutexPrivate::unlock()
m_locked--;
if (--s_locks < 0)
Debug(DebugFail,"MutexPrivate::locks() is %d [%p]",s_locks,this);
#ifdef _WINDOWS
::ReleaseMutex(m_mutex);
#else
::pthread_mutex_unlock(&m_mutex);
#endif
deref();
}
else
@ -228,7 +280,7 @@ MutexPrivate *Mutex::privDataCopy() const
return m_private;
}
bool Mutex::lock(long long int maxwait)
bool Mutex::lock(int64_t maxwait)
{
return m_private ? m_private->lock(maxwait) : false;
}
@ -239,7 +291,7 @@ void Mutex::unlock()
m_private->unlock();
}
bool Mutex::check(long long int maxwait)
bool Mutex::check(int64_t maxwait)
{
bool ret = lock(maxwait);
if (ret)

View File

@ -31,7 +31,7 @@ NamedList::NamedList(const char* name)
NamedList& NamedList::addParam(NamedString* param)
{
DDebug(DebugInfo,"NamedList::addParam(%p) [\"%s\",\"%s\"]",
XDebug(DebugInfo,"NamedList::addParam(%p) [\"%s\",\"%s\"]",
param,param->name().c_str(),param->c_str());
m_params.append(param);
return *this;
@ -39,14 +39,14 @@ NamedList& NamedList::addParam(NamedString* param)
NamedList& NamedList::addParam(const char* name, const char* value)
{
DDebug(DebugInfo,"NamedList::addParam(\"%s\",\"%s\")",name,value);
XDebug(DebugInfo,"NamedList::addParam(\"%s\",\"%s\")",name,value);
m_params.append(new NamedString(name, value));
return *this;
}
NamedList& NamedList::setParam(NamedString* param)
{
DDebug(DebugInfo,"NamedList::setParam(%p) [\"%s\",\"%s\"]",
XDebug(DebugInfo,"NamedList::setParam(%p) [\"%s\",\"%s\"]",
param,param->name().c_str(),param->c_str());
NamedString *s = getParam(param->name());
if (s) {
@ -60,7 +60,7 @@ NamedList& NamedList::setParam(NamedString* param)
NamedList& NamedList::setParam(const char* name, const char* value)
{
DDebug(DebugInfo,"NamedList::setParam(\"%s\",\"%s\")",name,value);
XDebug(DebugInfo,"NamedList::setParam(\"%s\",\"%s\")",name,value);
NamedString *s = getParam(name);
if (s)
*s = value;
@ -71,7 +71,7 @@ NamedList& NamedList::setParam(const char* name, const char* value)
NamedList& NamedList::clearParam(const String& name)
{
DDebug(DebugInfo,"NamedList::clearParam(\"%s\")",name.c_str());
XDebug(DebugInfo,"NamedList::clearParam(\"%s\")",name.c_str());
ObjList *p = &m_params;
while (p) {
NamedString *s = static_cast<NamedString *>(p->get());
@ -85,7 +85,7 @@ NamedList& NamedList::clearParam(const String& name)
NamedString* NamedList::getParam(const String& name) const
{
DDebug(DebugInfo,"NamedList::getParam(\"%s\")",name.c_str());
XDebug(DebugInfo,"NamedList::getParam(\"%s\")",name.c_str());
const ObjList *p = &m_params;
for (;p;p=p->next()) {
NamedString *s = static_cast<NamedString *>(p->get());
@ -97,13 +97,13 @@ NamedString* NamedList::getParam(const String& name) const
NamedString* NamedList::getParam(unsigned int index) const
{
DDebug(DebugInfo,"NamedList::getParam(%u)",index);
XDebug(DebugInfo,"NamedList::getParam(%u)",index);
return static_cast<NamedString *>(m_params[index]);
}
const char* NamedList::getValue(const String& name, const char* defvalue) const
{
DDebug(DebugInfo,"NamedList::getValue(\"%s\",\"%s\")",name.c_str(),defvalue);
XDebug(DebugInfo,"NamedList::getValue(\"%s\",\"%s\")",name.c_str(),defvalue);
const NamedString *s = getParam(name);
return s ? s->c_str() : defvalue;
}

View File

@ -27,19 +27,19 @@ using namespace TelEngine;
ObjList::ObjList()
: m_next(0), m_obj(0), m_delete(true)
{
DDebug(DebugAll,"ObjList::ObjList() [%p]",this);
XDebug(DebugAll,"ObjList::ObjList() [%p]",this);
}
ObjList::~ObjList()
{
#ifdef DEBUG
#ifdef XDEBUG
Debugger debug("ObjList::~ObjList()"," [%p]",this);
#endif
if (m_obj) {
GenObject *tmp = m_obj;
m_obj = 0;
if (m_delete) {
DDebug(DebugInfo,"ObjList::~ObjList() deleting %p",tmp);
XDebug(DebugInfo,"ObjList::~ObjList() deleting %p",tmp);
tmp->destruct();
}
}
@ -96,24 +96,24 @@ GenObject* ObjList::operator[](int index) const
ObjList* ObjList::find(const GenObject* obj) const
{
DDebug(DebugAll,"ObjList::find(%p) [%p]",obj,this);
XDebug(DebugAll,"ObjList::find(%p) [%p]",obj,this);
const ObjList *n = this;
while (n && (n->get() != obj))
n = n->next();
DDebug(DebugInfo,"ObjList::find returning %p",n);
XDebug(DebugInfo,"ObjList::find returning %p",n);
return const_cast<ObjList*>(n);
}
ObjList* ObjList::find(const String& str) const
{
DDebug(DebugAll,"ObjList::find(\"%s\") [%p]",str.c_str(),this);
XDebug(DebugAll,"ObjList::find(\"%s\") [%p]",str.c_str(),this);
const ObjList *n = this;
while (n) {
if (n->get() && str.matches(n->get()->toString()))
break;
n = n->next();
}
DDebug(DebugInfo,"ObjList::find returning %p",n);
XDebug(DebugInfo,"ObjList::find returning %p",n);
return const_cast<ObjList*>(n);
}
@ -132,7 +132,7 @@ GenObject* ObjList::set(const GenObject* obj, bool delold)
ObjList* ObjList::insert(const GenObject* obj)
{
#ifdef DEBUG
#ifdef XDEBUG
Debugger debug("ObjList::insert","(%p) [%p]",obj,this);
#endif
if (m_obj) {
@ -149,7 +149,7 @@ ObjList* ObjList::insert(const GenObject* obj)
ObjList* ObjList::append(const GenObject* obj)
{
#ifdef DEBUG
#ifdef XDEBUG
Debugger debug("ObjList::append","(%p) [%p]",obj,this);
#endif
ObjList *n = last();
@ -193,7 +193,7 @@ GenObject* ObjList::remove(GenObject* obj, bool delobj)
void ObjList::clear()
{
#ifdef DEBUG
#ifdef XDEBUG
Debugger debug("ObjList::clear()"," [%p]",this);
#endif
while (m_obj)

View File

@ -101,7 +101,7 @@ static bool isWordBreak(char c, bool nullOk = false)
StringMatchPrivate::StringMatchPrivate()
{
DDebug(DebugAll,"StringMatchPrivate::StringMatchPrivate() [%p]",this);
XDebug(DebugAll,"StringMatchPrivate::StringMatchPrivate() [%p]",this);
clear();
}
@ -149,20 +149,20 @@ const String& String::empty()
String::String()
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String() [%p]",this);
XDebug(DebugAll,"String::String() [%p]",this);
}
String::String(const char* value, int len)
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String(\"%s\",%d) [%p]",value,len,this);
XDebug(DebugAll,"String::String(\"%s\",%d) [%p]",value,len,this);
assign(value,len);
}
String::String(const String& value)
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String(%p) [%p]",&value,this);
XDebug(DebugAll,"String::String(%p) [%p]",&value,this);
if (!value.null()) {
m_string = ::strdup(value.c_str());
if (!m_string)
@ -174,7 +174,7 @@ String::String(const String& value)
String::String(char value, unsigned int repeat)
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String('%c',%d) [%p]",value,repeat,this);
XDebug(DebugAll,"String::String('%c',%d) [%p]",value,repeat,this);
if (value && repeat) {
m_string = (char *) ::malloc(repeat+1);
if (m_string) {
@ -190,7 +190,7 @@ String::String(char value, unsigned int repeat)
String::String(int value)
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String(%d) [%p]",value,this);
XDebug(DebugAll,"String::String(%d) [%p]",value,this);
char buf[64];
::sprintf(buf,"%d",value);
m_string = ::strdup(buf);
@ -202,7 +202,7 @@ String::String(int value)
String::String(unsigned int value)
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String(%u) [%p]",value,this);
XDebug(DebugAll,"String::String(%u) [%p]",value,this);
char buf[64];
::sprintf(buf,"%u",value);
m_string = ::strdup(buf);
@ -214,7 +214,7 @@ String::String(unsigned int value)
String::String(bool value)
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String(%u) [%p]",value,this);
XDebug(DebugAll,"String::String(%u) [%p]",value,this);
m_string = ::strdup(boolText(value));
if (!m_string)
Debug("String",DebugFail,"strdup() returned NULL!");
@ -224,7 +224,7 @@ String::String(bool value)
String::String(const String* value)
: m_string(0), m_length(0), m_hash(INIT_HASH), m_matches(0)
{
DDebug(DebugAll,"String::String(%p) [%p]",&value,this);
XDebug(DebugAll,"String::String(%p) [%p]",&value,this);
if (value && !value->null()) {
m_string = ::strdup(value->c_str());
if (!m_string)
@ -235,7 +235,7 @@ String::String(const String* value)
String::~String()
{
DDebug(DebugAll,"String::~String() [%p] (\"%s\")",this,m_string);
XDebug(DebugAll,"String::~String() [%p] (\"%s\")",this,m_string);
if (m_matches) {
StringMatchPrivate *odata = m_matches;
m_matches = 0;
@ -354,7 +354,8 @@ bool String::toBoolean(bool defvalue) const
String& String::toUpper()
{
if (m_string) {
for (char *s = m_string; char c = *s; s++) {
char c;
for (char *s = m_string; c = *s; s++) {
if (('a' <= c) && (c <= 'z'))
*s = c + 'A' - 'a';
}
@ -365,7 +366,8 @@ String& String::toUpper()
String& String::toLower()
{
if (m_string) {
for (char *s = m_string; char c = *s; s++) {
char c;
for (char *s = m_string; c = *s; s++) {
if (('A' <= c) && (c <= 'Z'))
*s = c + 'a' - 'A';
}
@ -813,13 +815,13 @@ unsigned int String::hash(const char* value)
Regexp::Regexp()
: m_regexp(0), m_flags(0)
{
DDebug(DebugAll,"Regexp::Regexp() [%p]",this);
XDebug(DebugAll,"Regexp::Regexp() [%p]",this);
}
Regexp::Regexp(const char* value, bool extended, bool insensitive)
: String(value), m_regexp(0), m_flags(0)
{
DDebug(DebugAll,"Regexp::Regexp(\"%s\",%d,%d) [%p]",
XDebug(DebugAll,"Regexp::Regexp(\"%s\",%d,%d) [%p]",
value,extended,insensitive,this);
setFlags(extended,insensitive);
}
@ -827,7 +829,7 @@ Regexp::Regexp(const char* value, bool extended, bool insensitive)
Regexp::Regexp(const Regexp& value)
: String(value.c_str()), m_regexp(0), m_flags(value.m_flags)
{
DDebug(DebugAll,"Regexp::Regexp(%p) [%p]",&value,this);
XDebug(DebugAll,"Regexp::Regexp(%p) [%p]",&value,this);
}
Regexp::~Regexp()
@ -911,7 +913,7 @@ bool Regexp::isCaseInsensitive() const
NamedString::NamedString(const char* name, const char* value)
: String(value), m_name(name)
{
DDebug(DebugAll,"NamedString::NamedString(\"%s\",\"%s\") [%p]",name,value,this);
XDebug(DebugAll,"NamedString::NamedString(\"%s\",\"%s\") [%p]",name,value,this);
}
const String& GenObject::toString() const

View File

@ -26,7 +26,11 @@
#include <stdarg.h>
#include <string.h>
#include <stdio.h>
#ifdef _WINDOWS
#include <windows.h>
#else
#include <sys/time.h>
#endif
namespace TelEngine {
@ -293,15 +297,29 @@ void Debugger::enableOutput(bool enable)
s_debugging = enable;
}
unsigned long long Time::now()
u_int64_t Time::now()
{
#ifdef _WINDOWS
FILETIME ft;
GetSystemTimeAsFileTime(&ft);
// Convert from FILETIME (100 nsec units since January 1, 1601)
// to extended time_t (1 usec units since January 1, 1970)
u_int64_t rval = ((ULARGE_INTEGER*)&ft)->QuadPart / 10;
rval -= 11644473600000000;
return rval;
#else
struct timeval tv;
return ::gettimeofday(&tv,0) ? 0 : fromTimeval(&tv);
#endif
}
unsigned long long Time::fromTimeval(struct timeval* tv)
u_int64_t Time::fromTimeval(struct timeval* tv)
{
unsigned long long rval = 0;
u_int64_t rval = 0;
if (tv) {
// Please keep it this way or the compiler may b0rk
rval = tv->tv_sec;
@ -311,11 +329,11 @@ unsigned long long Time::fromTimeval(struct timeval* tv)
return rval;
}
void Time::toTimeval(struct timeval* tv, unsigned long long usec)
void Time::toTimeval(struct timeval* tv, u_int64_t usec)
{
if (tv) {
tv->tv_usec = usec % 1000000;
tv->tv_sec = usec / 1000000;
tv->tv_usec = (long)(usec % 1000000);
tv->tv_sec = (long)(usec / 1000000);
}
}

View File

@ -23,9 +23,17 @@
#include "yatengine.h"
#include <unistd.h>
#include <pthread.h>
#include <errno.h>
#ifdef _WINDOWS
#include <windows.h>
#include <process.h>
typedef unsigned long HTHREAD;
#else
#include <pthread.h>
typedef pthread_t HTHREAD;
#endif
#ifndef PTHREAD_STACK_MIN
#define PTHREAD_STACK_MIN 16384
#endif
@ -46,13 +54,17 @@ public:
static void killall();
static Thread* current();
Thread* m_thread;
pthread_t thread;
HTHREAD thread;
bool m_running;
bool m_started;
bool m_updest;
const char* m_name;
private:
#ifdef _WINDOWS
static void startFunc(void* arg);
#else
static void* startFunc(void* arg);
#endif
static void cleanupFunc(void* arg);
static void destroyFunc(void* arg);
static void keyAllocFunc();
@ -62,8 +74,13 @@ private:
using namespace TelEngine;
#ifdef _WINDOWS
DWORD tls_index = ::TlsAlloc();
#else
static pthread_key_t current_key;
static pthread_once_t current_key_once = PTHREAD_ONCE_INIT;
#endif
ObjList threads;
Mutex tmutex;
@ -71,18 +88,29 @@ ThreadPrivate* ThreadPrivate::create(Thread* t,const char* name)
{
ThreadPrivate *p = new ThreadPrivate(t,name);
int e = 0;
#ifndef _WINDOWS
// Set a decent (256K) stack size that won't eat all virtual memory
pthread_attr_t attr;
::pthread_attr_init(&attr);
::pthread_attr_setstacksize(&attr, 16*PTHREAD_STACK_MIN);
#endif
for (int i=0; i<5; i++) {
#ifdef _WINDOWS
HTHREAD t = ::_beginthread(startFunc,16*PTHREAD_STACK_MIN,p);
e = (t == (HTHREAD)-1) ? errno : 0;
if (!e)
p->thread = t;
#else
e = ::pthread_create(&p->thread,&attr,startFunc,p);
#endif
if (e != EAGAIN)
break;
::usleep(20);
Thread::usleep(20);
}
#ifndef _WINDOWS
::pthread_attr_destroy(&attr);
#endif
if (e) {
Debug(DebugFail,"Error %d while creating pthread in '%s' [%p]",e,name,p);
p->m_thread = 0;
@ -141,16 +169,23 @@ void ThreadPrivate::pubdestroy()
void ThreadPrivate::run()
{
DDebug(DebugAll,"ThreadPrivate::run() '%s' [%p]",m_name,this);
#ifdef _WINDOWS
::TlsSetValue(tls_index,this);
#else
::pthread_once(&current_key_once,keyAllocFunc);
::pthread_setspecific(current_key,this);
pthread_cleanup_push(cleanupFunc,this);
::pthread_setcanceltype(PTHREAD_CANCEL_ASYNCHRONOUS,0);
::pthread_detach(::pthread_self());
#endif
while (!m_started)
::usleep(10);
Thread::usleep(10);
m_thread->run();
#ifndef _WINDOWS
pthread_cleanup_pop(1);
#endif
}
bool ThreadPrivate::cancel()
@ -158,10 +193,14 @@ bool ThreadPrivate::cancel()
DDebug(DebugAll,"ThreadPrivate::cancel() '%s' [%p]",m_name,this);
bool ret = true;
if (m_running) {
#ifdef _WINDOWS
ret = ::TerminateThread(reinterpret_cast<HANDLE>(thread),0) != 0;
#else
ret = !::pthread_cancel(thread);
#endif
if (ret) {
m_running = false;
::usleep(10);
Thread::msleep(1);
}
}
return ret;
@ -184,7 +223,11 @@ void ThreadPrivate::cleanup()
Thread* ThreadPrivate::current()
{
#ifdef _WINDOWS
ThreadPrivate *t = reinterpret_cast<ThreadPrivate *>(::TlsGetValue(tls_index));
#else
ThreadPrivate *t = reinterpret_cast<ThreadPrivate *>(::pthread_getspecific(current_key));
#endif
return t ? t->m_thread : 0;
}
@ -203,13 +246,13 @@ void ThreadPrivate::killall()
bool ok = t->cancel();
if (ok) {
// delay a little so threads have a chance to clean up
for (int i=0; i<1000; i++) {
for (int i=0; i<100; i++) {
tmutex.lock();
bool done = (t != l->get());
tmutex.unlock();
if (done)
break;
::usleep(10);
Thread::msleep(1);
}
}
tmutex.lock();
@ -217,13 +260,13 @@ void ThreadPrivate::killall()
c = 1;
else {
if (ok) {
Debug(DebugGoOn,"Could not kill %p but seems OK to delete it (pthread bug?)",t);
Debug(DebugGoOn,"Could not kill %p but seems OK to delete it (library bug?)",t);
tmutex.unlock();
t->destroy();
tmutex.lock();
continue;
}
::usleep(10);
Thread::msleep(1);
if (++c >= 10) {
Debug(DebugGoOn,"Could not kill %p, will use sledgehammer later.",t);
sledgehammer = true;
@ -266,17 +309,25 @@ void ThreadPrivate::cleanupFunc(void* arg)
void ThreadPrivate::keyAllocFunc()
{
#ifndef _WINDOWS
DDebug(DebugAll,"ThreadPrivate::keyAllocFunc()");
if (::pthread_key_create(&current_key,destroyFunc))
Debug(DebugGoOn,"Failed to create current thread key!");
#endif
}
#ifdef _WINDOWS
void ThreadPrivate::startFunc(void* arg)
#else
void* ThreadPrivate::startFunc(void* arg)
#endif
{
DDebug(DebugAll,"ThreadPrivate::startFunc(%p)",arg);
ThreadPrivate *t = reinterpret_cast<ThreadPrivate *>(arg);
t->run();
#ifndef _WINDOWS
return 0;
#endif
}
Thread::Thread(const char* name)
@ -338,7 +389,11 @@ void Thread::killall()
void Thread::exit()
{
DDebug(DebugAll,"Thread::exit()");
#ifdef _WINDOWS
::_endthread();
#else
::pthread_exit(0);
#endif
}
void Thread::cancel()
@ -350,7 +405,38 @@ void Thread::cancel()
void Thread::yield()
{
::usleep(1);
#ifdef _WINDOWS
::Sleep(0);
#else
::usleep(0);
#endif
}
void Thread::sleep(unsigned int sec)
{
#ifdef _WINDOWS
::Sleep(sec*1000);
#else
::sleep(sec);
#endif
}
void Thread::msleep(unsigned long msec)
{
#ifdef _WINDOWS
::Sleep(msec);
#else
::usleep(msec*1000L);
#endif
}
void Thread::usleep(unsigned long usec)
{
#ifdef _WINDOWS
::Sleep(usec/1000);
#else
::usleep(usec);
#endif
}
void Thread::preExec()

View File

@ -64,7 +64,7 @@ public:
{ m_target = target; }
inline const String& getTarget() const
{ return m_target; }
inline unsigned long long age() const
inline u_int64_t age() const
{ return Time::now() - m_start; }
static GenConnection* find(const String& id);
static bool oneCall(String* target = 0);
@ -73,7 +73,7 @@ private:
String m_status;
String m_callto;
String m_target;
unsigned long long m_start;
u_int64_t m_start;
};
class GenThread : public Thread
@ -164,7 +164,7 @@ bool GenConnection::oneCall(String* target)
int n_max = s_cfg.getIntValue("parameters","maxnum",n_min);
if (n_max < n_min)
return false;
called = (unsigned)(n_min + (((n_max - n_min) * (long long)::random()) / RAND_MAX));
called = (unsigned)(n_min + (((n_max - n_min) * (int64_t)::random()) / RAND_MAX));
}
if (target)
*target = called;
@ -279,7 +279,7 @@ bool ConnHandler::received(Message &msg, int id)
void GenThread::run()
{
for (;;) {
::usleep(1000000);
Thread::sleep(1);
Lock lock(s_mutex);
int maxcalls = s_cfg.getIntValue("parameters","maxcalls",5);
if (!s_runs || (s_current >= maxcalls) || (s_numcalls <= 0))

View File

@ -60,16 +60,16 @@ class CdrBuilder : public String
public:
CdrBuilder(const char *name, const char *caller, const char *called);
virtual ~CdrBuilder();
void update(int type, unsigned long long val);
void update(int type, u_int64_t val);
inline void setStatus(const char *status)
{ m_status = status; }
String getStatus() const;
static CdrBuilder *find(String &id);
private:
void emit(const char *operation = 0);
inline static int sec(unsigned long long usec)
{ return (usec + 500000) / 1000000; }
unsigned long long
inline static int sec(u_int64_t usec)
{ return (int)((usec + 500000) / 1000000); }
u_int64_t
m_start,
m_call,
m_ringing,
@ -96,10 +96,10 @@ CdrBuilder::~CdrBuilder()
void CdrBuilder::emit(const char *operation)
{
unsigned long long t_hangup = m_hangup ? m_hangup : Time::now();
u_int64_t t_hangup = m_hangup ? m_hangup : Time::now();
const char *dir = m_call ? "outgoing" : "incoming";
unsigned long long
u_int64_t
t_start = m_start, t_call = m_call,
t_ringing = m_ringing, t_answer = m_answer;
if (!t_start)
@ -136,7 +136,7 @@ String CdrBuilder::getStatus() const
return s;
}
void CdrBuilder::update(int type, unsigned long long val)
void CdrBuilder::update(int type, u_int64_t val)
{
switch (type) {
case CdrStart:

View File

@ -187,7 +187,7 @@ static bool oneContext(Message &msg, String &str, const String &context, String
bool RouteHandler::received(Message &msg)
{
unsigned long long tmr = Time::now();
u_int64_t tmr = Time::now();
String called(msg.getValue("called"));
if (called.null())
return false;
@ -215,7 +215,7 @@ public:
bool PrerouteHandler::received(Message &msg)
{
unsigned long long tmr = Time::now();
u_int64_t tmr = Time::now();
// return immediately if there is already a context
if (msg.getValue("context"))
return false;

View File

@ -52,7 +52,7 @@ private:
DataBlock m_data;
unsigned m_brate;
unsigned m_total;
unsigned long long m_time;
u_int64_t m_time;
};
class ToneChan : public Channel
@ -137,7 +137,7 @@ ToneSource::~ToneSource()
if (m_time) {
m_time = Time::now() - m_time;
if (m_time) {
m_time = (m_total*1000000ULL + m_time/2) / m_time;
m_time = (m_total*(u_int64_t)1000000 + m_time/2) / m_time;
Debug(DebugInfo,"ToneSource rate=%llu b/s",m_time);
}
}
@ -179,7 +179,7 @@ ToneSource *ToneSource::getTone(const String &tone)
void ToneSource::run()
{
Debug(DebugAll,"ToneSource::run() [%p]",this);
unsigned long long tpos = Time::now();
u_int64_t tpos = Time::now();
m_time = tpos;
int samp = 0; // sample number
int dpos = 1; // position in data
@ -206,17 +206,17 @@ void ToneSource::run()
else
*d++ = 0;
}
long long dly = tpos - Time::now();
int64_t dly = tpos - Time::now();
if (dly > 0) {
XDebug("ToneSource",DebugAll,"Sleeping for %lld usec",dly);
::usleep((unsigned long)dly);
Thread::usleep((unsigned long)dly);
}
Forward(m_data,m_data.length()/2);
m_total += m_data.length();
tpos += (m_data.length()*1000000ULL/m_brate);
tpos += (m_data.length()*(u_int64_t)1000000/m_brate);
};
m_time = Time::now() - m_time;
m_time = (m_total*1000000ULL + m_time/2) / m_time;
m_time = (m_total*(u_int64_t)1000000 + m_time/2) / m_time;
Debug(DebugAll,"ToneSource [%p] end, total=%u (%llu b/s)",this,m_total,m_time);
m_time = 0;
}

View File

@ -5,6 +5,7 @@ Release
*.opt
*.ncb
*.clw
*.suo
*.orig
*~
*.bak

119
windows/Client.dsp Normal file
View File

@ -0,0 +1,119 @@
# Microsoft Developer Studio Project File - Name="Client" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Application" 0x0101
CFG=Client - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Client.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Client.mak" CFG="Client - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Client - Win32 Release" (based on "Win32 (x86) Application")
!MESSAGE "Client - Win32 Debug" (based on "Win32 (x86) Application")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "Client - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /c
# ADD CPP /nologo /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /machine:I386
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /machine:I386 /out:"Release/yate-client.exe"
# SUBTRACT LINK32 /pdb:none
!ELSEIF "$(CFG)" == "Client - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:windows /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /subsystem:console /incremental:no /debug /machine:I386 /out:"Debug/yate-client.exe" /pdbtype:sept
# SUBTRACT LINK32 /pdb:none
!ENDIF
# Begin Target
# Name "Client - Win32 Release"
# Name "Client - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=".\main-client.cpp"
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\yatengine.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\version.rc
# End Source File
# End Group
# End Target
# End Project

63
windows/Contrib.dsp Normal file
View File

@ -0,0 +1,63 @@
# Microsoft Developer Studio Project File - Name="Contrib" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Generic Project" 0x010a
CFG=Contrib - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Contrib.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Contrib.mak" CFG="Contrib - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Contrib - Win32 Release" (based on "Win32 (x86) Generic Project")
!MESSAGE "Contrib - Win32 Debug" (based on "Win32 (x86) Generic Project")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
MTL=midl.exe
!IF "$(CFG)" == "Contrib - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "Contrib - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "Contrib - Win32 Release"
# Name "Contrib - Win32 Debug"
# End Target
# End Project

174
windows/Libyate.dsp Normal file
View File

@ -0,0 +1,174 @@
# Microsoft Developer Studio Project File - Name="Libyate" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=Libyate - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Libyate.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Libyate.mak" CFG="Libyate - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Libyate - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "Libyate - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "Libyate - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBYATE_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBYATE_EXPORTS" /D "__STDC__" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib Release/libregex.lib /nologo /dll /machine:I386 /nodefaultlib:"LIBC"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "Libyate - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 0
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBYATE_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "LIBYATE_EXPORTS" /D "__STDC__" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib Debug/libregex.lib /nologo /dll /incremental:no /debug /machine:I386 /nodefaultlib:"LIBCD" /pdbtype:sept
!ENDIF
# Begin Target
# Name "Libyate - Win32 Release"
# Name "Libyate - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\engine\Channel.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\Configuration.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\DataBlock.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\DataFormat.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\Engine.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\Message.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\Mutex.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\NamedList.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\ObjList.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\Plugin.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\String.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\TelEngine.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\Thread.cpp
# End Source File
# Begin Source File
SOURCE=..\engine\YMD5.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\yatengine.h
# End Source File
# Begin Source File
SOURCE=..\yatephone.h
# End Source File
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# Begin Source File
SOURCE=.\version.rc
# End Source File
# End Group
# End Target
# End Project

63
windows/Modules.dsp Normal file
View File

@ -0,0 +1,63 @@
# Microsoft Developer Studio Project File - Name="Modules" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Generic Project" 0x010a
CFG=Modules - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "Modules.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "Modules.mak" CFG="Modules - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "Modules - Win32 Release" (based on "Win32 (x86) Generic Project")
!MESSAGE "Modules - Win32 Debug" (based on "Win32 (x86) Generic Project")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
MTL=midl.exe
!IF "$(CFG)" == "Modules - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "Modules - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "Modules - Win32 Release"
# Name "Modules - Win32 Debug"
# End Target
# End Project

63
windows/YATE.dsp Normal file
View File

@ -0,0 +1,63 @@
# Microsoft Developer Studio Project File - Name="YATE" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Generic Project" 0x010a
CFG=YATE - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "YATE.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "YATE.mak" CFG="YATE - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "YATE - Win32 Release" (based on "Win32 (x86) Generic Project")
!MESSAGE "YATE - Win32 Debug" (based on "Win32 (x86) Generic Project")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
MTL=midl.exe
!IF "$(CFG)" == "YATE - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
!ELSEIF "$(CFG)" == "YATE - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
!ENDIF
# Begin Target
# Name "YATE - Win32 Release"
# Name "YATE - Win32 Debug"
# End Target
# End Project

368
windows/YATE.dsw Normal file
View File

@ -0,0 +1,368 @@
Microsoft Developer Studio Workspace File, Format Version 6.00
# WARNING: DO NOT EDIT OR DELETE THIS WORKSPACE FILE!
###############################################################################
Project: "Client"=.\Client.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "Contrib"=.\Contrib.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name libysip
End Project Dependency
Begin Project Dependency
Project_Dep_Name libiax
End Project Dependency
}}}
###############################################################################
Project: "Libyate"=.\Libyate.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name libregex
End Project Dependency
}}}
###############################################################################
Project: "Modules"=.\Modules.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name _callgen
End Project Dependency
Begin Project Dependency
Project_Dep_Name _tonegen
End Project Dependency
Begin Project Dependency
Project_Dep_Name _wavefile
End Project Dependency
Begin Project Dependency
Project_Dep_Name _cdrbuild
End Project Dependency
Begin Project Dependency
Project_Dep_Name _cdrfile
End Project Dependency
Begin Project Dependency
Project_Dep_Name _h323chan
End Project Dependency
Begin Project Dependency
Project_Dep_Name _iaxchan
End Project Dependency
Begin Project Dependency
Project_Dep_Name _regexroute
End Project Dependency
Begin Project Dependency
Project_Dep_Name _regfile
End Project Dependency
Begin Project Dependency
Project_Dep_Name _rmanager
End Project Dependency
Begin Project Dependency
Project_Dep_Name _ysipchan
End Project Dependency
}}}
###############################################################################
Project: "Service"=.\Service.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "YATE"=.\YATE.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Client
End Project Dependency
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
Begin Project Dependency
Project_Dep_Name Modules
End Project Dependency
Begin Project Dependency
Project_Dep_Name Service
End Project Dependency
}}}
###############################################################################
Project: "_callgen"=.\_callgen.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_cdrbuild"=.\_cdrbuild.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_cdrfile"=.\_cdrfile.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_h323chan"=.\_h323chan.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_iaxchan"=.\_iaxchan.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name libiax
End Project Dependency
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_regexroute"=.\_regexroute.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_regfile"=.\_regfile.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_rmanager"=.\_rmanager.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_tonegen"=.\_tonegen.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_wavefile"=.\_wavefile.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
}}}
###############################################################################
Project: "_ysipchan"=.\_ysipchan.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
Begin Project Dependency
Project_Dep_Name Libyate
End Project Dependency
Begin Project Dependency
Project_Dep_Name libysip
End Project Dependency
}}}
###############################################################################
Project: "libiax"=.\libiax.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "libortp"=.\libortp.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "libregex"=.\libregex.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Project: "libysip"=.\libysip.dsp - Package Owner=<4>
Package=<5>
{{{
}}}
Package=<4>
{{{
}}}
###############################################################################
Global:
Package=<5>
{{{
}}}
Package=<3>
{{{
}}}
###############################################################################

110
windows/_callgen.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_callgen" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_callgen - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_callgen.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_callgen.mak" CFG="_callgen - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_callgen - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_callgen - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_callgen - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CALLGEN_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CALLGEN_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/callgen.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_callgen - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CALLGEN_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CALLGEN_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/callgen.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_callgen - Win32 Release"
# Name "_callgen - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\callgen.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_cdrbuild.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_cdrbuild" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_cdrbuild - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_cdrbuild.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_cdrbuild.mak" CFG="_cdrbuild - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_cdrbuild - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_cdrbuild - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_cdrbuild - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRBUILD_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRBUILD_EXPORTS" /FD /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/cdrbuild.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_cdrbuild - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRBUILD_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRBUILD_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX /Yc /Yu
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/cdrbuild.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_cdrbuild - Win32 Release"
# Name "_cdrbuild - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\cdrbuild.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

111
windows/_cdrfile.dsp Normal file
View File

@ -0,0 +1,111 @@
# Microsoft Developer Studio Project File - Name="_cdrfile" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_cdrfile - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_cdrfile.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_cdrfile.mak" CFG="_cdrfile - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_cdrfile - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_cdrfile - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_cdrfile - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRFILE_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRFILE_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/cdrfile.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_cdrfile - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRFILE_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_CDRFILE_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/cdrfile.yate" /pdbtype:sept
# SUBTRACT LINK32 /nodefaultlib
!ENDIF
# Begin Target
# Name "_cdrfile - Win32 Release"
# Name "_cdrfile - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\cdrfile.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_h323chan.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_h323chan" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_h323chan - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_h323chan.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_h323chan.mak" CFG="_h323chan - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_h323chan - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_h323chan - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_h323chan - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_H323CHAN_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_H323CHAN_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/h323chan.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_h323chan - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_H323CHAN_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_H323CHAN_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/h323chan.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_h323chan - Win32 Release"
# Name "_h323chan - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\h323chan.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_iaxchan.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_iaxchan" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_iaxchan - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_iaxchan.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_iaxchan.mak" CFG="_iaxchan - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_iaxchan - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_iaxchan - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_iaxchan - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_IAXCHAN_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_IAXCHAN_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib Release/libiax.lib /nologo /dll /machine:I386 /out:"Release/iaxchan.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_iaxchan - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_IAXCHAN_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_IAXCHAN_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib Debug/libiax.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/iaxchan.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_iaxchan - Win32 Release"
# Name "_iaxchan - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\iaxchan.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_regexroute.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_regexroute" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_regexroute - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_regexroute.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_regexroute.mak" CFG="_regexroute - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_regexroute - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_regexroute - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_regexroute - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGEXROUTE_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGEXROUTE_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/regexroute.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_regexroute - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGEXROUTE_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGEXROUTE_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/regexroute.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_regexroute - Win32 Release"
# Name "_regexroute - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\regexroute.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_regfile.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_regfile" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_regfile - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_regfile.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_regfile.mak" CFG="_regfile - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_regfile - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_regfile - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_regfile - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGFILE_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGFILE_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/regfile.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_regfile - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGFILE_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_REGFILE_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/regfile.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_regfile - Win32 Release"
# Name "_regfile - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\regfile.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_rmanager.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_rmanager" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_rmanager - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_rmanager.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_rmanager.mak" CFG="_rmanager - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_rmanager - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_rmanager - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_rmanager - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_RMANAGER_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_RMANAGER_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/rmanager.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_rmanager - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_RMANAGER_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_RMANAGER_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/rmanager.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_rmanager - Win32 Release"
# Name "_rmanager - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\rmanager.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_tonegen.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_tonegen" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_tonegen - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_tonegen.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_tonegen.mak" CFG="_tonegen - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_tonegen - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_tonegen - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_tonegen - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_TONEGEN_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_TONEGEN_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/tonegen.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_tonegen - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_TONEGEN_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_TONEGEN_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/tonegen.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_tonegen - Win32 Release"
# Name "_tonegen - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\tonegen.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_wavefile.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_wavefile" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_wavefile - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_wavefile.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_wavefile.mak" CFG="_wavefile - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_wavefile - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_wavefile - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_wavefile - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WAVEFILE_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WAVEFILE_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib /nologo /dll /machine:I386 /out:"Release/wavefile.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_wavefile - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WAVEFILE_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_WAVEFILE_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/wavefile.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_wavefile - Win32 Release"
# Name "_wavefile - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\wavefile.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

110
windows/_ysipchan.dsp Normal file
View File

@ -0,0 +1,110 @@
# Microsoft Developer Studio Project File - Name="_ysipchan" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Dynamic-Link Library" 0x0102
CFG=_ysipchan - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "_ysipchan.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "_ysipchan.mak" CFG="_ysipchan - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "_ysipchan - Win32 Release" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE "_ysipchan - Win32 Debug" (based on "Win32 (x86) Dynamic-Link Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
MTL=midl.exe
RSC=rc.exe
!IF "$(CFG)" == "_ysipchan - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MT /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_YSIPCHAN_EXPORTS" /YX /FD /c
# ADD CPP /nologo /MT /W3 /O2 /I "." /I ".." /I "..\contrib\ysip" /D "WIN32" /D "NDEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_YSIPCHAN_EXPORTS" /FD /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "NDEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /machine:I386
# ADD LINK32 kernel32.lib Release/libysip.lib /nologo /dll /machine:I386 /out:"Release/ysipchan.yate"
# SUBTRACT LINK32 /incremental:yes
!ELSEIF "$(CFG)" == "_ysipchan - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Ignore_Export_Lib 1
# PROP Target_Dir ""
# ADD BASE CPP /nologo /MTd /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_YSIPCHAN_EXPORTS" /YX /FD /GZ /c
# ADD CPP /nologo /MTd /W3 /Gm /Zi /Od /I "." /I ".." /I "..\contrib\ysip" /D "WIN32" /D "_DEBUG" /D "_WINDOWS" /D "_MBCS" /D "_USRDLL" /D "_YSIPCHAN_EXPORTS" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD MTL /nologo /D "_DEBUG" /mktyplib203 /win32
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LINK32=link.exe
# ADD BASE LINK32 kernel32.lib user32.lib gdi32.lib winspool.lib comdlg32.lib advapi32.lib shell32.lib ole32.lib oleaut32.lib uuid.lib odbc32.lib odbccp32.lib /nologo /dll /debug /machine:I386 /pdbtype:sept
# ADD LINK32 kernel32.lib Debug/libysip.lib /nologo /dll /incremental:no /debug /machine:I386 /out:"Debug/ysipchan.yate" /pdbtype:sept
!ENDIF
# Begin Target
# Name "_ysipchan - Win32 Release"
# Name "_ysipchan - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\modules\ysipchan.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# End Group
# Begin Group "Resource Files"
# PROP Default_Filter "ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe"
# End Group
# End Target
# End Project

134
windows/libiax.dsp Normal file
View File

@ -0,0 +1,134 @@
# Microsoft Developer Studio Project File - Name="libiax" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=libiax - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "libiax.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "libiax.mak" CFG="libiax - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "libiax - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "libiax - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "libiax - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /O2 /I "." /I ".." /I "..\contrib\iax" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "LIBIAX" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "libiax - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /Zi /Od /I "." /I ".." /I "..\contrib\iax" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "DEBUG_SUPPORT" /D "LIBIAX" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "libiax - Win32 Release"
# Name "libiax - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\contrib\iax\iax.c
# End Source File
# Begin Source File
SOURCE="..\contrib\iax\iax2-parser.c"
# End Source File
# Begin Source File
SOURCE=..\contrib\iax\md5.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\contrib\iax\frame.h
# End Source File
# Begin Source File
SOURCE="..\contrib\iax\iax-client.h"
# End Source File
# Begin Source File
SOURCE=..\contrib\iax\iax.h
# End Source File
# Begin Source File
SOURCE="..\contrib\iax\iax2-parser.h"
# End Source File
# Begin Source File
SOURCE=..\contrib\iax\iax2.h
# End Source File
# Begin Source File
SOURCE=..\contrib\iax\md5.h
# End Source File
# Begin Source File
SOURCE=..\contrib\iax\winpoop.h
# End Source File
# End Group
# End Target
# End Project

226
windows/libortp.dsp Normal file
View File

@ -0,0 +1,226 @@
# Microsoft Developer Studio Project File - Name="libortp" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=libortp - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "libortp.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "libortp.mak" CFG="libortp - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "libortp - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "libortp - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "libortp - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "libortp___Win32_Release"
# PROP BASE Intermediate_Dir "libortp___Win32_Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /O2 /I "." /I ".." /I "..\contrib\ortp" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "libortp - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "libortp___Win32_Debug"
# PROP BASE Intermediate_Dir "libortp___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /Zi /Od /I "." /I ".." /I "..\contrib\ortp" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "libortp - Win32 Release"
# Name "libortp - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\contrib\ortp\avprofile.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\export.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\ortp.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\payloadtype.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\port_fct.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\posixtimer.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpmod.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpparse.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpsession.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpsignaltable.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtptimer.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\scheduler.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\sessionset.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\str_utils.c
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\telephonyevents.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE="..\contrib\ortp\errno-win32.h"
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\export.h
# End Source File
# Begin Source File
SOURCE="..\contrib\ortp\ortp-config-win32.h"
# End Source File
# Begin Source File
SOURCE="..\contrib\ortp\ortp-config.h"
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\ortp.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\payloadtype.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\port_fct.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtcp.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtp.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpmod.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpport.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpsession.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtpsignaltable.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\rtptimer.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\scheduler.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\sessionset.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\str_utils.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ortp\telephonyevents.h
# End Source File
# End Group
# End Target
# End Project

102
windows/libregex.dsp Normal file
View File

@ -0,0 +1,102 @@
# Microsoft Developer Studio Project File - Name="libregex" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=libregex - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "libregex.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "libregex.mak" CFG="libregex - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "libregex - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "libregex - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "libregex - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "libregex___Win32_Release"
# PROP BASE Intermediate_Dir "libregex___Win32_Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /O2 /I "." /I ".." /I "..\contrib\regex" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /D "HAVE_STRING_H" /D "__STDC__" /D "REGEX_MALLOC" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "libregex - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "libregex___Win32_Debug"
# PROP BASE Intermediate_Dir "libregex___Win32_Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /Zi /Od /I "." /I ".." /I "..\contrib\regex" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /D "HAVE_STRING_H" /D "__STDC__" /D "REGEX_MALLOC" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "libregex - Win32 Release"
# Name "libregex - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=.\regex.c
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=.\regex.h
# End Source File
# End Group
# End Target
# End Project

126
windows/libysip.dsp Normal file
View File

@ -0,0 +1,126 @@
# Microsoft Developer Studio Project File - Name="libysip" - Package Owner=<4>
# Microsoft Developer Studio Generated Build File, Format Version 6.00
# ** DO NOT EDIT **
# TARGTYPE "Win32 (x86) Static Library" 0x0104
CFG=libysip - Win32 Debug
!MESSAGE This is not a valid makefile. To build this project using NMAKE,
!MESSAGE use the Export Makefile command and run
!MESSAGE
!MESSAGE NMAKE /f "libysip.mak".
!MESSAGE
!MESSAGE You can specify a configuration when running NMAKE
!MESSAGE by defining the macro CFG on the command line. For example:
!MESSAGE
!MESSAGE NMAKE /f "libysip.mak" CFG="libysip - Win32 Debug"
!MESSAGE
!MESSAGE Possible choices for configuration are:
!MESSAGE
!MESSAGE "libysip - Win32 Release" (based on "Win32 (x86) Static Library")
!MESSAGE "libysip - Win32 Debug" (based on "Win32 (x86) Static Library")
!MESSAGE
# Begin Project
# PROP AllowPerConfigDependencies 0
# PROP Scc_ProjName ""
# PROP Scc_LocalPath ""
CPP=cl.exe
RSC=rc.exe
!IF "$(CFG)" == "libysip - Win32 Release"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 0
# PROP BASE Output_Dir "Release"
# PROP BASE Intermediate_Dir "Release"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 0
# PROP Output_Dir "Release"
# PROP Intermediate_Dir "Release"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /GX /O2 /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /YX /FD /c
# ADD CPP /nologo /W3 /O2 /I "." /I ".." /I "..\contrib\ysip" /D "WIN32" /D "NDEBUG" /D "_MBCS" /D "_LIB" /FD /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "NDEBUG"
# ADD RSC /l 0x409 /d "NDEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ELSEIF "$(CFG)" == "libysip - Win32 Debug"
# PROP BASE Use_MFC 0
# PROP BASE Use_Debug_Libraries 1
# PROP BASE Output_Dir "Debug"
# PROP BASE Intermediate_Dir "Debug"
# PROP BASE Target_Dir ""
# PROP Use_MFC 0
# PROP Use_Debug_Libraries 1
# PROP Output_Dir "Debug"
# PROP Intermediate_Dir "Debug"
# PROP Target_Dir ""
# ADD BASE CPP /nologo /W3 /Gm /GX /ZI /Od /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /YX /FD /GZ /c
# ADD CPP /nologo /W3 /Gm /Zi /Od /I "." /I ".." /I "..\contrib\ysip" /D "WIN32" /D "_DEBUG" /D "_MBCS" /D "_LIB" /FD /GZ /c
# SUBTRACT CPP /YX
# ADD BASE RSC /l 0x409 /d "_DEBUG"
# ADD RSC /l 0x409 /d "_DEBUG"
BSC32=bscmake.exe
# ADD BASE BSC32 /nologo
# ADD BSC32 /nologo
LIB32=link.exe -lib
# ADD BASE LIB32 /nologo
# ADD LIB32 /nologo
!ENDIF
# Begin Target
# Name "libysip - Win32 Release"
# Name "libysip - Win32 Debug"
# Begin Group "Source Files"
# PROP Default_Filter "cpp;c;cxx;rc;def;r;odl;idl;hpj;bat"
# Begin Source File
SOURCE=..\contrib\ysip\body.cpp
# End Source File
# Begin Source File
SOURCE=..\contrib\ysip\engine.cpp
# End Source File
# Begin Source File
SOURCE=..\contrib\ysip\message.cpp
# End Source File
# Begin Source File
SOURCE=..\contrib\ysip\transaction.cpp
# End Source File
# Begin Source File
SOURCE=..\contrib\ysip\util.cpp
# End Source File
# End Group
# Begin Group "Header Files"
# PROP Default_Filter "h;hpp;hxx;hm;inl"
# Begin Source File
SOURCE=..\contrib\ysip\util.h
# End Source File
# Begin Source File
SOURCE=..\yatengine.h
# End Source File
# Begin Source File
SOURCE=..\contrib\ysip\ysip.h
# End Source File
# End Group
# End Target
# End Project

28
windows/main-client.cpp Normal file
View File

@ -0,0 +1,28 @@
/**
* main-client.cpp
* This file is part of the YATE Project http://YATE.null.ro
*
* Yet Another Telephony Engine - a fully featured software PBX and IVR
* Copyright (C) 2004 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "yatengine.h"
extern "C" int main(int argc, const char** argv, const char** environ)
{
return TelEngine::Engine::main(argc,argv,environ);
}

28
windows/main-service.cpp Normal file
View File

@ -0,0 +1,28 @@
/**
* main-service.cpp
* This file is part of the YATE Project http://YATE.null.ro
*
* Yet Another Telephony Engine - a fully featured software PBX and IVR
* Copyright (C) 2004 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., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#include "yatengine.h"
extern "C" int main(int argc, const char** argv, const char** environ)
{
return TelEngine::Engine::main(argc,argv,environ);
}

4948
windows/regex.c Normal file

File diff suppressed because it is too large Load Diff

498
windows/regex.h Normal file
View File

@ -0,0 +1,498 @@
/* Definitions for data structures and routines for the regular
expression library, version 0.12.
Copyright (C) 1985, 1989, 1990, 1991, 1992, 1993 Free Software Foundation, Inc.
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, 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., 675 Mass Ave, Cambridge, MA 02139, USA. */
#ifndef __REGEXP_LIBRARY_H__
#define __REGEXP_LIBRARY_H__
#ifdef __cplusplus
extern "C" {
#endif
/* POSIX says that <sys/types.h> must be included (by the caller) before
<regex.h>. */
#ifdef VMS
/* VMS doesn't have `size_t' in <sys/types.h>, even though POSIX says it
should be there. */
#include <stddef.h>
#endif
/* The following bits are used to determine the regexp syntax we
recognize. The set/not-set meanings are chosen so that Emacs syntax
remains the value 0. The bits are given in alphabetical order, and
the definitions shifted by one from the previous bit; thus, when we
add or remove a bit, only one other definition need change. */
typedef unsigned reg_syntax_t;
/* If this bit is not set, then \ inside a bracket expression is literal.
If set, then such a \ quotes the following character. */
#define RE_BACKSLASH_ESCAPE_IN_LISTS (1)
/* If this bit is not set, then + and ? are operators, and \+ and \? are
literals.
If set, then \+ and \? are operators and + and ? are literals. */
#define RE_BK_PLUS_QM (RE_BACKSLASH_ESCAPE_IN_LISTS << 1)
/* If this bit is set, then character classes are supported. They are:
[:alpha:], [:upper:], [:lower:], [:digit:], [:alnum:], [:xdigit:],
[:space:], [:print:], [:punct:], [:graph:], and [:cntrl:].
If not set, then character classes are not supported. */
#define RE_CHAR_CLASSES (RE_BK_PLUS_QM << 1)
/* If this bit is set, then ^ and $ are always anchors (outside bracket
expressions, of course).
If this bit is not set, then it depends:
^ is an anchor if it is at the beginning of a regular
expression or after an open-group or an alternation operator;
$ is an anchor if it is at the end of a regular expression, or
before a close-group or an alternation operator.
This bit could be (re)combined with RE_CONTEXT_INDEP_OPS, because
POSIX draft 11.2 says that * etc. in leading positions is undefined.
We already implemented a previous draft which made those constructs
invalid, though, so we haven't changed the code back. */
#define RE_CONTEXT_INDEP_ANCHORS (RE_CHAR_CLASSES << 1)
/* If this bit is set, then special characters are always special
regardless of where they are in the pattern.
If this bit is not set, then special characters are special only in
some contexts; otherwise they are ordinary. Specifically,
* + ? and intervals are only special when not after the beginning,
open-group, or alternation operator. */
#define RE_CONTEXT_INDEP_OPS (RE_CONTEXT_INDEP_ANCHORS << 1)
/* If this bit is set, then *, +, ?, and { cannot be first in an re or
immediately after an alternation or begin-group operator. */
#define RE_CONTEXT_INVALID_OPS (RE_CONTEXT_INDEP_OPS << 1)
/* If this bit is set, then . matches newline.
If not set, then it doesn't. */
#define RE_DOT_NEWLINE (RE_CONTEXT_INVALID_OPS << 1)
/* If this bit is set, then . doesn't match NUL.
If not set, then it does. */
#define RE_DOT_NOT_NULL (RE_DOT_NEWLINE << 1)
/* If this bit is set, nonmatching lists [^...] do not match newline.
If not set, they do. */
#define RE_HAT_LISTS_NOT_NEWLINE (RE_DOT_NOT_NULL << 1)
/* If this bit is set, either \{...\} or {...} defines an
interval, depending on RE_NO_BK_BRACES.
If not set, \{, \}, {, and } are literals. */
#define RE_INTERVALS (RE_HAT_LISTS_NOT_NEWLINE << 1)
/* If this bit is set, +, ? and | aren't recognized as operators.
If not set, they are. */
#define RE_LIMITED_OPS (RE_INTERVALS << 1)
/* If this bit is set, newline is an alternation operator.
If not set, newline is literal. */
#define RE_NEWLINE_ALT (RE_LIMITED_OPS << 1)
/* If this bit is set, then `{...}' defines an interval, and \{ and \}
are literals.
If not set, then `\{...\}' defines an interval. */
#define RE_NO_BK_BRACES (RE_NEWLINE_ALT << 1)
/* If this bit is set, (...) defines a group, and \( and \) are literals.
If not set, \(...\) defines a group, and ( and ) are literals. */
#define RE_NO_BK_PARENS (RE_NO_BK_BRACES << 1)
/* If this bit is set, then \<digit> matches <digit>.
If not set, then \<digit> is a back-reference. */
#define RE_NO_BK_REFS (RE_NO_BK_PARENS << 1)
/* If this bit is set, then | is an alternation operator, and \| is literal.
If not set, then \| is an alternation operator, and | is literal. */
#define RE_NO_BK_VBAR (RE_NO_BK_REFS << 1)
/* If this bit is set, then an ending range point collating higher
than the starting range point, as in [z-a], is invalid.
If not set, then when ending range point collates higher than the
starting range point, the range is ignored. */
#define RE_NO_EMPTY_RANGES (RE_NO_BK_VBAR << 1)
/* If this bit is set, then an unmatched ) is ordinary.
If not set, then an unmatched ) is invalid. */
#define RE_UNMATCHED_RIGHT_PAREN_ORD (RE_NO_EMPTY_RANGES << 1)
/* This global variable defines the particular regexp syntax to use (for
some interfaces). When a regexp is compiled, the syntax used is
stored in the pattern buffer, so changing this does not affect
already-compiled regexps. */
extern reg_syntax_t re_syntax_options;
/* Define combinations of the above bits for the standard possibilities.
(The [[[ comments delimit what gets put into the Texinfo file, so
don't delete them!) */
/* [[[begin syntaxes]]] */
#define RE_SYNTAX_EMACS 0
#define RE_SYNTAX_AWK \
(RE_BACKSLASH_ESCAPE_IN_LISTS | RE_DOT_NOT_NULL \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_NO_EMPTY_RANGES \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
#define RE_SYNTAX_POSIX_AWK \
(RE_SYNTAX_POSIX_EXTENDED | RE_BACKSLASH_ESCAPE_IN_LISTS)
#define RE_SYNTAX_GREP \
(RE_BK_PLUS_QM | RE_CHAR_CLASSES \
| RE_HAT_LISTS_NOT_NEWLINE | RE_INTERVALS \
| RE_NEWLINE_ALT)
#define RE_SYNTAX_EGREP \
(RE_CHAR_CLASSES | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_HAT_LISTS_NOT_NEWLINE \
| RE_NEWLINE_ALT | RE_NO_BK_PARENS \
| RE_NO_BK_VBAR)
#define RE_SYNTAX_POSIX_EGREP \
(RE_SYNTAX_EGREP | RE_INTERVALS | RE_NO_BK_BRACES)
/* P1003.2/D11.2, section 4.20.7.1, lines 5078ff. */
#define RE_SYNTAX_ED RE_SYNTAX_POSIX_BASIC
#define RE_SYNTAX_SED RE_SYNTAX_POSIX_BASIC
/* Syntax bits common to both basic and extended POSIX regex syntax. */
#define _RE_SYNTAX_POSIX_COMMON \
(RE_CHAR_CLASSES | RE_DOT_NEWLINE | RE_DOT_NOT_NULL \
| RE_INTERVALS | RE_NO_EMPTY_RANGES)
#define RE_SYNTAX_POSIX_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_BK_PLUS_QM)
/* Differs from ..._POSIX_BASIC only in that RE_BK_PLUS_QM becomes
RE_LIMITED_OPS, i.e., \? \+ \| are not recognized. Actually, this
isn't minimal, since other operators, such as \`, aren't disabled. */
#define RE_SYNTAX_POSIX_MINIMAL_BASIC \
(_RE_SYNTAX_POSIX_COMMON | RE_LIMITED_OPS)
#define RE_SYNTAX_POSIX_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INDEP_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_VBAR \
| RE_UNMATCHED_RIGHT_PAREN_ORD)
/* Differs from ..._POSIX_EXTENDED in that RE_CONTEXT_INVALID_OPS
replaces RE_CONTEXT_INDEP_OPS and RE_NO_BK_REFS is added. */
#define RE_SYNTAX_POSIX_MINIMAL_EXTENDED \
(_RE_SYNTAX_POSIX_COMMON | RE_CONTEXT_INDEP_ANCHORS \
| RE_CONTEXT_INVALID_OPS | RE_NO_BK_BRACES \
| RE_NO_BK_PARENS | RE_NO_BK_REFS \
| RE_NO_BK_VBAR | RE_UNMATCHED_RIGHT_PAREN_ORD)
/* [[[end syntaxes]]] */
/* Maximum number of duplicates an interval can allow. Some systems
(erroneously) define this in other header files, but we want our
value, so remove any previous define. */
#ifdef RE_DUP_MAX
#undef RE_DUP_MAX
#endif
#define RE_DUP_MAX ((1 << 15) - 1)
/* POSIX `cflags' bits (i.e., information for `regcomp'). */
/* If this bit is set, then use extended regular expression syntax.
If not set, then use basic regular expression syntax. */
#define REG_EXTENDED 1
/* If this bit is set, then ignore case when matching.
If not set, then case is significant. */
#define REG_ICASE (REG_EXTENDED << 1)
/* If this bit is set, then anchors do not match at newline
characters in the string.
If not set, then anchors do match at newlines. */
#define REG_NEWLINE (REG_ICASE << 1)
/* If this bit is set, then report only success or fail in regexec.
If not set, then returns differ between not matching and errors. */
#define REG_NOSUB (REG_NEWLINE << 1)
/* POSIX `eflags' bits (i.e., information for regexec). */
/* If this bit is set, then the beginning-of-line operator doesn't match
the beginning of the string (presumably because it's not the
beginning of a line).
If not set, then the beginning-of-line operator does match the
beginning of the string. */
#define REG_NOTBOL 1
/* Like REG_NOTBOL, except for the end-of-line. */
#define REG_NOTEOL (1 << 1)
/* If any error codes are removed, changed, or added, update the
`re_error_msg' table in regex.c. */
typedef enum
{
REG_NOERROR = 0, /* Success. */
REG_NOMATCH, /* Didn't find a match (for regexec). */
/* POSIX regcomp return error codes. (In the order listed in the
standard.) */
REG_BADPAT, /* Invalid pattern. */
REG_ECOLLATE, /* Not implemented. */
REG_ECTYPE, /* Invalid character class name. */
REG_EESCAPE, /* Trailing backslash. */
REG_ESUBREG, /* Invalid back reference. */
REG_EBRACK, /* Unmatched left bracket. */
REG_EPAREN, /* Parenthesis imbalance. */
REG_EBRACE, /* Unmatched \{. */
REG_BADBR, /* Invalid contents of \{\}. */
REG_ERANGE, /* Invalid range end. */
REG_ESPACE, /* Ran out of memory. */
REG_BADRPT, /* No preceding re for repetition op. */
/* Error codes we've added. */
REG_EEND, /* Premature end. */
REG_ESIZE, /* Compiled pattern bigger than 2^16 bytes. */
REG_ERPAREN /* Unmatched ) or \); not returned from regcomp. */
} reg_errcode_t;
/* This data structure represents a compiled pattern. Before calling
the pattern compiler, the fields `buffer', `allocated', `fastmap',
`translate', and `no_sub' can be set. After the pattern has been
compiled, the `re_nsub' field is available. All other fields are
private to the regex routines. */
struct re_pattern_buffer
{
/* [[[begin pattern_buffer]]] */
/* Space that holds the compiled pattern. It is declared as
`unsigned char *' because its elements are
sometimes used as array indexes. */
unsigned char *buffer;
/* Number of bytes to which `buffer' points. */
unsigned long allocated;
/* Number of bytes actually used in `buffer'. */
unsigned long used;
/* Syntax setting with which the pattern was compiled. */
reg_syntax_t syntax;
/* Pointer to a fastmap, if any, otherwise zero. re_search uses
the fastmap, if there is one, to skip over impossible
starting points for matches. */
char *fastmap;
/* Either a translate table to apply to all characters before
comparing them, or zero for no translation. The translation
is applied to a pattern when it is compiled and to a string
when it is matched. */
char *translate;
/* Number of subexpressions found by the compiler. */
size_t re_nsub;
/* Zero if this pattern cannot match the empty string, one else.
Well, in truth it's used only in `re_search_2', to see
whether or not we should use the fastmap, so we don't set
this absolutely perfectly; see `re_compile_fastmap' (the
`duplicate' case). */
unsigned can_be_null : 1;
/* If REGS_UNALLOCATED, allocate space in the `regs' structure
for `max (RE_NREGS, re_nsub + 1)' groups.
If REGS_REALLOCATE, reallocate space if necessary.
If REGS_FIXED, use what's there. */
#define REGS_UNALLOCATED 0
#define REGS_REALLOCATE 1
#define REGS_FIXED 2
unsigned regs_allocated : 2;
/* Set to zero when `regex_compile' compiles a pattern; set to one
by `re_compile_fastmap' if it updates the fastmap. */
unsigned fastmap_accurate : 1;
/* If set, `re_match_2' does not return information about
subexpressions. */
unsigned no_sub : 1;
/* If set, a beginning-of-line anchor doesn't match at the
beginning of the string. */
unsigned not_bol : 1;
/* Similarly for an end-of-line anchor. */
unsigned not_eol : 1;
/* If true, an anchor at a newline matches. */
unsigned newline_anchor : 1;
/* [[[end pattern_buffer]]] */
};
typedef struct re_pattern_buffer regex_t;
/* search.c (search_buffer) in Emacs needs this one opcode value. It is
defined both in `regex.c' and here. */
#define RE_EXACTN_VALUE 1
/* Type for byte offsets within the string. POSIX mandates this. */
typedef int regoff_t;
/* This is the structure we store register match data in. See
regex.texinfo for a full description of what registers match. */
struct re_registers
{
unsigned num_regs;
regoff_t *start;
regoff_t *end;
};
/* If `regs_allocated' is REGS_UNALLOCATED in the pattern buffer,
`re_match_2' returns information about at least this many registers
the first time a `regs' structure is passed. */
#ifndef RE_NREGS
#define RE_NREGS 30
#endif
/* POSIX specification for registers. Aside from the different names than
`re_registers', POSIX uses an array of structures, instead of a
structure of arrays. */
typedef struct
{
regoff_t rm_so; /* Byte offset from string's start to substring's start. */
regoff_t rm_eo; /* Byte offset from string's start to substring's end. */
} regmatch_t;
/* Declarations for routines. */
/* To avoid duplicating every routine declaration -- once with a
prototype (if we are ANSI), and once without (if we aren't) -- we
use the following macro to declare argument types. This
unfortunately clutters up the declarations a bit, but I think it's
worth it. */
#if __STDC__
#define _RE_ARGS(args) args
#else /* not __STDC__ */
#define _RE_ARGS(args) ()
#endif /* not __STDC__ */
/* Sets the current default syntax to SYNTAX, and return the old syntax.
You can also simply assign to the `re_syntax_options' variable. */
extern reg_syntax_t re_set_syntax _RE_ARGS ((reg_syntax_t syntax));
/* Compile the regular expression PATTERN, with length LENGTH
and syntax given by the global `re_syntax_options', into the buffer
BUFFER. Return NULL if successful, and an error string if not. */
extern const char *re_compile_pattern
_RE_ARGS ((const char *pattern, int length,
struct re_pattern_buffer *buffer));
/* Compile a fastmap for the compiled pattern in BUFFER; used to
accelerate searches. Return 0 if successful and -2 if was an
internal error. */
extern int re_compile_fastmap _RE_ARGS ((struct re_pattern_buffer *buffer));
/* Search in the string STRING (with length LENGTH) for the pattern
compiled into BUFFER. Start searching at position START, for RANGE
characters. Return the starting position of the match, -1 for no
match, or -2 for an internal error. Also return register
information in REGS (if REGS and BUFFER->no_sub are nonzero). */
extern int re_search
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, int range, struct re_registers *regs));
/* Like `re_search', but search in the concatenation of STRING1 and
STRING2. Also, stop searching at index START + STOP. */
extern int re_search_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, int range, struct re_registers *regs, int stop));
/* Like `re_search', but return how many characters in STRING the regexp
in BUFFER matched, starting at position START. */
extern int re_match
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string,
int length, int start, struct re_registers *regs));
/* Relates to `re_match' as `re_search_2' relates to `re_search'. */
extern int re_match_2
_RE_ARGS ((struct re_pattern_buffer *buffer, const char *string1,
int length1, const char *string2, int length2,
int start, struct re_registers *regs, int stop));
/* Set REGS to hold NUM_REGS registers, storing them in STARTS and
ENDS. Subsequent matches using BUFFER and REGS will use this memory
for recording register information. STARTS and ENDS must be
allocated with malloc, and must each be at least `NUM_REGS * sizeof
(regoff_t)' bytes long.
If NUM_REGS == 0, then subsequent matches should allocate their own
register data.
Unless this function is called, the first search or match using
PATTERN_BUFFER will allocate its own register data, without
freeing the old data. */
extern void re_set_registers
_RE_ARGS ((struct re_pattern_buffer *buffer, struct re_registers *regs,
unsigned num_regs, regoff_t *starts, regoff_t *ends));
/* 4.2 bsd compatibility. */
extern char *re_comp _RE_ARGS ((const char *));
extern int re_exec _RE_ARGS ((const char *));
/* POSIX compatibility. */
extern int regcomp _RE_ARGS ((regex_t *preg, const char *pattern, int cflags));
extern int regexec
_RE_ARGS ((const regex_t *preg, const char *string, size_t nmatch,
regmatch_t pmatch[], int eflags));
extern size_t regerror
_RE_ARGS ((int errcode, const regex_t *preg, char *errbuf,
size_t errbuf_size));
extern void regfree _RE_ARGS ((regex_t *preg));
#ifdef __cplusplus
}
#endif
#endif /* not __REGEXP_LIBRARY_H__ */
/*
Local variables:
make-backup-files: t
version-control: t
trim-versions-without-asking: nil
End:
*/

0
windows/unistd.h Normal file
View File

36
windows/version.rc Normal file
View File

@ -0,0 +1,36 @@
#ifndef _MAC
VS_VERSION_INFO VERSIONINFO
FILEVERSION 0,8,8,0
PRODUCTVERSION 0,8,8,0
FILEFLAGSMASK 0x3fL
#ifdef _DEBUG
FILEFLAGS 0x1L
#else
FILEFLAGS 0x0L
#endif
FILEOS 0x4L
FILETYPE 0x1L
FILESUBTYPE 0x0L
BEGIN
BLOCK "StringFileInfo"
BEGIN
BLOCK "040904b0"
BEGIN
VALUE "CompanyName", "Null Team Impex SRL\0"
VALUE "FileDescription", "Yet Another Telephony Engine\0"
VALUE "FileVersion", "0, 8, 8\0"
VALUE "InternalName", "YATE\0"
VALUE "LegalCopyright", "Copyright © 2005 Null Team\0"
VALUE "OriginalFilename", "Yate.exe\0"
VALUE "ProductName", "YATE\0"
VALUE "ProductVersion", "0, 8, 8\0"
END
END
BLOCK "VarFileInfo"
BEGIN
VALUE "Translation", 0x409, 1200
END
END
#endif // !_MAC

20
windows/yateversn.h Normal file
View File

@ -0,0 +1,20 @@
/**
* yateversn.h
* This file is part of the YATE Project http://YATE.null.ro
*
* This is a generated file. You should never need to modify it.
* Take a look at the source file yateversn.h.in instead.
*/
#ifndef __YATEVERSN_H
#define __YATEVERSN_H
#define YATE_MAJOR 0
#define YATE_MINOR 8
#define YATE_BUILD 8
#define YATE_MAJOR_S "0"
#define YATE_MINOR_S "8"
#define YATE_BUILD_S "8"
#define YATE_VERSION "0.8.8"
#endif /* __YATEVERSN_H */

View File

@ -29,6 +29,36 @@
#include <stddef.h>
#ifndef _WINDOWS
#ifdef WIN32
#define _WINDOWS
#endif
#endif
#ifdef _WINDOWS
typedef signed __int32 int32_t;
typedef unsigned __int32 u_int32_t;
typedef signed __int64 int64_t;
typedef unsigned __int64 u_int64_t;
#define vsnprintf _vsnprintf
#define snprintf _snprintf
#define strcasecmp _stricmp
#define strdup _strdup
#define random rand
#ifdef LIBYATE_EXPORTS
#define YATE_API __declspec(dllexport)
#else
#define YATE_API __declspec(dllimport)
#endif
#else
#define YATE_API
#endif
struct timeval;
/**
@ -46,13 +76,13 @@ namespace TelEngine {
* Abort execution (and coredump if allowed) if the abort flag is set.
* This function may not return.
*/
void abortOnBug();
YATE_API void abortOnBug();
/**
* Set the abort on bug flag. The default flag state is false.
* @return The old state of the flag.
*/
bool abortOnBug(bool doAbort);
YATE_API bool abortOnBug(bool doAbort);
/**
* Standard debugging levels.
@ -72,28 +102,28 @@ enum DebugLevel {
* Retrive the current global debug level
* @return The current global debug level
*/
int debugLevel();
YATE_API int debugLevel();
/**
* Set the current global debug level.
* @param level The desired debug level
* @return The new global debug level (may be different)
*/
int debugLevel(int level);
YATE_API int debugLevel(int level);
/**
* Check if debugging output should be generated
* @param level The global debug level we are testing
* @return True if messages should be output, false otherwise
*/
bool debugAt(int level);
YATE_API bool debugAt(int level);
/**
* Holds a local debugging level that can be modified separately from the
* global debugging
* @short A holder for a debug level
*/
class DebugEnabler
class YATE_API DebugEnabler
{
public:
/**
@ -196,28 +226,45 @@ bool NDebug(int level, const char* format, ...);
bool NDebug(const char* facility, int level, const char* format, ...);
#endif
#ifdef _DEBUG
#undef DEBUG
#define DEBUG
#endif
#ifdef XDEBUG
#undef DEBUG
#define DEBUG
#endif
#ifdef DEBUG
#define DDebug(arg...) Debug(arg)
#define DDebug Debug
#else
#ifdef _WINDOWS
#define DDebug
#else
#define DDebug(arg...)
#endif
#endif
#ifdef XDEBUG
#define XDebug(arg...) Debug(arg)
#define XDebug Debug
#else
#ifdef _WINDOWS
#define XDebug
#else
#define XDebug(arg...)
#endif
#endif
#ifndef NDEBUG
#define NDebug(arg...) Debug(arg)
#define NDebug Debug
#else
#ifdef _WINDOWS
#define NDebug
#else
#define NDebug(arg...)
#endif
#endif
/**
* Outputs a debug string.
@ -225,7 +272,7 @@ bool NDebug(const char* facility, int level, const char* format, ...);
* @param format A printf() style format string
* @return True if message was output, false otherwise
*/
bool Debug(int level, const char* format, ...) FORMAT_CHECK(2);
YATE_API bool Debug(int level, const char* format, ...) FORMAT_CHECK(2);
/**
* Outputs a debug string for a specific facility.
@ -234,7 +281,7 @@ bool Debug(int level, const char* format, ...) FORMAT_CHECK(2);
* @param format A printf() style format string
* @return True if message was output, false otherwise
*/
bool Debug(const char* facility, int level, const char* format, ...) FORMAT_CHECK(3);
YATE_API bool Debug(const char* facility, int level, const char* format, ...) FORMAT_CHECK(3);
/**
* Outputs a debug string for a specific facility.
@ -243,14 +290,14 @@ bool Debug(const char* facility, int level, const char* format, ...) FORMAT_CHEC
* @param format A printf() style format string
* @return True if message was output, false otherwise
*/
bool Debug(const DebugEnabler* local, int level, const char* format, ...) FORMAT_CHECK(3);
YATE_API bool Debug(const DebugEnabler* local, int level, const char* format, ...) FORMAT_CHECK(3);
/**
* Outputs a string to the debug console with formatting
* @param facility Facility that outputs the message
* @param format A printf() style format string
*/
void Output(const char* format, ...) FORMAT_CHECK(1);
YATE_API void Output(const char* format, ...) FORMAT_CHECK(1);
/**
* This class is used as an automatic variable that logs messages on creation
@ -258,7 +305,7 @@ void Output(const char* format, ...) FORMAT_CHECK(1);
* IMPORTANT: the name is not copied so it should best be static.
* @short An object that logs messages on creation and destruction
*/
class Debugger
class YATE_API Debugger
{
public:
/**
@ -316,7 +363,7 @@ class String;
/**
* An object with just a public virtual destructor
*/
class GenObject
class YATE_API GenObject
{
public:
/**
@ -343,7 +390,7 @@ public:
* A reference counted object.
* Whenever using multiple inheritance you should inherit this class virtually.
*/
class RefObject : public GenObject
class YATE_API RefObject : public GenObject
{
public:
/**
@ -397,7 +444,7 @@ private:
* Please don't use this class directly, use @ref RefPointer instead.
* @short Internal helper class
*/
class RefPointerBase
class YATE_API RefPointerBase
{
protected:
/**
@ -503,7 +550,7 @@ public:
* A simple single-linked object list handling class
* @short An object list class
*/
class ObjList : public GenObject
class YATE_API ObjList : public GenObject
{
public:
/**
@ -648,7 +695,7 @@ class StringMatchPrivate;
* for fast inequality check.
* @short A C-style string handling class
*/
class String : public GenObject
class YATE_API String : public GenObject
{
public:
/**
@ -1184,17 +1231,17 @@ inline bool null(const char* str)
/**
* Concatenation operator for strings.
*/
String operator+(const String& s1, const String& s2);
YATE_API String operator+(const String& s1, const String& s2);
/**
* Concatenation operator for strings.
*/
String operator+(const String& s1, const char* s2);
YATE_API String operator+(const String& s1, const char* s2);
/**
* Concatenation operator for strings.
*/
String operator+(const char* s1, const String& s2);
YATE_API String operator+(const char* s1, const String& s2);
/**
* Prevent careless programmers from overwriting the string
@ -1218,7 +1265,7 @@ inline const char *strcat(String& dest, const char* src)
* @param defvalue Value to return if lookup and conversion fail
* @param base Default base to use to convert to number
*/
int lookup(const char* str, const TokenDict* tokens, int defvalue = 0, int base = 0);
YATE_API int lookup(const char* str, const TokenDict* tokens, int defvalue = 0, int base = 0);
/**
* Utility function to look up a number in a token table
@ -1226,14 +1273,14 @@ int lookup(const char* str, const TokenDict* tokens, int defvalue = 0, int base
* @param tokens Pointer to the token table
* @param defvalue Value to return if lookup fails
*/
const char* lookup(int value, const TokenDict* tokens, const char* defvalue = 0);
YATE_API const char* lookup(int value, const TokenDict* tokens, const char* defvalue = 0);
/**
* A regular expression matching class.
* @short A regexp matching class
*/
class Regexp : public String
class YATE_API Regexp : public String
{
friend class String;
public:
@ -1324,7 +1371,7 @@ private:
* A string class with a hashed string name
* @short A named string class.
*/
class NamedString : public String
class YATE_API NamedString : public String
{
public:
/**
@ -1362,7 +1409,7 @@ private:
* The Time class holds a time moment with microsecond accuracy
* @short A time holding class
*/
class Time
class YATE_API Time
{
public:
/**
@ -1376,7 +1423,7 @@ public:
* Constructs a Time object from a given time
* @param usec Time in microseconds
*/
inline Time(unsigned long long usec)
inline Time(u_int64_t usec)
: m_time(usec)
{ }
@ -1399,45 +1446,45 @@ public:
* Get time in seconds
* @return Time in seconds since the Epoch
*/
inline unsigned long sec() const
{ return (m_time+500000) / 1000000; }
inline u_int32_t sec() const
{ return (u_int32_t)((m_time+500000) / 1000000); }
/**
* Get time in milliseconds
* @return Time in milliseconds since the Epoch
*/
inline unsigned long long msec() const
inline u_int64_t msec() const
{ return (m_time+500) / 1000; }
/**
* Get time in microseconds
* @return Time in microseconds since the Epoch
*/
inline unsigned long long usec() const
inline u_int64_t usec() const
{ return m_time; }
/**
* Conversion to microseconds operator
*/
inline operator unsigned long long() const
inline operator u_int64_t() const
{ return m_time; }
/**
* Assignment operator.
*/
inline Time& operator=(unsigned long long usec)
inline Time& operator=(u_int64_t usec)
{ m_time = usec; return *this; }
/**
* Offsetting operator.
*/
inline Time& operator+=(long long delta)
inline Time& operator+=(int64_t delta)
{ m_time += delta; return *this; }
/**
* Offsetting operator.
*/
inline Time& operator-=(long long delta)
inline Time& operator-=(int64_t delta)
{ m_time -= delta; return *this; }
/**
@ -1452,30 +1499,30 @@ public:
* @param tv Pointer to the timeval structure
* @param usec Time to convert to timeval
*/
static void toTimeval(struct timeval* tv, unsigned long long usec);
static void toTimeval(struct timeval* tv, u_int64_t usec);
/**
* Convert time in a timeval struct to microseconds
* @param tv Pointer to the timeval structure
* @return Corresponding time in microseconds or zero if tv is NULL
*/
static unsigned long long fromTimeval(struct timeval* tv);
static u_int64_t fromTimeval(struct timeval* tv);
/**
* Get the current system time in microseconds
* @return Time in microseconds since the Epoch
*/
static unsigned long long now();
static u_int64_t now();
private:
unsigned long long m_time;
u_int64_t m_time;
};
/**
* A class to compute and check MD5 digests
* @short A standard MD5 digest calculator
*/
class MD5
class YATE_API MD5
{
public:
/**
@ -1564,7 +1611,7 @@ private:
* This class holds a named list of named strings
* @short A named string container class
*/
class NamedList : public String
class YATE_API NamedList : public String
{
public:
/**
@ -1652,7 +1699,7 @@ private:
* A class for parsing and quickly accessing INI style configuration files
* @short Configuration file handling
*/
class Configuration : public String
class YATE_API Configuration : public String
{
public:
/**
@ -1809,7 +1856,7 @@ class MessageDispatcher;
* This class holds the messages that are moved around in the engine.
* @short A message container class
*/
class Message : public NamedList
class YATE_API Message : public NamedList
{
friend class MessageDispatcher;
public:
@ -1920,7 +1967,7 @@ private:
* and priority among other handlers.
* @short A message handler
*/
class MessageHandler : public String
class YATE_API MessageHandler : public String
{
friend class MessageDispatcher;
public:
@ -1959,7 +2006,7 @@ private:
* A multiple message receiver to be invoked by a message relay
* @short A multiple message receiver
*/
class MessageReceiver : public GenObject
class YATE_API MessageReceiver : public GenObject
{
public:
/**
@ -1975,7 +2022,7 @@ public:
* A message handler that allows to relay several messages to a single receiver
* @short A message handler relay
*/
class MessageRelay : public MessageHandler
class YATE_API MessageRelay : public MessageHandler
{
public:
/**
@ -2008,7 +2055,7 @@ class ThreadPrivate;
* A simple mutual exclusion for locking access between threads
* @short Mutex support
*/
class Mutex
class YATE_API Mutex
{
friend class MutexPrivate;
public:
@ -2046,7 +2093,7 @@ public:
* @param maxait Time in microseconds to wait for the mutex, -1 wait forever
* @return True if successfully locked, false on failure
*/
bool lock(long long int maxwait = -1);
bool lock(int64_t maxwait = -1);
/**
* Unlock the mutex, does never wait
@ -2065,7 +2112,7 @@ public:
* @param maxait Time in microseconds to wait for the mutex, -1 wait forever
* @return True if successfully locked and unlocked, false on failure
*/
bool check(long long int maxwait = -1);
bool check(int64_t maxwait = -1);
/**
* Check if this mutex is recursive or not
@ -2095,7 +2142,7 @@ private:
* creation and unlocks it on destruction - typically when exiting a block
* @short Ephemeral mutex locking object
*/
class Lock
class YATE_API Lock
{
public:
/**
@ -2103,7 +2150,7 @@ public:
* @param mutex Reference to the mutex to lock
* @param maxait Time in microseconds to wait for the mutex, -1 wait forever
*/
inline Lock(Mutex& mutex, long long int maxwait = -1)
inline Lock(Mutex& mutex, int64_t maxwait = -1)
{ m_mutex = mutex.lock(maxwait) ? &mutex : 0; }
/**
@ -2111,7 +2158,7 @@ public:
* @param mutex Pointer to the mutex to lock
* @param maxait Time in microseconds to wait for the mutex, -1 wait forever
*/
inline Lock(Mutex* mutex, long long int maxwait = -1)
inline Lock(Mutex* mutex, int64_t maxwait = -1)
{ m_mutex = (mutex && mutex->lock(maxwait)) ? mutex : 0; }
/**
@ -2151,7 +2198,7 @@ private:
* different execution thread.
* @short Encapsulates a runnable task
*/
class Runnable
class YATE_API Runnable
{
public:
/**
@ -2167,7 +2214,7 @@ public:
* blocking one execution thread while allowing other to run.
* @short Thread support class
*/
class Thread : public Runnable
class YATE_API Thread : public Runnable
{
friend class ThreadPrivate;
public:
@ -2199,6 +2246,24 @@ public:
*/
static void yield();
/**
* Sleep for a number of seconds
* @param sec Number of seconds to sleep
*/
static void sleep(unsigned int sec);
/**
* Sleep for a number of milliseconds
* @param sec Number of milliseconds to sleep
*/
static void msleep(unsigned long msec);
/**
* Sleep for a number of microseconds
* @param sec Number of microseconds to sleep
*/
static void usleep(unsigned long usec);
/**
* Get a pointer to the currently running thread
* @return A pointer to the current thread or NULL for main thread
@ -2255,7 +2320,7 @@ private:
* messages that are typically dispatched by a separate thread.
* @short A message dispatching hub
*/
class MessageDispatcher : public GenObject
class YATE_API MessageDispatcher : public GenObject
{
public:
/**
@ -2344,7 +2409,7 @@ private:
*</pre>
* @short Plugin support
*/
class Plugin : public GenObject
class YATE_API Plugin : public GenObject
{
public:
/**
@ -2390,7 +2455,7 @@ public:
*
* @short Engine globals
*/
class Engine
class YATE_API Engine
{
friend class EnginePrivate;
public:
@ -2426,8 +2491,7 @@ public:
/**
* The configuration directory path
*/
inline static String configFile(const char* name)
{ return s_cfgpath+"/"+name+s_cfgsuffix; }
static String configFile(const char* name);
/**
* The configuration directory path

View File

@ -134,7 +134,7 @@ struct TranslatorCaps {
* This is just a holder for the list of media formats supported by Yate
* @short A repository for media formats
*/
class FormatRepository
class YATE_API FormatRepository
{
private:
FormatRepository();
@ -166,7 +166,7 @@ public:
* The DataBlock holds a data buffer with no specific formatting.
* @short A class that holds just a block of raw data
*/
class DataBlock : public GenObject
class YATE_API DataBlock : public GenObject
{
public:
@ -299,7 +299,7 @@ private:
/**
* A generic data handling object
*/
class DataNode : public RefObject
class YATE_API DataNode : public RefObject
{
public:
/**
@ -385,7 +385,7 @@ protected:
/**
* A data consumer
*/
class DataConsumer : public DataNode
class YATE_API DataConsumer : public DataNode
{
friend class DataSource;
public:
@ -433,7 +433,7 @@ private:
/**
* A data source
*/
class DataSource : public DataNode
class YATE_API DataSource : public DataNode
{
friend class DataTranslator;
public:
@ -504,7 +504,7 @@ protected:
/**
* A data source with a thread of its own
*/
class ThreadedSource : public DataSource
class YATE_API ThreadedSource : public DataSource
{
friend class ThreadedSourcePrivate;
public:
@ -564,7 +564,7 @@ private:
* conversion of data from one type to another.
* @short An unidirectional data translator (codec)
*/
class DataTranslator : public DataConsumer
class YATE_API DataTranslator : public DataConsumer
{
friend class TranslatorFactory;
public:
@ -666,7 +666,7 @@ private:
* conversion of data from one type to another
* @short An unidirectional data translator (codec)
*/
class TranslatorFactory : public GenObject
class YATE_API TranslatorFactory : public GenObject
{
public:
TranslatorFactory()
@ -695,7 +695,7 @@ public:
* or bidirectional data transfers
* @short A data transfer endpoint capable of sending and/or receiving data
*/
class DataEndpoint : public RefObject
class YATE_API DataEndpoint : public RefObject
{
public:
@ -814,13 +814,13 @@ private:
* Module is a descendent of Plugin specialized in implementing modules
* @short A Plugin that implements a module
*/
class Module : public Plugin, public Mutex, public MessageReceiver, public DebugEnabler
class YATE_API Module : public Plugin, public Mutex, public MessageReceiver, public DebugEnabler
{
private:
bool m_init;
String m_name;
String m_type;
unsigned long long m_changed;
u_int64_t m_changed;
static unsigned int s_delay;
public:
@ -949,7 +949,7 @@ private:
* A class that holds common channel related features (a.k.a. call leg)
* @short An abstract communication channel
*/
class Channel : public RefObject, public DebugEnabler
class YATE_API Channel : public RefObject, public DebugEnabler
{
friend class Driver;
friend class Router;
@ -1226,7 +1226,7 @@ private:
* Driver is a module specialized for implementing channel drivers
* @short A Channel driver module
*/
class Driver : public Module
class YATE_API Driver : public Module
{
friend class Router;
@ -1352,7 +1352,7 @@ private:
* Asynchronous call routing thread
* @short Call routing thread
*/
class Router : public Thread
class YATE_API Router : public Thread
{
private:
Driver* m_driver;