Ticket #9362: 99-mythmusic-cdio-playbackbox.diff

File 99-mythmusic-cdio-playbackbox.diff, 4.9 KB (added by anonymous, 15 years ago)
  • mythplugins/mythmusic/mythmusic/playbackbox.cpp

     
    3333#include "playlistcontainer.h"
    3434#include "search.h"
    3535
    36 #ifndef USING_MINGW
    37 #include "cddecoder.h"
    38 #endif // USING_MINGW
    39 
    4036PlaybackBoxMusic::PlaybackBoxMusic(MythMainWindow *parent, QString window_name,
    4137                                   QString theme_filename, const QString &dev, const char *name)
    4238
     
    468464                                            160, 160);
    469465                mainvisual->setVisual(visual_modes[current_visual]);
    470466                bannerDisable();
    471                 updateTrackInfo(curMeta);
     467                if (curMeta)
     468                    updateTrackInfo(curMeta);
    472469
    473470                if (!m_parent->IsExitingToMain())
    474471                    handled = true;
     
    970967
    971968void PlaybackBoxMusic::occasionallyCheckCD()
    972969{
    973     if (!cd_reader_thread->getLock()->tryLock())
     970    if (!cd_reader_thread || !cd_reader_thread->getLock()->tryLock())
    974971        return;
    975972    cd_reader_thread->getLock()->unlock();
    976973
     
    10681065
    10691066        GenericTree *node = music_tree_list->getCurrentNode();
    10701067        curMeta = gMusicData->all_music->getMetadata(node->getInt());
    1071         updateTrackInfo(curMeta);
     1068        if (curMeta)
     1069            updateTrackInfo(curMeta);
    10721070
    10731071        setShuffleMode(gPlayer->getShuffleMode());
    10741072
     
    11061104                if (scan_for_cd)
    11071105                    updatePlaylistFromCD();
    11081106
     1107                bool bLocked = cd_reader_thread ?
     1108                    cd_reader_thread->getLock()->lock(), true : false;
     1109
    11091110                music_tree_list->showWholeTree(show_whole_tree);
    11101111                Q3ValueList <int> branches_to_current_node;
    11111112                branches_to_current_node.append(0); //  Root node
     
    11351136                if (curMeta)
    11361137                    updateTrackInfo(curMeta);
    11371138
     1139                if (bLocked && cd_reader_thread)
     1140                    cd_reader_thread->getLock()->unlock();
    11381141                return;     // Do not restart Timer
    11391142            }
    11401143            else
     
    13571360            gPlayer->getOutput()->SetTimecode(0);
    13581361    }
    13591362
    1360     bannerEnable(curMeta, show_album_art);
     1363    if (curMeta)
     1364        bannerEnable(curMeta, show_album_art);
    13611365}
    13621366
    13631367void PlaybackBoxMusic::visEnable()
     
    13881392{
    13891393    if (mainvisual->bannerIsShowing())
    13901394        bannerDisable();
    1391     else
     1395    else if (mdata)
    13921396        bannerEnable(mdata, false);
    13931397}
    13941398
     
    18011805                        if (node)
    18021806                        {
    18031807                            curMeta = gMusicData->all_music->getMetadata(node->getInt());
    1804                             updateTrackInfo(curMeta);
     1808                            if (curMeta)
     1809                                updateTrackInfo(curMeta);
    18051810
    18061811                            maxTime = curMeta->Length() / 1000;
    18071812
     
    18271832                    if (node)
    18281833                    {
    18291834                        curMeta = gMusicData->all_music->getMetadata(node->getInt());
    1830                         updateTrackInfo(curMeta);
     1835                        if (curMeta)
     1836                            updateTrackInfo(curMeta);
    18311837
    18321838                        maxTime = curMeta->Length() / 1000;
    18331839
     
    20692075
    20702076void PlaybackBoxMusic::updateTrackInfo(Metadata *mdata)
    20712077{
    2072     if (visualizer_status != 2)
     2078    if (mdata)
    20732079    {
    2074         if (title_text)
    2075             title_text->SetText(mdata->FormatTitle());
    2076         if (artist_text)
    2077             artist_text->SetText(mdata->FormatArtist());
    2078         if (album_text)
    2079             album_text->SetText(mdata->Album());
    2080         if (albumart_image)
    2081             showAlbumArtImage(mdata);
     2080        if (visualizer_status != 2)
     2081        {
     2082            if (title_text)
     2083                title_text->SetText(mdata->FormatTitle());
     2084            if (artist_text)
     2085                artist_text->SetText(mdata->FormatArtist());
     2086            if (album_text)
     2087                album_text->SetText(mdata->Album());
     2088            if (albumart_image)
     2089                showAlbumArtImage(mdata);
    20822090
    2083         if (showrating)
    2084         {
    2085             if (ratings_image)
    2086                 ratings_image->setRepeat(mdata->Rating());
     2091            if (showrating)
     2092            {
     2093                if (ratings_image)
     2094                    ratings_image->setRepeat(mdata->Rating());
     2095            }
    20872096        }
     2097        setTrackOnLCD(mdata);
    20882098    }
    2089     setTrackOnLCD(mdata);
    20902099}
    20912100
    20922101void PlaybackBoxMusic::showAlbumArtImage(Metadata *mdata)
     
    21642173        }
    21652174
    21662175        curMeta = gMusicData->all_music->getMetadata(node_int);
     2176        if (curMeta)
     2177            updateTrackInfo(curMeta);
    21672178
    2168         updateTrackInfo(curMeta);
    2169 
    21702179        maxTime = curMeta->Length() / 1000;
    21712180
    21722181        QString time_string = getTimeString(maxTime, 0);