int main() { uint8 interruptState; CyGlobalIntEnable; /* Enable global interrupts */ EZI2C_Start(); /* Start EZI2C component */ /* * Set up communication and initialize data buffer to CapSense data structure * to use Tuner application */ EZI2C_EzI2CSetBuffer1(sizeof(CapSense_dsRam), sizeof(CapSense_dsRam), (uint8 *)&CapSense_dsRam); CapSense_Start(); /* Initialize component */ BleHandler_Init(); Tuner_Init(BleHandler_RefreshBuffer, BleHandler_SendBuffer); CapSense_ScanAllWidgets(); /* Scan all widgets */ for(;;) { /* Do this only when a scan is done */ interruptState = CyEnterCriticalSection(); if(CapSense_NOT_BUSY == CapSense_IsBusy()) { CyExitCriticalSection(interruptState); CapSense_ProcessAllWidgets(); /* Process all widgets */ Tuner_RunTuner(); if (CapSense_IsAnyWidgetActive()) /* Scan result verification */ { /* add custom tasks to execute when touch detected */ } CapSense_ScanAllWidgets(); /* Start next scan */ } CySysPmSleep(); /* Sleep until scan is finished */ CyExitCriticalSection(interruptState); } }
int deviceInit(config_parameters *parms, DeviceHandle *handle) { static struct timespec lockStatusWaitTime; static struct timeval now; int i; uint32_t freqHz = parms->frequency*MHZ; /*Initialize tuner device*/ if (Tuner_Init()) { printf("\n%s : ERROR Tuner_Init() fail\n", __FUNCTION__); return -1; } // printf("%s: after Tuner_Init\n", __FUNCTION__); /* Register tuner status callback */ gettimeofday(&now, NULL); lockStatusWaitTime.tv_sec = now.tv_sec + 10; if (Tuner_Register_Status_Callback(tunerStatusCallback)) { printf("\n%s : ERROR Tuner_Register_Status_Callback() fail\n", __FUNCTION__); } // printf("%s: After Tuner_Register_Status_Callback(tunerStatusCallback) %u\n", __FUNCTION__, freqHz); /*Lock to frequency*/ if (!Tuner_Lock_To_Frequency(freqHz, parms->bandwidth, parms->module)) { printf("\n%s: INFO Tuner_Lock_To_Frequency(): %u Hz - success!\n", __FUNCTION__, freqHz); } else { printf("\n%s: ERROR Tuner_Lock_To_Frequency(): %u Hz - fail!\n", __FUNCTION__, freqHz); Tuner_Deinit(); return -1; } /* Wait for tuner to lock*/ pthread_mutex_lock(&statusMutex); if (ETIMEDOUT == pthread_cond_timedwait(&statusCondition, &statusMutex, &lockStatusWaitTime)) { printf("\n%s:ERROR Lock timeout exceeded!\n", __FUNCTION__); Tuner_Deinit(); return -1; } pthread_mutex_unlock(&statusMutex); // printf("%s: Tuner locked\n", __FUNCTION__); if (Player_Init(&(handle->playerHandle))) { Tuner_Deinit(); return -1; } //printf("%s: Player inited\n", __FUNCTION__); if (Player_Source_Open(handle->playerHandle, &(handle->sourceHandle))) { Player_Deinit(handle->playerHandle); Tuner_Deinit(); return -1; } //printf("%s: Player_Source_Open\n", __FUNCTION__); if (Player_Stream_Create(handle->playerHandle, handle->sourceHandle, parms->vPid, parms->vType, &(handle->vStreamHandle))) { printf("%s Player_Source_Open failed", __FUNCTION__); Player_Source_Close(handle->playerHandle, handle->sourceHandle); Player_Deinit(handle->playerHandle); Tuner_Deinit(); return ERROR; } if (Player_Stream_Create(handle->playerHandle, handle->sourceHandle, parms->aPid, parms->aType, &(handle->aStreamHandle))) { printf("%s Player_Source_Open failed", __FUNCTION__); Player_Source_Close(handle->playerHandle, handle->sourceHandle); Player_Deinit(handle->playerHandle); Tuner_Deinit(); return ERROR; } else { printf("%s audio opened", __FUNCTION__); } // printf("Audio %d %d \n", parms->aPid, parms->aType); // printf("Video %d %d \n", parms->vPid, parms->vType); apid = parms->aPid; vpid = parms->vPid; //printf("%s: Player_Stream_Create\n", __FUNCTION__); drawTextInfo(1, vpid, apid, 1); drawTextInfo(1, vpid, apid, 1); if (initPatParsing(handle) != NO_ERROR) { return ERROR; } pmtTable = (PmtTable**) malloc(patTable->serviceInfoCount * sizeof (PmtTable*)); for (i = 1; i < patTable->serviceInfoCount; i++) { indicator = i; pmtTable[i] = (PmtTable*) malloc(sizeof (PmtTable)); pmtTable[i]->pmtHeader = (PmtHeader*) malloc(sizeof (PmtHeader)); // printf("pmt table %d\n", i); if (initPmtParsing(handle, patTable->patServiceInfoArray[i].pid) != NO_ERROR) { deviceDeInit(handle); return ERROR; } } //initEitParsing(handle); globHandle = handle; parsedTag = 1; return NO_ERROR; }