Quote:
Originally Posted by Kalimba
Code:
NSData *data = [NSData dataWithContentsOfFile:path];
Byte *byteData = (Byte*)malloc([data length]);
memcpy(byteData, [data bytes], i);
What is the variable 'i' set to in the memcpy call? Does stepping through the code in the debugger glean any useful information?
|
Oh, sorry, the variable 'i' contains the [data length] value, which in this specific case is 2400.
The only thing I could tell from stepping through the code is that the problem is in the data I get from the file or in the way I access it (and not in the way I draw it to the screen).
Quote:
Originally Posted by Kalimba
It just occurred to me that maybe it's an endian issue you're seeing.
|
as far as I know, endian is only the way the system interpret two or more bytes into numbers. So if for example I have two bytes:
00110110 11110000
these bits will stay the same no matter what endian is used, and the only thing changed would be the number represented by those
two bytes. So I can't really see how it would change anything for me since I'm reading the file as separate bytes and not as full integers. Am I wrong?
Maybe it's something in the way I access the bits?
Code:
NSInteger byteIndex = requestedBitIndex / 8;
NSInteger bitIndexInByte = requestedBitIndex & 7; //the bit index (0-7) in the byte
NSInteger mask = 128 >> bitIndexInByte; //I read the bits from left to right so I take the binary number 10000000 and roll it bitIndex times to the right
if(byteData[byteIndex] & mask != 0)
return YES;
else
return NO;
This is how I access the bits. is there something wrong here? does the endian change anything in here?
is there another reason why the data is scrambled?
thanks again