- 01
- 02
- 03
- 04
- 05
- 06
- 07
- 08
- 09
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
- 51
- 52
- 53
- 54
- 55
- 56
- 57
- 58
- 59
- 60
- 61
- 62
- 63
- 64
- 65
- 66
- 67
- 68
- 69
- 70
- 71
- 72
- 73
- 74
- 75
- 76
- 77
- 78
- 79
int lenNameTrack = byteArrAudioFile->size() - 128 + 3,
lenAutorTrack = byteArrAudioFile->size() - 128 + 3 + 30,
lenAlbumTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30,
lenYearTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30,
lenCommentTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4,
lenFlagNumberTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28,
lenNumberTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28 + 1,
lenIdGenreTrack = byteArrAudioFile->size() - 128 + 3 + 30 + 30 + 30 + 4 + 28 + 1 + 1;
for(int i = byteArrAudioFile->size() - 128+3; i <= byteArrAudioFile->size(); i++)
{
if(i == lenAutorTrack) //Названние трэка
for(int j = lenNameTrack, k = 0; j < lenAutorTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.title.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.title.append( byteArrAudioFile->at(j) );
}
if(i == lenAlbumTrack) //Исполнитель
for(int j = lenAutorTrack; j < lenAlbumTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.autor.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.autor.append( byteArrAudioFile->at(j) );
}
if(i == lenYearTrack) //Альбом
for(int j = lenAlbumTrack; j < lenYearTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.album.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.album.append( byteArrAudioFile->at(j) );
}
if(i == lenCommentTrack) //Год
for(int j = lenYearTrack; j < lenCommentTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.year.append(byteArrAudioFile->at(j));
}
if(i == lenFlagNumberTrack) //Комментарий
for(int j = lenCommentTrack; j < lenFlagNumberTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
if( ((int) byteArrAudioFile->at(j)) < 0 )
ID3v1.comment.append( toUnicod( (int) byteArrAudioFile->at(j) ) );
else ID3v1.comment.append( byteArrAudioFile->at(j) );
}
if(i == lenNumberTrack) //Если есть номер трэка то установлен нулевой байт
for(int j = lenFlagNumberTrack; j < lenNumberTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.flagNumberTrack.append(byteArrAudioFile->at(j));
}
if(i == lenIdGenreTrack) //Номер трэка
for(int j = lenNumberTrack; j < lenIdGenreTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.numberTrack.append(byteArrAudioFile->at(j));
}
if(i == lenIdGenreTrack + 1) //Индетификатор жанра
{
for(int j = lenIdGenreTrack; j <= lenIdGenreTrack; ++j)
{
if( (int) byteArrAudioFile->at(j) == 0)
break;
ID3v1.genre.append( QString::number( (int) byteArrAudioFile->at(j)));
}
ID3v1.genre.append(genreList(ID3v1.genre.toInt()));
}
}