getting started with ios
Christopher Scott
chris at phatfly.com
Wed Mar 26 20:24:18 UTC 2014
Turns out this is working:
TagLib::ID3v2::Frame *frame =l[i];
tag->removeFrame(frame);
Christopher
On Mar 26, 2014, at 1:52 PM, Christopher Scott <chris at phatfly.com> wrote:
> OK, I got taglib and cmake to work together and now have a library and headers files that work with armv6, armv7 and armv7s. I thought I included i386 but I am getting errors when compiling for the sim. Though, it works fine on the device and ultimately this is the goal … so I happy with this so far. Later I will look at what is going on that i386 isn’t getting included. I am new to cmake and it’s processes so I will leave this for a rainy day or if I need to support it later.
>
> I have been able to bring id3 editing code to my iOS project that another coworker wrote for mac. While his code works for his project, because I believe that he is not hitting the remove case, I have tested it and it’s bothering me that it’s not working correctly. The code looks for a PRIV frame and is suppose to remove it. I think what is going wrong with the code that my coworker wrote is it’s trying to remove the frameListMap entry and not the actual frame.
>
> Does anyone know how to correctly remove the priv frame? I have to inject a uits payload that is specific to my user. If I comment out the "tag->removeFrame(l[i]);” line in the code below, I stop getting errors, but then if there is a previous priv frame with uits data, this code adds a second entry to the priv tag. Chances are that the track files that my app downloads will never contain a priv tag or uits data (unless I put it there already), but it would be nice to know that the code is only allowing one entry in the priv frame.
>
>
> Does this make sense?
>
> Any ideas how to remove the priv frame?
>
> Thanks!
> Chris
>
> Oh, I am able to write to the tag … just not remove the priv frame.
>
> The code:
>
>
>
> TagLib::ID3v2::FrameList l = f.ID3v2Tag()->frameListMap()["PRIV"];
>
> for (int i = 0; i < l.size(); i++) {
>
>
> if (l[i]->toString() == “ownerEmailAddress")
> {
>
> cout << l[i]->toString() << endl;
>
> const TagLib::ByteVector v = TagLib::ByteVector::fromCString(UITSPayload, (uint32_t) strlen(UITSPayload));
>
> l[i]->setData(UITSPayload);
> tag->removeFrame(l[i]);
> tag->addFrame(l[i]);
> found = true;
> break;
> }
> }
> if (!found)
> {
>
> TagLib::ID3v2::PrivateFrame *frame = new TagLib::ID3v2::PrivateFrame ();
>
> frame->setOwner("ownerEmailAddress");
> const TagLib::ByteVector v = TagLib::ByteVector::fromCString(UITSPayload, (uint32_t) strlen(UITSPayload));
> frame->setData(v);
>
> tag->addFrame(frame);
> f.save();
> }
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.kde.org/pipermail/taglib-devel/attachments/20140326/a3ab532b/attachment.html>
More information about the taglib-devel
mailing list