Audiovox P965 Datový list Strana 129

  • Stažení
  • Přidat do mých příruček
  • Tisk
  • Strana
    / 280
  • Tabulka s obsahem
  • KNIHY
  • Hodnocené. / 5. Na základě hodnocení zákazníků
Zobrazit stránku 128
API In CPP
126
lengthData[3] &= 0x1f; // mask out the 1st 3 bits
read(fdSock, &lengthData[2], 1);
read(fdSock, &lengthData[1], 1);
read(fdSock, &lengthData[0], 1);
} else {
lengthData[0] = firstChar;
lengthData[0] &= 0x1f; // mask out the 1st 3 bits
read(fdSock, &lengthData[1], 1);
read(fdSock, &lengthData[2], 1);
read(fdSock, &lengthData[3], 1);
}
messageLength = (int *)lengthData;
} else if ((firstChar & 0xC0) == 0xC0) { // read 3 bytes
DEBUG ? printf("3-byte encoded length\n") : 0;
if (littleEndian) {
lengthData[2] = firstChar;
lengthData[2] &= 0x3f; // mask out the 1st 2 bits
read(fdSock, &lengthData[1], 1);
read(fdSock, &lengthData[0], 1);
} else {
lengthData[1] = firstChar;
lengthData[1] &= 0x3f; // mask out the 1st 2 bits
read(fdSock, &lengthData[2], 1);
read(fdSock, &lengthData[3], 1);
}
messageLength = (int *)lengthData;
} else if ((firstChar & 0x80) == 0x80) { // read 2 bytes
DEBUG ? printf("2-byte encoded length\n") : 0;
if (littleEndian) {
lengthData[1] = firstChar;
lengthData[1] &= 0x7f; // mask out the 1st bit
read(fdSock, &lengthData[0], 1);
} else {
lengthData[2] = firstChar;
lengthData[2] &= 0x7f; // mask out the 1st bit
read(fdSock, &lengthData[3], 1);
}
messageLength = (int *)lengthData;
} else { // assume 1-byte encoded length...same on both LE and BE systems
DEBUG ? printf("1-byte encoded length\n") : 0;
messageLength = (int *) malloc(sizeof(int));
*messageLength = (int)firstChar;
Zobrazit stránku 128
1 2 ... 124 125 126 127 128 129 130 131 132 133 134 ... 279 280

Komentáře k této Příručce

Žádné komentáře