Ticket #11865: channelIconsSG.patch.1

File channelIconsSG.patch.1, 1.9 KB (added by Bill Meek <keemllib@…>, 11 years ago)

Added LOG messages (with -v upnp & -loglevel debug,) proper Storage Group selection.

Line 
1diff --git a/mythtv/programs/mythbackend/services/guide.cpp b/mythtv/programs/mythbackend/services/guide.cpp
2index 9132243..fd214a8 100644
3--- a/mythtv/programs/mythbackend/services/guide.cpp
4+++ b/mythtv/programs/mythbackend/services/guide.cpp
5@@ -33,6 +33,8 @@
6 #include "scheduler.h"
7 #include "autoexpire.h"
8 #include "channelutil.h"
9+#include "mythcorecontext.h"
10+#include "storagegroup.h"
11 
12 extern AutoExpire  *expirer;
13 extern Scheduler   *sched;
14@@ -225,9 +227,34 @@ QFileInfo Guide::GetChannelIcon( int nChanId,
15     // Get Icon file path
16 
17     QString sFileName = ChannelUtil::GetIcon( nChanId );
18+    QString sChannelIconsDir;
19+    StorageGroup sg;
20 
21-    if (sFileName.isEmpty())
22+    if (sFileName.isEmpty() || !QFileInfo( sFileName ).isReadable() )
23+    {
24+        LOG( VB_UPNP, LOG_DEBUG, QString( "chanid '%1' has no readable icon" )
25+            .arg( nChanId ) );
26         return QFileInfo();
27+    }
28+
29+    if ( !sFileName.startsWith( "/" ) )
30+    {
31+
32+        sg.Init( "ChannelIcons", gCoreContext->GetHostName(), false );
33+
34+        sChannelIconsDir = sg.GetFirstDir();
35+
36+        if ( sChannelIconsDir.isEmpty() )
37+        {
38+            LOG( VB_UPNP, LOG_DEBUG,
39+                QString( "No 'ChannelIcons' Storage Group (icon '%1')" )
40+                    .arg( sFileName ) );
41+            return QFileInfo();
42+        }
43+
44+        sFileName = QString( "%1/%2" ).arg(sChannelIconsDir).arg(sFileName);
45+
46+    }
47 
48     if ((nWidth <= 0) && (nHeight <= 0))
49     {
50@@ -277,7 +304,12 @@ QFileInfo Guide::GetChannelIcon( int nChanId,
51     QImage img = pImage->scaled( nWidth, nHeight, Qt::IgnoreAspectRatio,
52                                 Qt::SmoothTransformation);
53 
54-    img.save( sNewFileName, "PNG" );
55+    if ( !img.save( sNewFileName, "PNG" ) )
56+    {
57+        LOG( VB_UPNP, LOG_DEBUG,
58+            QString( "Can't save channel icon: '%1'" ).arg( sNewFileName ) );
59+        return QFileInfo();
60+    }
61 
62     delete pImage;