|
Lines 126-146
Link Here
|
| 126 |
stream >> blocklen; |
126 |
stream >> blocklen; |
| 127 |
|
127 |
|
| 128 |
uint datalen = blocklen - 40; |
128 |
uint datalen = blocklen - 40; |
| 129 |
QByteArray buffer( datalen+2 ); |
|
|
| 130 |
|
129 |
|
| 131 |
stream >> type; |
130 |
stream >> type; |
| 132 |
|
131 |
|
| 133 |
seekRelative(stream, 24); // skip stuff |
|
|
| 134 |
stream.readRawBytes(buffer.data(), datalen); |
| 135 |
buffer[datalen] = 0; |
| 136 |
buffer[datalen + 1] = 0; |
| 137 |
|
| 138 |
if( type == itunesdb::MHOD_PLAYLIST) |
132 |
if( type == itunesdb::MHOD_PLAYLIST) |
| 139 |
break; // ignore |
133 |
break; // ignore |
| 140 |
|
134 |
|
|
|
135 |
unsigned short* buffer = new unsigned short[ datalen+2/2]; |
| 136 |
|
| 137 |
seekRelative(stream, 24); // skip stuff |
| 138 |
for ( int i = 0; i < datalen/2; ++i ) |
| 139 |
stream >> ( Q_UINT16 ) buffer[ i ]; |
| 140 |
|
| 141 |
buffer[datalen/2]= 0; |
| 142 |
|
| 141 |
if( listitem != NULL) |
143 |
if( listitem != NULL) |
| 142 |
listitem->setItemProperty( QString::fromUcs2( (unsigned short *)buffer.data()), (ItemProperty)type); |
144 |
listitem->setItemProperty( QString::fromUcs2(buffer), (ItemProperty)type); |
| 143 |
} |
145 |
} |
|
|
146 |
delete[] buffer; |
| 144 |
break; |
147 |
break; |
| 145 |
|
148 |
|
| 146 |
case 0x706C686D: { // mhlp |
149 |
case 0x706C686D: { // mhlp |