Changeset 2724:0a95ae49bce7 in roaraudio
- Timestamp:
- 09/16/09 12:26:12 (15 years ago)
- Branch:
- default
- Phase:
- public
- Location:
- roard
- Files:
-
- 2 edited
Legend:
- Unmodified
- Added
- Removed
-
roard/include/rdtcs.h
r2722 r2724 63 63 int rdtcs_send_stream_rds_group (int id, struct roar_stream_server * ss); 64 64 65 uint16_t rdtcs_rds_crc_calc (uint16_t data );65 uint16_t rdtcs_rds_crc_calc (uint16_t data, int block); 66 66 67 67 #endif -
roard/rdtcs.c
r2722 r2724 86 86 char out[RDTCS_RDS_GROUP_LEN]; 87 87 char * c; 88 int block[4] = {RDTCS_RDS_BLOCK_A, RDTCS_RDS_BLOCK_B, RDTCS_RDS_BLOCK_C0, RDTCS_RDS_BLOCK_D}; 88 89 uint16_t data[4]; 89 90 uint16_t crc; … … 103 104 fill = 0; 104 105 for (i = 0; i < 4; i++) { 105 s |= data[i] << fill; 106 // data is 16 bit long 107 s |= data[i] << (fill & 0xFFFF); 106 108 fill += 16; 107 109 108 crc = rdtcs_rds_crc_calc(data[i] );110 crc = rdtcs_rds_crc_calc(data[i], block[i]); 109 111 110 s |= crc << fill; 112 // CRC is 10 bit long 113 s |= crc << (fill & 0x03FF); 111 114 fill += 10; 112 115 116 // shift all complet bytes we allready have out 113 117 while (fill >= 8) { 114 118 *c = s & 0xFF; … … 122 126 } 123 127 124 uint16_t rdtcs_rds_crc_calc (uint16_t data ) {128 uint16_t rdtcs_rds_crc_calc (uint16_t data, int block) { 125 129 return 0xAAAA; 126 130 }
Note: See TracChangeset
for help on using the changeset viewer.