From a9ebcff6945d7864e606c01d5b5fa80d466c6ec3 Mon Sep 17 00:00:00 2001 From: Jim Dixon <telesistant@hotmail.com> Date: Wed, 22 Dec 2004 05:02:00 +0000 Subject: [PATCH] Made changes to go with pciradio zaptel driver changes git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@4525 65c4cc65-6c06-0410-ace0-fbb531ad65f3 --- apps/app_rpt.c | 33 +++++++++++++++++++++++++-------- 1 file changed, 25 insertions(+), 8 deletions(-) diff --git a/apps/app_rpt.c b/apps/app_rpt.c index 1eb8782346..702f465e28 100755 --- a/apps/app_rpt.c +++ b/apps/app_rpt.c @@ -329,18 +329,13 @@ static int play_tone_pair(struct ast_channel *chan, int f1, int f2, int duration { int flags = ZT_IOMUX_WRITEEMPTY; int res; - struct ast_frame *f; if ((res = ast_tonepair_start(chan, f1, f2, duration, amplitude))) return res; while(chan->generatordata) { - f = ast_read(chan); - if (f) - ast_frfree(f); - else - return -1; - } + if (ast_safe_sleep(chan,1)) return -1; + } /* * Wait for the zaptel driver to physically write the tone blocks to the hardware @@ -2577,7 +2572,7 @@ char *s; * Shift out a formatted serial bit stream */ -static void rbi_out(struct rpt *myrpt,unsigned char *data) +static void rbi_out_parallel(struct rpt *myrpt,unsigned char *data) { int i,j; unsigned char od,d; @@ -2603,6 +2598,28 @@ static void rbi_out(struct rpt *myrpt,unsigned char *data) for(delayvar = 1; delayvar < 50000; delayvar++); } +static void rbi_out(struct rpt *myrpt,unsigned char *data) +{ +struct zt_radio_param r; + + memset(&r,0,sizeof(struct zt_radio_param)); + r.radpar = ZT_RADPAR_REMMODE; + r.data = ZT_RADPAR_REM_RBI1; + /* if setparam ioctl fails, its probably not a pciradio card */ + if (ioctl(myrpt->rxchannel->fds[0],ZT_RADIO_SETPARAM,&r) == -1) + { + rbi_out_parallel(myrpt,data); + return; + } + r.radpar = ZT_RADPAR_REMCOMMAND; + memcpy(&r.data,data,5); + if (ioctl(myrpt->rxchannel->fds[0],ZT_RADIO_SETPARAM,&r) == -1) + { + ast_log(LOG_WARNING,"Cannot send RBI command for channel %s\n",myrpt->rxchannel->name); + return; + } +} + static int setrbi(struct rpt *myrpt) { char tmp[MAXREMSTR] = "",rbicmd[5],*s; -- GitLab