- Timestamp:
- 05/28/06 05:43:20 (18 years ago)
- Files:
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
branches/libfreebob-2.0/src/libstreaming/AmdtpStreamProcessor.cpp
r227 r228 268 268 return false; 269 269 } 270 271 // we use a timing unit of 10ns 272 // this makes sure that for the max syt interval 273 // we don't have rounding, and keeps the numbers low 274 // we have 1 slot every 8 events 275 // we have syt_interval events per packet 276 // => syt_interval/8 slots per packet 277 // packet rate is 8000pkt/sec => interval=125us 278 // so the slot interval is (1/8000)/(syt_interval/8) 279 // or: 1/(1000 * syt_interval) sec 280 // which is 1e9/(1000*syt_interval) nsec 281 // or 100000/syt_interval 'units' 282 // the event interval is fixed to 320us = 32000 'units' 283 if(!(*it)->useRateControl(true,(100000/m_syt_interval),32000, false)) { 284 debugFatal("Could not set signal type to PeriodSignalling"); 285 return false; 286 } 287 270 288 // buffertype and datatype are dependant on the API 271 289 debugWarning("---------------- ! Doing hardcoded test setup ! --------------\n"); … … 433 451 bytes2write -= byteswritten; 434 452 } 435 453 436 454 // the bytes2write should always be cluster aligned 437 455 assert(bytes2write%cluster_size==0); 438 456 439 457 } 440 458 … … 555 573 target_event=(quadlet_t *)(data + ((j * m_dimension) + mp->getPosition())); 556 574 557 if(mp->can Send()) { // we can send a byte575 if(mp->canRead()) { // we can send a byte 558 576 mp->readEvent(&byte); 559 577 *target_event=htonl( … … 566 584 IEC61883_AM824_SET_LABEL(0,IEC61883_AM824_LABEL_MIDI_NO_DATA)); 567 585 } 568 mp->trigger();569 586 } 570 587 … … 1066 1083 target_event=(quadlet_t *)(data + ((j * m_dimension) + mp->getPosition())); 1067 1084 quadlet_t sample_int=ntohl(*target_event); 1085 // FIXME: this assumes that 2X and 3X speed isn't used, 1086 // because only the 1X slot is put into the ringbuffer 1068 1087 if(IEC61883_AM824_GET_LABEL(sample_int) != IEC61883_AM824_LABEL_MIDI_NO_DATA) { 1069 sample_int=(sample_int >> 16) & 0x FF;1088 sample_int=(sample_int >> 16) & 0x000000FF; 1070 1089 if(!mp->writeEvent(&sample_int)) { 1071 1090 debugWarning("Packet port events lost\n");