Changeset 3515:9570578e59c2 in roaraudio
- Timestamp:
- 02/16/10 00:59:21 (14 years ago)
- Branch:
- default
- Phase:
- public
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
libroarpulse/util.c
r3489 r3515 103 103 } 104 104 105 /* Format the specified data as a hexademical string */ 106 char *pa_hexstr(const uint8_t* d, size_t dlength, char *s, size_t slength) { 107 const char table[] = "0123456789abcdef"; 108 char * p = s; 109 size_t i; 110 111 for (i = 0; i < dlength && slength > 2; i++, slength -= 2, d++) { 112 *(p++) = table[*d >> 4]; 113 *(p++) = table[*d & 0x0F]; 114 } 115 116 *p = 0; 117 118 return s; 119 } 120 121 /* Parse a hexadecimal string as created by pa_hexstr() to a BLOB */ 122 size_t pa_parsehex(const char *p, uint8_t *d, size_t dlength) { 123 size_t have = 0; 124 register int low_nibble = 0; 125 register char c; 126 127 if ( dlength == 0 ) 128 return 0; 129 130 for (; (c = *p); p++) { 131 if ( c >= '0' && c <= '9' ) { 132 c -= '0'; 133 } else if ( c >= 'a' && c <= 'f' ) { 134 c -= 'a' - 10; 135 } else if ( c >= 'A' && c <= 'F' ) { 136 c -= 'A' - 10; 137 } else { 138 return (size_t)-1; 139 } 140 141 if ( low_nibble ) { 142 *d |= c & 0x0F; 143 low_nibble = 0; 144 145 d++; 146 have++; 147 dlength--; 148 149 if ( dlength == 0 ) 150 return have; 151 } else { 152 *d = (c & 0x0F) << 4; 153 low_nibble = 1; 154 } 155 } 156 157 return have; 158 } 159 160 105 161 //ll
Note: See TracChangeset
for help on using the changeset viewer.