int main(int argc, char ** argv) { uint32 ret = 0; assert(argc == 1); res[0].type = RECONOS_TYPE_MBOX; res[0].ptr = &mb_1; mbox_init(&mb_1,3); reconos_init_autodetect(); reconos_hwt_setresources(&hwt,res,2); reconos_hwt_setinitdata(&hwt,(void *) init_data); reconos_hwt_create(&hwt,0,NULL); ret = mbox_get(&mb_1); if (ret==init_data) printf("get_init_data: success (%X=%X)\n", init_data,ret); else printf("get_init_data: failure (%X!=%X)\n",init_data,ret); pthread_join(hwt.delegate,NULL); return 0; }
void SawtoothSoundComponent_HW::init(){ m_FrequencyIn_1_Port->registerCallback(ICallbackPtr(new OnFrequencyChange(*this))); /* initialize reconos */ if(slot.isValid()){ // TODO: Warum werden hier zwei message boxen benötigt!? /* initialize message boxes with 1 data word */ mbox_init(&m_CtrlStart, 1); mbox_init(&m_CtrlStop, 1); m_HWTParams[0] = (uint32_t) m_LocalBuffer; m_HWTParams[1] = 0; m_HWTParams[2] = (uint32_t) (getPhaseIncrement(440) * SOUNDGATES_FIXED_PT_SCALE); m_ReconOSResource[0].type = RECONOS_TYPE_MBOX; m_ReconOSResource[0].ptr = &m_CtrlStart; m_ReconOSResource[1].type = RECONOS_TYPE_MBOX; m_ReconOSResource[1].ptr = &m_CtrlStop; reconos_hwt_setresources(&m_ReconOSThread, &m_ReconOSResource[0], 2); reconos_hwt_setinitdata(&m_ReconOSThread, (void *) &m_HWTParams[0]); reconos_hwt_create(&m_ReconOSThread, slot.getSlot(), NULL); m_SoundOut_1_Port->clearWriteBuffer(); } }
static int __init init_reconos_test_module(void) { uint32_t ret = 0; mbox_init(&mb, 3); reconos_init_autodetect(); reconos_hwt_setresources(&hwt, &res, 1); reconos_hwt_setinitdata(&hwt, (void *) init_data); reconos_hwt_create(&hwt, 0, NULL); ret = mbox_get(&mb); if (ret == init_data) printk(KERN_INFO "[reconos-test] get_init_data: " "success (%X=%X)\n", init_data, ret); else printk(KERN_INFO "[reconos-test] get_init_data: " "failure (%X!=%X)\n", init_data, ret); printk("[reconos-test] loaded, test done\n"); return 0; }