summaryrefslogtreecommitdiffstats
path: root/vbox.cpp
diff options
context:
space:
mode:
authorSuper User2007-05-15 22:59:29 +0200
committerSuper User2007-05-15 22:59:29 +0200
commitfd2045584f7084d209607f4d717a66bea9afe88e (patch)
tree8118fb0cb231a4546d43a13cb85d8b80992c9d64 /vbox.cpp
parentbackup work (diff)
downloadlcr-fd2045584f7084d209607f4d717a66bea9afe88e.tar.gz
lcr-fd2045584f7084d209607f4d717a66bea9afe88e.tar.xz
lcr-fd2045584f7084d209607f4d717a66bea9afe88e.zip
backup
Diffstat (limited to 'vbox.cpp')
-rw-r--r--vbox.cpp66
1 files changed, 16 insertions, 50 deletions
diff --git a/vbox.cpp b/vbox.cpp
index 2a96962..a059898 100644
--- a/vbox.cpp
+++ b/vbox.cpp
@@ -62,9 +62,13 @@ int VBoxPort::handler(void)
{
struct message *message;
unsigned long tosend;
- signed short buffer[128<<1];
+ signed short buffer[128];
time_t currenttime;
class Endpoint *epoint;
+ int ret;
+
+ if ((ret = Port::handler()))
+ return(ret);
if (p_vbox_record_start && p_vbox_record_limit)
{
@@ -98,7 +102,7 @@ int VBoxPort::handler(void)
/* wait for more */
if (tosend < 32)
- return(0);
+ return(Port::handler());
/* too many samples, so we just process 128 bytes until the next call of handler() */
if (tosend > 128)
@@ -113,23 +117,7 @@ int VBoxPort::handler(void)
/* if announcement is currently played, send audio data */
if (p_vbox_announce_fh >=0)
{
- /* read from announcement file */
- switch(p_vbox_announce_codec)
- {
- case CODEC_LAW:
- tosend = read_tone(p_vbox_announce_fh, buffer, p_vbox_announce_codec, tosend, p_vbox_announce_size, &p_vbox_announce_left, 1);
- break;
-
- case CODEC_MONO:
- case CODEC_STEREO:
- case CODEC_8BIT:
- tosend = read_tone(p_vbox_announce_fh, buffer, p_vbox_announce_codec, tosend, p_vbox_announce_size, &p_vbox_announce_left, 1);
- break;
-
- default:
- PERROR("correct codec not given.\n");
- exit(-1);
- }
+ tosend = read_tone(p_vbox_announce_fh, buffer, p_vbox_announce_codec, tosend, p_vbox_announce_size, &p_vbox_announce_left, 1);
if (tosend <= 0)
{
/* end of file */
@@ -175,34 +163,12 @@ int VBoxPort::handler(void)
}
} else
{
- switch(p_vbox_announce_codec)
- {
- case CODEC_LAW:
- message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_DATA);
- message->param.data.compressed = 1;
- message->param.data.port_type = p_type;
- message->param.data.port_id = p_serial;
- message->param.data.len = tosend;
- memcpy(message->param.data.data, buffer, tosend);
- message_put(message);
- break;
-
- case CODEC_MONO:
- case CODEC_STEREO:
- case CODEC_8BIT:
- message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_DATA);
- message->param.data.compressed = 0;
- message->param.data.port_type = p_type;
- message->param.data.port_id = p_serial;
- message->param.data.len = tosend<<1;
- memcpy(message->param.data.data, buffer, tosend<<1);
- message_put(message);
- break;
-
- default:
- PERROR("correct announce_codec not given.\n");
- exit(-1);
- }
+ message = message_create(p_serial, ACTIVE_EPOINT(p_epointlist), PORT_TO_EPOINT, MESSAGE_DATA);
+ message->param.data.port_type = p_type;
+ message->param.data.port_id = p_serial;
+ message->param.data.len = tosend;
+ memcpy(message->param.data.data, buffer, tosend);
+ message_put(message);
}
}
@@ -221,6 +187,9 @@ int VBoxPort::message_epoint(unsigned long epoint_id, int message_id, union para
char filename[256], *c;
class EndpointAppPBX *eapp;
+ if (Port::message_epoint(epoint_id, message_id, param))
+ return(1);
+
epoint = find_epoint_id(epoint_id);
if (!epoint)
{
@@ -228,9 +197,6 @@ int VBoxPort::message_epoint(unsigned long epoint_id, int message_id, union para
return(0);
}
- if (Port::message_epoint(epoint_id, message_id, param))
- return(1);
-
switch(message_id)
{
case MESSAGE_DISCONNECT: /* call has been disconnected */