コード例 #1
0
ファイル: tcsip.cpp プロジェクト: sipper123/sip2
void *AudioFunction(void * p)
{
  fd_set fds2;

  //open the device for the appropriate action
  if ((g_audio_fd = AudioInitialize()) < 0)
      exit(1);

  while (g_au_thread_running)
  {
    FD_ZERO(&fds2);
    FD_SET(g_audio_fd, &fds2);
    FD_SET(oSocRTP.m_socket, &fds2);
    int max_fd = oSocRTP.m_socket;
    if (g_audio_fd > max_fd) max_fd = g_audio_fd; 

    if (select(max_fd+1, &fds2, NULL, NULL, NULL) < 0)
    {
      printf("Error on on select\n");
      exit(1);
    }

    if (FD_ISSET(oSocRTP.m_socket, &fds2))
    {
      if (ReceiveRTPBufferAndPlay()<0) continue;
    }
   
    if (FD_ISSET(g_audio_fd, &fds2))
    {
      if (CaptureAudioAndSend()<0) continue;
    }
  }
  close(g_audio_fd);
  g_audio_fd = -1;
}
コード例 #2
0
ファイル: main.c プロジェクト: circuitsenses/FreeRTOS-Zybo
int main(void)
{
	u32 *vgaPtr[DISPLAY_NUM_FRAMES];
	u32 *hdmiPtr[DISPLAY_NUM_FRAMES];
	int i;
	char userInput = 0;

	for (i = 0; i < DISPLAY_NUM_FRAMES; i++)
	{
		vgaPtr[i] = vgaBuf[i];
		hdmiPtr[i] = hdmiBuf[i];
	}

	DisplayDemoInitialize(&vgaCtrl, VGA_VDMA_ID, SCU_TIMER_ID, VGA_BASEADDR, DISPLAY_NOT_HDMI, vgaPtr);
	DisplayDemoInitialize(&hdmiCtrl, HDMI_VDMA_ID, SCU_TIMER_ID, HDMI_BASEADDR, DISPLAY_HDMI, hdmiPtr);
	AudioInitialize(SCU_TIMER_ID, AUDIO_IIC_ID, AUDIO_CTRL_BASEADDR);
	TimerInitialize(SCU_TIMER_ID);

	/* Flush UART FIFO */
	while (XUartPs_IsReceiveData(UART_BASEADDR))
	{
		XUartPs_ReadReg(UART_BASEADDR, XUARTPS_FIFO_OFFSET);
	}

	while (userInput != 'q')
	{
		MainDemoPrintMenu();

		/* Wait for data on UART */
		while (!XUartPs_IsReceiveData(UART_BASEADDR))
		{}

		/* Store the first character in the UART recieve FIFO and echo it */
		userInput = XUartPs_ReadReg(UART_BASEADDR, XUARTPS_FIFO_OFFSET);
		xil_printf("%c", userInput);

		switch (userInput)
		{
		case '1':
			AudioRunDemo(AUDIO_CTRL_BASEADDR, UART_BASEADDR, SW_BASEADDR, BTN_BASEADDR);
			break;
		case '2':
			DisplayDemoRun(&vgaCtrl, UART_BASEADDR);
			break;
		case '3':
			DisplayDemoRun(&hdmiCtrl, UART_BASEADDR);
			break;
		case 'q':
			break;
		default :
			xil_printf("\n\rInvalid Selection");
			TimerDelay(500000);
		}
	}

	return 0;
}