Zitat(stth @ 03 Sep 2009, 18:30)
mit c wäre das nicht passiert

ne mal im ernst...
CODE
byte arr[] = getTheDataSonstewoHer();
int i = 0;
while(i*4 < arr.length)
{
// annahme little endian, für big muss +0 und +1 sowie +2 und +3 getauscht werden
// L
int gegaehnt = ((((int)arr[i * 4 + 1]) << 8) | arr[i*4] ) * gaehn;
arr[i*4] = (byte)(gegaehnt & 0xff);
arr[i*4 +1] = (byte)((gegaehnt & 0xff00) >> 8);
// R
gegaehnt = ((((int)arr[i * 4 + 3]) << 8) + arr[i*4 + 2] ) * gaehn;
arr[i*4 +2] = (byte)(gegaehnt & 0xff);
arr[i*4 +3] = (byte)((gegaehnt & 0xff00) >> 8);
i++;
}
denk bitte dran, dass du nur ganzzahlige verstärkungen machen kannst. ansonsten hilft dir nur der weg über byte -> int -> float -> rechnen -> int -> byte
€ paar klammern geeckt und verschoben
€2: auf solaris gehört

Mein Gain Control liegt zwischen 0 und irgendwas --> hängt vom Delay ab und das ist double demzufolge brauch ich die umwandlung byte--> int -> float --> rechnen --> int --> byte
hast du vllt noch nen herz für mich und kannst mir das an nem codesnippet zeigen? bin irgendwie nach 2 wochen durchweg coden nicht mehr wirklich allein dazu fähig.. aber am montag muss das programm stehen... bin also für jede hilfe dankbar!!!