Example #1
0
static int
set_id3v2tag(lame_global_flags* gfp, int type, unsigned short const* str)
{
    switch (type)
    {
        case 'a': return id3tag_set_textinfo_ucs2(gfp, "TPE1", str);
        case 't': return id3tag_set_textinfo_ucs2(gfp, "TIT2", str);
        case 'l': return id3tag_set_textinfo_ucs2(gfp, "TALB", str);
        case 'g': return id3tag_set_textinfo_ucs2(gfp, "TCON", str);
        case 'c': return id3tag_set_comment_ucs2(gfp, 0, 0, str);
        case 'n': return id3tag_set_textinfo_ucs2(gfp, "TRCK", str);
    }
    return 0;
}
Example #2
0
int
id3tag_set_fieldvalue_ucs2(lame_global_flags * gfp, const unsigned short *fieldvalue)
{
    if (fieldvalue && *fieldvalue) {
        size_t dx = hasUcs2ByteOrderMarker(fieldvalue[0]);
        char fid[5] = {0,0,0,0,0};
        uint32_t const frame_id = toID3v2TagId_ucs2(fieldvalue+dx);
        if (local_ucs2_strlen(fieldvalue) < (5+dx) || fieldvalue[dx+4] != '=') {
            return -1;
        }
        fid[0] = (fieldvalue[dx+0] & 0x0ff);
        fid[1] = (fieldvalue[dx+1] & 0x0ff);
        fid[2] = (fieldvalue[dx+2] & 0x0ff);
        fid[3] = (fieldvalue[dx+3] & 0x0ff);
        if (frame_id != 0) {
            unsigned short* txt = 0;
            int     rc;
            local_ucs2_substr(&txt, fieldvalue, dx+5, local_ucs2_strlen(fieldvalue));
            rc = id3tag_set_textinfo_ucs2(gfp, fid, txt);
            free(txt);
            return rc;
        }
    }
    return -1;
}
void lame_encoder_impl_internal::set_title(const std::wstring & Title)
{
    int lameRet = id3tag_set_textinfo_ucs2(m_Lame.get(), "TIT2", &add_bom(Title)[0]); 
    lameRet;
}
void lame_encoder_impl_internal::set_artist(const std::wstring & Artist)
{
    int lameRet = id3tag_set_textinfo_ucs2(m_Lame.get(), "TPE1", &add_bom(Artist)[0]);
    lameRet;
}