Index: /trunk/libfreebob/src/rme/rme_avdevice.cpp =================================================================== --- /trunk/libfreebob/src/rme/rme_avdevice.cpp (revision 373) +++ /trunk/libfreebob/src/rme/rme_avdevice.cpp (revision 374) @@ -520,5 +520,5 @@ quadlet = 0; // Note: 1394Service::read() expects a physical ID, not the node id - if (m_1394Service->read(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 4, &quadlet) < 0) { + if (m_1394Service->read(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 1, &quadlet) < 0) { debugError("Error doing rme read from register 0x%06x\n",reg); } @@ -536,5 +536,5 @@ // Note: 1394Service::write() expects a physical ID, not the node id - if (m_1394Service->write(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 4, &data) < 0) { + if (m_1394Service->write(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 1, &data) < 0) { err = 1; debugError("Error doing rme write to register 0x%06x\n",reg); Index: /trunk/libfreebob/src/motu/motu_avdevice.cpp =================================================================== --- /trunk/libfreebob/src/motu/motu_avdevice.cpp (revision 373) +++ /trunk/libfreebob/src/motu/motu_avdevice.cpp (revision 374) @@ -582,5 +582,5 @@ case 0: // TODO: do the stuff that is nescessary to make the device - // transmit a stream + // receive a stream // Set the streamprocessor channel to the one obtained by @@ -599,5 +599,5 @@ case 1: // TODO: do the stuff that is nescessary to make the device - // receive a stream + // transmit a stream // Set the streamprocessor channel to the one obtained by @@ -911,5 +911,5 @@ quadlet = 0; // Note: 1394Service::read() expects a physical ID, not the node id - if (m_1394Service->read(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 4, &quadlet) < 0) { + if (m_1394Service->read(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 1, &quadlet) < 0) { debugError("Error doing motu read from register 0x%06x\n",reg); } @@ -927,5 +927,5 @@ // Note: 1394Service::write() expects a physical ID, not the node id - if (m_1394Service->write(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 4, &data) < 0) { + if (m_1394Service->write(0xffc0 | m_nodeId, MOTUFW_BASE_ADDR+reg, 1, &data) < 0) { err = 1; debugError("Error doing motu write to register 0x%06x\n",reg); Index: /trunk/libfreebob/src/libfreebobavc/ieee1394service.cpp =================================================================== --- /trunk/libfreebob/src/libfreebobavc/ieee1394service.cpp (revision 340) +++ /trunk/libfreebob/src/libfreebobavc/ieee1394service.cpp (revision 374) @@ -282,10 +282,16 @@ Ieee1394Service::startRHThread() { + int i; + if ( m_threadRunning ) { return true; } pthread_mutex_lock( &m_mutex ); - pthread_create( &m_thread, 0, rHThread, this ); + i = pthread_create( &m_thread, 0, rHThread, this ); pthread_mutex_unlock( &m_mutex ); + if (i) { + debugFatal("Could not start ieee1394 service thread\n"); + return false; + } m_threadRunning = true;