intercom.c
上传用户:sy_wanhua
上传日期:2013-07-25
资源大小:3048k
文件大小:1k
源码类别:

流媒体/Mpeg4/MP4

开发平台:

C/C++

  1. #include <sys/types.h>
  2. #include <stdio.h>
  3. #include <stdlib.h>
  4. #include <strings.h>
  5. #include <sys/ioctl.h>
  6. #include <unistd.h>
  7. #include <fcntl.h>
  8. #include "ixjuser.h"
  9. int main(int argc, char *argv[])
  10. {
  11.   int ixj1,ixj2;
  12.   int b1, b2, codec;
  13.   char pname1[80], pname2[80];
  14.   sprintf(pname1, "/dev/ixj%s", argv[1]);
  15.   sprintf(pname2, "/dev/ixj%s", argv[2]);
  16.   codec = atoi(argv[3]);
  17.   ixj1 = open(pname1, O_RDWR);
  18.   ixj2 = open(pname2, O_RDWR);
  19.   b1 = atoi(argv[1]);
  20.   b2 = atoi(argv[2]);
  21.   if(ixj1 <= 0)
  22.   {
  23.     printf("Open failed %sn", pname1);
  24.     exit(0);
  25.   }  
  26.   if(ixj2 <= 0)
  27.   {
  28.     printf("Open failed %sn", pname2);
  29.     exit(0);
  30.   }  
  31.   if(!ioctl(ixj1, IXJCTL_RING))
  32.   {
  33.     exit(0);
  34.   }
  35.   if(!ioctl(ixj2, IXJCTL_RING))
  36.   {
  37.     exit(0);
  38.   }
  39.   ioctl(ixj1, IXJCTL_REC_CODEC, codec);
  40.   ioctl(ixj1, IXJCTL_PLAY_CODEC, codec);
  41.   ioctl(ixj2, IXJCTL_REC_CODEC, codec);
  42.   ioctl(ixj2, IXJCTL_PLAY_CODEC, codec);
  43.   if(!ioctl(ixj1, IXJCTL_INTERCOM_START, b2))
  44.   {
  45.     printf("Intercom mode on %d to %dn", b1, b2);
  46.     while(ioctl(ixj1, IXJCTL_HOOKSTATE) && ioctl(ixj2, IXJCTL_HOOKSTATE)){}
  47. //    getchar();
  48.     ioctl(ixj1,  IXJCTL_INTERCOM_STOP, b2);
  49.     printf("Intercom mode offn");
  50.   }
  51.   else
  52.   {
  53.     printf("Intercom Failuren");
  54.   }
  55.   close(ixj1);
  56.   close(ixj2);
  57. }