J'essaie de traduire une fonction de c++ en delphi :
Code :
- int StreamInfo::ReadHeaderSV7 ( Reader* fp )
- {
- const long samplefreqs [4] = { 44100, 48000, 37800, 32000 };
- unsigned int HeaderData [8];
- unsigned short EstimatedPeakTitle = 0;
- if (simple.StreamVersion > 0x71 ) {
- Update (simple.StreamVersion);
- return 0;
- }
- if ( fp->seek ( simple.HeaderPosition, SEEK_SET ) != 0 ) // seek to header start
- return ERROR_CODE_FILE;
- if ( fp->read ( HeaderData, sizeof HeaderData) != sizeof HeaderData )
- return ERROR_CODE_FILE;
- ...
- simple.SampleFreq = samplefreqs [(HeaderData[2]>>16) & 0x0003];
- EstimatedPeakTitle = HeaderData[2] & 0xFFFF; // read the ReplayGain data
- simple.GainTitle = (HeaderData[3] >> 16) & 0xFFFF;
- simple.PeakTitle = HeaderData[3] & 0xFFFF;
- simple.GainAlbum = (HeaderData[4] >> 16) & 0xFFFF;
- simple.PeakAlbum = HeaderData[4] & 0xFFFF;
- ...
- }
|
Et je coince pour l'affectation en Delphi de l'equivalent de simple
je fais
simple.GainTitle := (HeaderData[3] shr 16) and $FFFF; |
Mais je n'obtiens pas le bon resultat. Je pense (mais bon on sait jamais) que le tableau headerdata est remplis correctement (array of cardinal), mais je vois pas ce qui clocherai dans la ligne sus-citee.
---------------
And I looked, and behold a pale horse: and his name that sat on him was Death, and Hell followed with him. Revelations 6:8