X-Git-Url: http://git.eversberg.eu/gitweb.cgi?p=lcr.git;a=blobdiff_plain;f=endpointapp.cpp;h=da797de148d3c916d56fdda7c24c925c08ca8c42;hp=0ebd482d628ce5bbf86d7b73e60d6ea5d3d2890d;hb=f854931ffbee9464b278c433c4fdc7c3ea5af2fb;hpb=0efcf371b4a61fa1376e83d2b7404aeb47a36e26 diff --git a/endpointapp.cpp b/endpointapp.cpp index 0ebd482..da797de 100644 --- a/endpointapp.cpp +++ b/endpointapp.cpp @@ -14,9 +14,10 @@ /* * EndpointApp constructor */ -EndpointApp::EndpointApp(class Endpoint *epoint, int origin) +EndpointApp::EndpointApp(class Endpoint *epoint, int origin, int type) { ea_endpoint = epoint; + ea_type = type; classuse++; } @@ -28,20 +29,38 @@ EndpointApp::~EndpointApp(void) classuse--; } -int EndpointApp::handler(void) -{ - return(0); -} - /* mini application for test purpose only */ -void EndpointApp::ea_message_port(unsigned long port_id, int message_type, union parameter *param) +void EndpointApp::ea_message_port(unsigned int port_id, int message_type, union parameter *param) { PDEBUG(DEBUG_EPOINT, "%s: Spare function.\n", __FUNCTION__); } -void EndpointApp::ea_message_join(unsigned long join_id, int message_type, union parameter *param) +void EndpointApp::ea_message_join(unsigned int join_id, int message_type, union parameter *param) { PDEBUG(DEBUG_EPOINT, "%s: Spare function.\n", __FUNCTION__); } + +/* create endpoint app */ +class EndpointApp *new_endpointapp(class Endpoint *epoint, int origin, int type) +{ + class EndpointApp *app = NULL; + + switch (type) { + case EAPP_TYPE_PBX: + app = new EndpointAppPBX(epoint, origin); + break; + case EAPP_TYPE_BRIDGE: + app = new EndpointAppBridge(epoint, origin); + break; + } + + if (!app) + FATAL("Failed to create endpoint APP (type %d)\n", type); + + epoint->ep_app_type = type; + epoint->ep_app = app; + + return app; +}