int dabInputBridgeUdpInit(void** args) { dabInputBridgeUdpData* input = new dabInputBridgeUdpData; dabInputUdpInit((void**)&input->udpData); input->info = new bridgeInfo; bridgeInitInfo(input->info); *args = input; return 0; }
int dabInputSlipInit(void** args) { dabInputSlipData* data = new dabInputSlipData; memset(&data->stats, 0, sizeof(data->stats)); data->stats.id = dabInputFifoData::nb++; data->server = new TcpServer(); data->packetSize = 1500; data->queueSize = 10; data->packets = new UdpPacket*[data->queueSize]; for (int i = 0; i < data->queueSize; ++i) { data->packets[i] = new UdpPacket(data->packetSize); } data->buffer = new UdpPacket(data->packetSize); data->nbPackets = 0; data->info = new bridgeInfo; data->thread = (pthread_t)NULL; bridgeInitInfo(data->info); #ifdef _WIN32 char semName[32]; sprintf(semName, "semWrite%i", data->stats.id); data->semWrite = CreateSemaphore(NULL, 1, 1, semName); if (data->semWrite == NULL) { fprintf(stderr, "Can't init SLIP data write semaphore %s\n", semName); return -1; } sprintf(semName, "semQueue%i", data->stats.id); data->semQueue = CreateSemaphore(NULL, 1, 1, semName); if (data->semQueue == NULL) { fprintf(stderr, "Can't init SLIP data index semaphore %s\n", semName); return -1; } #else if (sem_init(&data->semWrite, 0, data->queueSize) == -1) { perror("Can't init SLIP data write semaphore"); return -1; } if (sem_init(&data->semQueue, 0, 1) == -1) { perror("Can't init SLIP data index semaphore"); return -1; } #endif data->reading = false; *args = data; return 0; }