⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 playtone.c

📁 mgcp协议源代码。支持多种编码:g711
💻 C
字号:
#include <sys/types.h>#include <stdio.h>#include <stdlib.h>#include <strings.h>#include <sys/ioctl.h>#include <unistd.h>#include <fcntl.h>#include "ixjuser.h"int main(int argc, char *argv[]){  int ixj1, hook, m_hook, digit, state, cnt;  char pname1[80], pname2[80];  sprintf(pname1, "/dev/ixj%s", argv[1]);  ixj1 = open(pname1, O_RDWR);  if(ixj1 <= 0)  {    printf("Open failed %s\n", pname1);    exit(0);  }    hook = m_hook = ioctl(ixj1, IXJCTL_HOOKSTATE);  printf("hook state %d\n", hook);//  if(!ioctl(ixj1, IXJCTL_RING))//    exit(0);  hook = ioctl(ixj1, IXJCTL_HOOKSTATE);  while(!hook)  {    hook = ioctl(ixj1, IXJCTL_HOOKSTATE);  }  printf("hook state %d\n", hook);  ioctl(ixj1, IXJCTL_SET_TONE_ON_TIME, 0x0168);  ioctl(ixj1, IXJCTL_SET_TONE_OFF_TIME, 0x0168);  printf("Tone on period = %4.4x\n", ioctl(ixj1, IXJCTL_GET_TONE_ON_TIME));  printf("Tone off period = %4.4x\n", ioctl(ixj1, IXJCTL_GET_TONE_OFF_TIME));  fflush(stdout);  ioctl(ixj1, IXJCTL_AEC_STOP);  for(digit = 1;digit < 13;digit++)  {    ioctl(ixj1, IXJCTL_PLAY_TONE, digit);    state = ioctl(ixj1, IXJCTL_GET_TONE_STATE);    printf("state = %d\t", state);    fflush(stdout);    cnt = 0;        while(state)    {      cnt++;      usleep(40);      state = ioctl(ixj1, IXJCTL_GET_TONE_STATE);    }    printf("cnt = %d\n", cnt);    fflush(stdout);  }//    ioctl(ixj1, IXJCTL_PLAY_TONE, digit);  getchar();  close(ixj1);}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -