]> granicus.if.org Git - taglib/commitdiff
Fix reading of POPM rating -- it's unsigned char, not just char
authorLukáš Lalinský <lalinsky@gmail.com>
Thu, 22 May 2008 20:40:14 +0000 (20:40 +0000)
committerLukáš Lalinský <lalinsky@gmail.com>
Thu, 22 May 2008 20:40:14 +0000 (20:40 +0000)
git-svn-id: svn://anonsvn.kde.org/home/kde/trunk/kdesupport/taglib@811387 283d02a7-25f6-0310-bc7c-ecb5cbfe19da

taglib/mpeg/id3v2/frames/popularimeterframe.cpp
tests/test_id3v2.cpp

index 027ea84849a181ac88108ccc3ea15887ca630981..e65cbe0c9cb7c82248ff6be2dd45c4ae2aac935e 100644 (file)
@@ -107,7 +107,7 @@ void PopularimeterFrame::parseFields(const ByteVector &data)
   d->rating = 0;
   d->counter = 0;
   if(pos < size) {
-    d->rating = data[pos++];
+    d->rating = (unsigned char)(data[pos++]);
     if(pos < size) {
       d->counter = data.mid(pos, 4).toUInt();
     }
index 027ecacc610054771066a283d1818185e05607e8..07b33f1e99b399b96a7499c0c0d0a8a50cde49d6 100644 (file)
@@ -201,7 +201,7 @@ public:
 
     ID3v2::PopularimeterFrame *f = new ID3v2::PopularimeterFrame();
     f->setEmail("email@example.com");
-    f->setRating(2);
+    f->setRating(200);
     f->setCounter(3);
 
     MPEG::File foo(newname.c_str());
@@ -210,6 +210,7 @@ public:
 
     MPEG::File bar(newname.c_str());
     CPPUNIT_ASSERT_EQUAL(String("email@example.com"), dynamic_cast<ID3v2::PopularimeterFrame *>(bar.ID3v2Tag()->frameList("POPM").front())->email());
+    CPPUNIT_ASSERT_EQUAL(200, dynamic_cast<ID3v2::PopularimeterFrame *>(bar.ID3v2Tag()->frameList("POPM").front())->rating());
     deleteFile(newname);
   }