Ticket #3104: add_artist_sortkey.patch

File add_artist_sortkey.patch, 29.3 KB (added by briand <turbo@…>, 17 years ago)

add artist_sortkey column to music_artists; associated UI changes

  • mythmusic/mythmusic/music-ui.xml

     
    466466                <value>Artist:</value>
    467467            </textarea>
    468468
    469             <textarea name="album_label" draworder="1" align="right">
     469            <textarea name="sort_artist_label" draworder="1" align="right">
    470470                <area>15,190,170,30</area>
    471471                <font>labels</font>
     472                <value>Sort Artist:</value>
     473            </textarea>
     474
     475            <textarea name="album_label" draworder="1" align="right">
     476                <area>15,230,170,30</area>
     477                <font>labels</font>
    472478                <value>Album:</value>
    473479            </textarea>
    474480
    475481            <textarea name="title_text" draworder="1" align="right">
    476                 <area>15,230,170,30</area>
     482                <area>15,270,170,30</area>
    477483                <font>labels</font>
    478484                <value>Title:</value>
    479485            </textarea>
    480486
    481487            <textarea name="genre_label" draworder="1" align="right">
    482                 <area>15,270,170,30</area>
     488                <area>15,310,170,30</area>
    483489                <font>labels</font>
    484490                <value>Genre:</value>
    485491            </textarea>
    486492
    487493            <textarea name="year_label" draworder="1" align="right">
    488                 <area>15,310,170,30</area>
     494                <area>15,350,170,30</area>
    489495                <font>labels</font>
    490496                <value>Year:</value>
    491497            </textarea>
    492498
    493499            <textarea name="track_label" draworder="1" align="right">
    494                 <area>365,310,170,30</area>
     500                <area>365,350,170,30</area>
    495501                <font>labels</font>
    496502                <value>Track No.:</value>
    497503            </textarea>
    498504
    499505            <textarea name="rating_label" draworder="1" align="right">
    500                 <area>15,350,170,30</area>
     506                <area>15,390,170,30</area>
    501507                <font>labels</font>
    502508                <value>Rating:</value>
    503509            </textarea>
    504510
    505511            <textarea name="playcount_label" draworder="1" align="right">
    506                 <area>420,390,300,30</area>
     512                <area>420,430,300,30</area>
    507513                <font>labels</font>
    508514                <value>Play Count:</value>
    509515            </textarea>
    510516
    511517            <textarea name="lastplay_label" draworder="1" align="right">
    512                 <area>15,390,170,30</area>
     518                <area>15,430,170,30</area>
    513519                <font>labels</font>
    514520                <value>Last Play:</value>
    515521            </textarea>
    516522
    517523            <textarea name="filename_label" draworder="1" align="right">
    518                 <area>15,430,170,30</area>
     524                <area>15,470,170,30</area>
    519525                <font>labels</font>
    520526                <value>Filename:</value>
    521527            </textarea>
     
    557563                <image function="pushed" filename="mm_blankbutton_pushed.png"></image>
    558564            </pushbutton>
    559565
     566            <remoteedit name="searchartist_edit" draworder="1" align="left">
     567                 <area>195,190,525,35</area>
     568                 <font>display</font>
     569            </remoteedit>
    560570
    561571            <remoteedit name="album_edit" draworder="1" align="left">
    562                 <area>195,190,525,35</area>
     572                <area>195,230,525,35</area>
    563573                <font>display</font>
    564574            </remoteedit>
    565575
    566576            <pushbutton name="searchalbum_button" draworder="2">
    567                 <position>725,190</position>
     577                <position>725,230</position>
    568578                <image function="on" filename="mm_blankbutton_on.png"></image>
    569579                <image function="off" filename="mm_blankbutton_off.png"></image>
    570580                <image function="pushed" filename="mm_blankbutton_pushed.png"></image>
    571581            </pushbutton>
    572582
    573583            <remoteedit name="title_edit" draworder="1" align="left">
    574                 <area>195,230,525,35</area>
     584                <area>195,270,525,35</area>
    575585                <font>display</font>
    576586            </remoteedit>
    577587
    578588            <remoteedit name="genre_edit" draworder="1" align="left">
    579                 <area>195,270,525,35</area>
     589                <area>195,310,525,35</area>
    580590                <font>display</font>
    581591            </remoteedit>
    582592
    583593            <pushbutton name="searchgenre_button" draworder="2">
    584                 <position>725,270</position>
     594                <position>725,310</position>
    585595                <image function="on" filename="mm_blankbutton_on.png"></image>
    586596                <image function="off" filename="mm_blankbutton_off.png"></image>
    587597                <image function="pushed" filename="mm_blankbutton_pushed.png"></image>
    588598            </pushbutton>
    589599
    590600            <remoteedit name="year_edit" draworder="1" align="left">
    591                 <area>195,310,175,35</area>
     601                <area>195,350,175,35</area>
    592602                <font>display</font>
    593603            </remoteedit>
    594604
    595605            <remoteedit name="track_edit" draworder="1" align="left">
    596                 <area>545,310,175,35</area>
     606                <area>545,350,175,35</area>
    597607                <font>display</font>
    598608            </remoteedit>
    599609
    600610            <repeatedimage name="rating_image" draworder="1" fleximage="no">
    601611                <filename>mm_rating.png</filename>
    602                 <position>190,360</position>
     612                <position>190,400</position>
    603613                <orientation>LeftToRight</orientation>
    604614            </repeatedimage>
    605615
    606616            <selector name="rating_button" draworder="0">
    607                 <area>420,350,30,30</area>
     617                <area>420,390,30,30</area>
    608618                <font>display</font>
    609619                <image function="on" filename="mm_leftright_on.png"></image>
    610620                <image function="off" filename="mm_leftright_off.png"></image>
     
    612622            </selector>
    613623
    614624            <textarea name="playcount_text" draworder="1" align="left">
    615                 <area>725,390,400,30</area>
     625                <area>725,430,400,30</area>
    616626                <font>display</font>
    617627            </textarea>
    618628
    619629            <textarea name="lastplay_text" draworder="1" align="left">
    620                 <area>195,390,400,30</area>
     630                <area>195,430,400,30</area>
    621631                <font>display</font>
    622632            </textarea>
    623633
    624634            <textarea name="filename_text" draworder="1" align="left">
    625                 <area>195,430,550,100</area>
     635                <area>195,470,550,100</area>
    626636                <multiline>yes</multiline>
    627637                <font>display</font>
    628638            </textarea>
     
    632642            -->
    633643
    634644            <textbutton name="done_button" draworder="0">
    635                 <position>350,540</position>
     645                <position>350,550</position>
    636646                <font>display</font>
    637647                <image function="on" filename="text_button_on.png"></image>
    638648                <image function="off" filename="text_button_off.png"></image>
  • mythmusic/mythmusic/metaioflacvorbiscomment.cpp

     
    134134 */
    135135Metadata* MetaIOFLACVorbisComment::read(QString filename)
    136136{
    137     QString artist = "", compilation_artist = "", album = "", title = "", genre = "";
     137    QString artist = "", search_artist = "", compilation_artist = "", album = "", title = "", genre = "";
    138138    int year = 0, tracknum = 0, length = 0;
    139139    bool compilation = false;
    140140
     
    184184    else
    185185    {
    186186        artist = getComment(block, MYTH_VORBISCOMMENT_ARTIST);
     187        search_artist = getComment(block, MYTH_VORBISCOMMENT_ARTIST);
    187188        compilation_artist = getComment(block,
    188189                                        MYTH_VORBISCOMMENT_COMPILATIONARTIST);
    189190        album = getComment(block, MYTH_VORBISCOMMENT_ALBUM);
     
    200201    FLAC__metadata_chain_delete(chain);
    201202    FLAC__metadata_iterator_delete(iterator);
    202203
    203     Metadata *retdata = new Metadata(filename, artist, compilation_artist, album,
    204                                      title, genre, year, tracknum, length);
     204    Metadata *retdata = new Metadata(filename, artist, search_artist, compilation_artist,
     205                                     album, title, genre, year, tracknum, length);
    205206
    206207    retdata->setCompilation(compilation);
    207208
  • mythmusic/mythmusic/metadata.cpp

     
    3232Metadata& Metadata::operator=(Metadata *rhs)
    3333{
    3434    m_artist = rhs->m_artist;
     35    m_searchartist = rhs->m_searchartist;
    3536    m_compilation_artist = rhs->m_compilation_artist;
    3637    m_album = rhs->m_album;
    3738    m_title = rhs->m_title;
     
    105106
    106107    MSqlQuery query(MSqlQuery::InitCon());
    107108    query.prepare("SELECT music_artists.artist_name, "
     109    "music_artists.artist_sortkey, "
    108110    "music_comp_artists.artist_name AS compilation_artist, "
    109111    "music_albums.album_name, music_songs.name, music_genres.genre, "
    110112    "music_songs.year, music_songs.track, music_songs.length, "
     
    128130        query.next();
    129131
    130132        m_artist = QString::fromUtf8(query.value(0).toString());
    131         m_compilation_artist = QString::fromUtf8(query.value(1).toString());
    132         m_album = QString::fromUtf8(query.value(2).toString());
    133         m_title = QString::fromUtf8(query.value(3).toString());
    134         m_genre = QString::fromUtf8(query.value(4).toString());
    135         m_year = query.value(5).toInt();
    136         m_tracknum = query.value(6).toInt();
    137         m_length = query.value(7).toInt();
    138         m_id = query.value(8).toUInt();
    139         m_rating = query.value(9).toInt();
    140         m_playcount = query.value(10).toInt();
    141         m_lastplay = query.value(11).toString();
    142         m_compilation = (query.value(12).toInt() > 0);
    143         m_format = query.value(13).toString();
     133        m_searchartist = QString::fromUtf8(query.value(1).toString());
     134        m_compilation_artist = QString::fromUtf8(query.value(2).toString());
     135        m_album = QString::fromUtf8(query.value(3).toString());
     136        m_title = QString::fromUtf8(query.value(4).toString());
     137        m_genre = QString::fromUtf8(query.value(5).toString());
     138        m_year = query.value(6).toInt();
     139        m_tracknum = query.value(7).toInt();
     140        m_length = query.value(8).toInt();
     141        m_id = query.value(9).toUInt();
     142        m_rating = query.value(10).toInt();
     143        m_playcount = query.value(11).toInt();
     144        m_lastplay = query.value(12).toString();
     145        m_compilation = (query.value(13).toInt() > 0);
     146        m_format = query.value(14).toString();
    144147
    145148        retval = true;
    146149    }
     
    160163
    161164    if (m_artist == "")
    162165        m_artist = QObject::tr("Unknown Artist");
     166    if (m_searchartist == "")
     167        m_searchartist = m_artist;       // same as artist, if not specified
    163168    if (m_compilation_artist == "")
    164169        m_compilation_artist = m_artist; // This should be the same as Artist if blank.
    165170    if (m_album == "")
     
    179184                  "LEFT JOIN music_artists AS music_comp_artists ON music_albums.artist_id=music_comp_artists.artist_id "
    180185                  "LEFT JOIN music_genres ON music_songs.genre_id=music_genres.genre_id "
    181186                  "WHERE music_artists.artist_name = :ARTIST"
     187                  " AND music_artists.artist_sortkey = :SORTARTIST"
    182188                  " AND music_comp_artists.artist_name = :COMPILATION_ARTIST"
    183189                  " AND music_albums.album_name = :ALBUM"
    184190                  " AND music_songs.name = :TITLE"
     
    189195                  " AND music_songs.format = :FORMAT ;");
    190196
    191197    query.bindValue(":ARTIST", m_artist.utf8());
     198    query.bindValue(":SORTARTIST", m_searchartist.utf8());
    192199    query.bindValue(":COMPILATION_ARTIST", m_compilation_artist.utf8());
    193200    query.bindValue(":ALBUM", m_album.utf8());
    194201    query.bindValue(":TITLE", m_title.utf8());
     
    244251    }
    245252
    246253    // Load the artist id or insert it and get the id
     254    // if artist id found, update artist_sortkey
    247255    unsigned int artistId;
    248256    query.prepare("SELECT artist_id FROM music_artists "
    249257                  "WHERE artist_name = :ARTIST ;");
     
    257265    if (query.next())
    258266    {
    259267        artistId = query.value(0).toInt();
     268
     269        query.prepare("UPDATE music_artists SET artist_sortkey = :SORTARTIST "
     270                      "WHERE artist_id = :ARTISTID ;");
     271        query.bindValue(":SORTARTIST", m_searchartist.utf8());
     272        query.bindValue(":ARTISTID", artistId);
     273        if (!query.exec() || !query.isActive() || query.numRowsAffected() <= 0)
     274        {
     275            MythContext::DBError("music update sortartist", query);
     276            return;
     277        }
    260278    }
    261279    else
    262280    {
    263         query.prepare("INSERT INTO music_artists (artist_name) VALUES (:ARTIST);");
     281        query.prepare("INSERT INTO music_artists (artist_name,artist_sortkey) "
     282                      "VALUES (:ARTIST, :SORTARTIST);");
    264283        query.bindValue(":ARTIST", m_artist.utf8());
     284        query.bindValue(":SORTARTIST", m_searchartist.utf8());
    265285
    266286        if (!query.exec() || !query.isActive() || query.numRowsAffected() <= 0)
    267287        {
     
    269289            return;
    270290        }
    271291        artistId = query.lastInsertId().toInt();
     292
    272293    }
    273294
    274295    // Compilation Artist
     
    443464QString Metadata::m_formatnormalfiletrack       = "TITLE";
    444465QString Metadata::m_formatnormalcdartist        = "ARTIST";
    445466QString Metadata::m_formatnormalcdtrack         = "TITLE";
     467QString Metadata::m_formatnormalsortartist      = "ARTIST";
    446468QString Metadata::m_formatcompilationfileartist = "COMPARTIST";
    447469QString Metadata::m_formatcompilationfiletrack  = "TITLE (ARTIST)";
    448470QString Metadata::m_formatcompilationcdartist   = "COMPARTIST";
     
    467489    tmp = gContext->GetSetting("MusicFormatNormalCDTrack");
    468490    if (!tmp.isEmpty())
    469491        m_formatnormalcdtrack = tmp;
     492
     493    tmp = gContext->GetSetting("MusicFormatNormalSortArtist");
     494    if (!tmp.isEmpty())
     495        m_formatnormalsortartist = tmp;
    470496       
    471497    tmp = gContext->GetSetting("MusicFormatCompilationFileArtist");
    472498    if (!tmp.isEmpty())
     
    500526  QString rv = format;
    501527  rv.replace("COMPARTIST", m_compilation_artist);
    502528  rv.replace("ARTIST", m_artist);
     529  rv.replace("SORTARTIST", m_searchartist);
    503530  rv.replace("TITLE", m_title);
    504531  rv.replace("TRACK", QString("%1").arg(m_tracknum, 2));
    505532  return rv;
     
    573600    //                      completeness.
    574601    else if (field == "compilation_artist")
    575602      m_compilation_artist = data;
     603    // turbo@talstar.com:   Likewise, I've added searchartist stuff here for
     604    //                      completeness.
     605    else if (field == "searchartist")
     606      m_searchartist = data;
    576607    else if (field == "album")
    577608        m_album = data;
    578609    else if (field == "title")
     
    662693    MSqlQuery query(MSqlQuery::InitCon());
    663694    if ("artist" == field)
    664695    {
    665         query.prepare("SELECT artist_name FROM music_artists ORDER BY artist_name;");
     696        query.prepare("SELECT artist_name FROM music_artists ORDER BY artist_sortkey;");
    666697    }
    667698    else if ("compilation_artist" == field)
    668699    {
    669700        query.prepare("SELECT DISTINCT artist_name FROM music_artists, music_albums where " 
    670                 "music_albums.artist_id=music_artists.artist_id ORDER BY artist_name");
     701                "music_albums.artist_id=music_artists.artist_id ORDER BY artist_sortkey");
    671702    }
    672703    else if ("album" == field)
    673704    {
     
    792823{
    793824    m_done_loading = false;
    794825
    795     QString aquery = "SELECT music_songs.song_id, music_artists.artist_name, music_comp_artists.artist_name AS compilation_artist, "
     826    QString aquery = "SELECT music_songs.song_id, music_artists.artist_name, music_artists.artist_sortkey, music_comp_artists.artist_name AS compilation_artist, "
    796827                     "music_albums.album_name, music_songs.name, music_genres.genre, music_songs.year, "
    797828                     "music_songs.track, music_songs.length, CONCAT(music_directories.path, '/', music_songs.filename) AS filename, "
    798829                     "music_songs.rating, music_songs.numplays, music_songs.lastplay, music_albums.compilation, "
     
    805836                     "LEFT JOIN music_genres ON music_songs.genre_id=music_genres.genre_id "
    806837                     "ORDER BY music_songs.song_id;";
    807838
    808     QString filename, artist, album, title;
     839    QString filename, artist, searchartist, album, title;
    809840
    810841    MSqlQuery query(MSqlQuery::InitCon());
    811842    query.exec(aquery);
     
    820851    {
    821852        while (query.next())
    822853        {
    823             filename = QString::fromUtf8(query.value(9).toString());
     854            filename = QString::fromUtf8(query.value(10).toString());
    824855            if (!filename.contains("://"))
    825856                filename = m_startdir + filename;
    826857
     
    828859            if (artist.isEmpty())
    829860                artist = QObject::tr("Unknown Artist");
    830861
    831             album = QString::fromUtf8(query.value(3).toString());
     862            searchartist = QString::fromUtf8(query.value(2).toString());
     863            if (searchartist.isEmpty())
     864                searchartist = artist;
     865
     866            album = QString::fromUtf8(query.value(4).toString());
    832867            if (album.isEmpty())
    833868                album = QObject::tr("Unknown Album");
    834869
    835             title = QString::fromUtf8(query.value(4).toString());
     870            title = QString::fromUtf8(query.value(5).toString());
    836871            if (title.isEmpty())
    837872                title = QObject::tr("Unknown Title");
    838873
    839874            Metadata *temp = new Metadata(
    840875                filename,
    841876                artist,
    842                 QString::fromUtf8(query.value(2).toString()),
     877                searchartist,
     878                QString::fromUtf8(query.value(3).toString()),
    843879                album,
    844880                title,
    845                 QString::fromUtf8(query.value(5).toString()),
    846                 query.value(6).toInt(),
     881                QString::fromUtf8(query.value(6).toString()),
    847882                query.value(7).toInt(),
    848883                query.value(8).toInt(),
     884                query.value(9).toInt(),
    849885                query.value(0).toInt(),
    850                 query.value(10).toInt(), //rating
    851                 query.value(11).toInt(), //playcount
    852                 query.value(12).toString(), //lastplay
    853                 (query.value(13).toInt() > 0), //compilation
    854                 query.value(14).toString()); //format
     886                query.value(11).toInt(), //rating
     887                query.value(12).toInt(), //playcount
     888                query.value(13).toString(), //lastplay
     889                (query.value(14).toInt() > 0), //compilation
     890                query.value(15).toString()); //format
    855891
    856892            //  Don't delete temp, as PtrList now owns it
    857893            m_all_music.append(temp);
  • mythmusic/mythmusic/dbcheck.cpp

     
    99#include "mythtv/mythcontext.h"
    1010#include "mythtv/mythdbcon.h"
    1111
    12 const QString currentDatabaseVersion = "1008";
     12const QString currentDatabaseVersion = "1009";
    1313
    1414static bool UpdateDBVersionNumber(const QString &newnumber)
    1515{   
     
    497497            return false;
    498498    }
    499499
     500    if (dbver == "1008")
     501    {
     502        const QString updates[] = {
     503"ALTER TABLE music_artists ADD COLUMN artist_sortkey varchar(255) NOT NULL DEFAULT '';",
     504"UPDATE music_artists SET artist_sortkey = artist_name;",
     505"ALTER TABLE music_artists ADD INDEX (artist_sortkey);",
     506""
     507};
     508
     509        if (!performActualUpdate(updates, "1009", dbver))
     510            return false;
     511    }
     512
     513
    500514/* in 0.21 */
    501515//"DROP TABLE musicmetadata;",
    502516//"DROP TABLE musicplaylist;",
  • mythmusic/mythmusic/metadata.h

     
    1515class Metadata
    1616{
    1717  public:
    18     Metadata(QString lfilename = "", QString lartist = "", QString lcompilation_artist = "",
     18    Metadata(QString lfilename = "", QString lartist = "", QString lsearchartist = "",
     19             QString lcompilation_artist = "",
    1920             QString lalbum = "", QString ltitle = "", QString lgenre = "",
    2021             int lyear = 0, int ltracknum = 0, int llength = 0, int lid = 0,
    2122             int lrating = 0, int lplaycount = 0, QString llastplay = "",
     
    2324            {
    2425                m_filename = lfilename;
    2526                m_artist = lartist;
     27                m_searchartist = lsearchartist;
    2628                m_compilation_artist = lcompilation_artist;
    2729                m_album = lalbum;
    2830                m_title = ltitle;
     
    7375
    7476    QString Artist() { return m_artist; }
    7577    void setArtist(const QString &lartist) { m_artist = lartist; m_formattedartist = m_formattedtitle = ""; }
     78
     79    QString SearchArtist() { return m_searchartist; }
     80    void setSearchArtist(const QString &lsearchartist) { m_searchartist = lsearchartist; m_formattedartist = m_formattedtitle = ""; }
    7681   
    7782    QString CompilationArtist() { return m_compilation_artist; }
    7883    void setCompilationArtist(const QString &lcompilation_artist) { m_compilation_artist = lcompilation_artist; m_formattedartist = m_formattedtitle = ""; }
     
    148153    QString formatReplaceSymbols(const QString &format);
    149154
    150155    QString m_artist;
     156    QString m_searchartist;
    151157    QString m_compilation_artist;
    152158    QString m_album;
    153159    QString m_title;
     
    177183    static QString m_formatnormalcdartist;
    178184    static QString m_formatnormalcdtrack;
    179185
     186    static QString m_formatnormalsortartist;
     187
    180188    static QString m_formatcompilationfileartist;
    181189    static QString m_formatcompilationfiletrack;
    182190    static QString m_formatcompilationcdartist;
  • mythmusic/mythmusic/editmetadata.cpp

     
    3434        artist_edit->setText(m_metadata->Artist());
    3535    }
    3636
     37    if (searchartist_edit)
     38    {
     39        searchartist_edit->setText(m_metadata->SearchArtist());
     40    }
     41
    3742    if (compilation_artist_edit)
    3843    {
    3944        compilation_artist_edit->setText(m_metadata->CompilationArtist());
     
    185190        artist_edit->createEdit(this);
    186191        connect(artist_edit, SIGNAL(loosingFocus()), this, SLOT(editLostFocus()));
    187192    }
     193
     194    searchartist_edit = getUIRemoteEditType("searchartist_edit");
     195    if (searchartist_edit)
     196    {
     197        searchartist_edit->createEdit(this);
     198        connect(searchartist_edit, SIGNAL(loosingFocus()), this, SLOT(editLostFocus()));
     199    }
    188200   
    189201    compilation_artist_edit = getUIRemoteEditType("compilation_artist_edit");
    190202    if (compilation_artist_edit)
     
    297309    {
    298310        m_metadata->setArtist(artist_edit->getText());
    299311    }
     312    else if (whichEditor == searchartist_edit)
     313    {
     314        m_metadata->setSearchArtist(searchartist_edit->getText());
     315    }
    300316    else if (whichEditor == compilation_artist_edit)
    301317    {
    302318        m_metadata->setCompilationArtist(compilation_artist_edit->getText());
  • mythmusic/mythmusic/metaioavfcomment.cpp

     
    5151 */
    5252Metadata* MetaIOAVFComment::read(QString filename)
    5353{
    54     QString artist = "", compilation_artist = "", album = "", title = "", genre = "";
     54    QString artist = "", search_artist = "", compilation_artist = "", album = "", title = "", genre = "";
    5555    int year = 0, tracknum = 0, length = 0;
    5656   
    5757    AVFormatContext* p_context = NULL;
     
    7676    else
    7777    {
    7878        artist += (char *)p_context->author;
     79        search_artist += (char *)p_context->author;
    7980        // compilation_artist???
    8081        album += (char *)p_context->album;
    8182        genre += (char *)p_context->genre;
     
    8586   
    8687    length = getTrackLength(p_context);
    8788
    88     Metadata *retdata = new Metadata(filename, artist, compilation_artist, album,
    89                                      title, genre, year, tracknum, length);
     89    Metadata *retdata = new Metadata(filename, artist, search_artist, compilation_artist,
     90                                     album, title, genre, year, tracknum, length);
    9091
    9192    retdata->determineIfCompilation();
    9293
  • mythmusic/mythmusic/editmetadata.h

     
    5858    //
    5959
    6060    UIRemoteEditType    *artist_edit;
     61    UIRemoteEditType    *searchartist_edit;
    6162    UIRemoteEditType    *compilation_artist_edit;
    6263    UIRemoteEditType    *album_edit;
    6364    UIRemoteEditType    *title_edit;
  • mythmusic/mythmusic/cddecoder.cpp

     
    334334Metadata *CdDecoder::getMetadata()
    335335{
    336336
    337     QString artist = "", album = "", compilation_artist = "", title = "", genre = "";
     337    QString artist = "", search_artist = "", album = "", compilation_artist = "", title = "", genre = "";
    338338    int year = 0, tracknum = 0, length = 0;
    339339
    340340    int cd = cd_init_device((char *)devicename.ascii());
     
    428428    length = length < 0 ? 0 : length;
    429429    length *= 1000;
    430430
    431     Metadata *retdata = new Metadata(filename, artist, compilation_artist,
     431    Metadata *retdata = new Metadata(filename, artist, search_artist, compilation_artist,
    432432                                     album, title, genre, year, tracknum, length);
    433433
    434434    retdata->determineIfCompilation(true);
     
    486486        if (mdata->Artist() != discdata.data_artist)
    487487            strncpy(discdata.data_artist, mdata->Artist().utf8(), 256);
    488488    }
     489
     490    if (mdata->SearchArtist() != discdata.data_artist)
     491        strncpy(discdata.data_artist, mdata->SearchArtist().utf8(), 256);
     492
    489493    if (mdata->Album() != discdata.data_title)
    490494        strncpy(discdata.data_title, mdata->Album().utf8(), 256);
    491495    if (mdata->Title() != discdata.data_track[tracknum - 1].track_name)
  • mythmusic/mythmusic/metaiooggvorbiscomment.cpp

     
    275275 */
    276276Metadata* MetaIOOggVorbisComment::read(QString filename)
    277277{
    278     QString artist = "", compilation_artist = "", album = "", title = "", genre = "";
     278    QString artist = "", search_artist = "", compilation_artist = "", album = "", title = "", genre = "";
    279279    int year = 0, tracknum = 0, length = 0;
    280280    bool compilation = false;
    281281
     
    302302            //
    303303       
    304304            artist = getComment(comment, MYTH_VORBISCOMMENT_ARTIST);
     305            search_artist = getComment(comment, MYTH_VORBISCOMMENT_ARTIST);
    305306            compilation_artist = getComment(comment, MYTH_VORBISCOMMENT_COMPILATIONARTIST);
    306307            album = getComment(comment, MYTH_VORBISCOMMENT_ALBUM);
    307308            title = getComment(comment, MYTH_VORBISCOMMENT_TITLE);
     
    330331        readFromFilename(filename, artist, album, title, genre, tracknum);
    331332    }
    332333       
    333     Metadata *retdata = new Metadata(filename, artist, compilation_artist, album,
    334                                      title, genre, year, tracknum, length);
     334    Metadata *retdata = new Metadata(filename, artist, search_artist, compilation_artist,
     335                                     album, title, genre, year, tracknum, length);
    335336
    336337    retdata->setCompilation(compilation);
    337338   
  • mythmusic/mythmusic/metaioid3v2.cpp

     
    172172 */
    173173Metadata* MetaIOID3v2::read(QString filename)
    174174{
    175     QString artist = "", compilation_artist = "", album = "", title = "",
    176             genre = "";
     175    QString artist = "", search_artist = "", compilation_artist = "", album = "",
     176            title = "", genre = "";
    177177    int year = 0, tracknum = 0, length = 0;
    178178    bool compilation = false;
    179179    id3_file *p_input = NULL;
     
    194194       
    195195        title = getComment(tag, ID3_FRAME_TITLE);
    196196        artist = getComment(tag, ID3_FRAME_ARTIST);
     197        search_artist = getComment(tag, ID3_FRAME_ARTIST);
    197198        compilation_artist = getComment(tag, MYTH_ID3_FRAME_COMPILATIONARTIST);
    198199        album = getComment(tag, ID3_FRAME_ALBUM);
    199200        compilation = (MYTH_MUSICBRAINZ_ALBUMARTIST_UUID
     
    260261        return NULL;
    261262    }
    262263
    263     Metadata *retdata = new Metadata(filename, artist, compilation_artist, album,
    264                                      title, genre, year, tracknum, length);
     264    Metadata *retdata = new Metadata(filename, artist, search_artist, compilation_artist,
     265                                     album, title, genre, year, tracknum, length);
    265266                                     
    266267    retdata->setCompilation(compilation);
    267268