From 771629c6828fe024d7452ce81d901b96d28b48c8 Mon Sep 17 00:00:00 2001
From: Gavin Hurlbut <gjhurlbu@gmail.com>
Date: Sun, 15 Aug 2010 23:22:24 -0700
Subject: [PATCH] Reworked patch from #4517 - sort items in UPnP video
diff --git a/mythtv/libs/libmythupnp/upnpcds.cpp b/mythtv/libs/libmythupnp/upnpcds.cpp
index 9f55c5b..df06eb9 100644
|
a
|
b
|
void UPnpCDSExtension::CreateItems( UPnpCDSRequest *pRequest,
|
| 1209 | 1209 | if (query.isConnected()) |
| 1210 | 1210 | { |
| 1211 | 1211 | QString sWhere( "" ); |
| | 1212 | QString sOrder( "" ); |
| 1212 | 1213 | |
| 1213 | 1214 | if ( sKey.length() > 0) |
| 1214 | 1215 | { |
| … |
… |
void UPnpCDSExtension::CreateItems( UPnpCDSRequest *pRequest,
|
| 1216 | 1217 | .arg( pInfo->column ); |
| 1217 | 1218 | } |
| 1218 | 1219 | |
| | 1220 | QString orderColumn( pInfo->orderColumn ); |
| | 1221 | if (orderColumn.length() != 0) { |
| | 1222 | sOrder = QString( "ORDER BY %1 " ) |
| | 1223 | .arg( orderColumn ); |
| | 1224 | } |
| | 1225 | |
| 1219 | 1226 | QString sSQL = QString( "%1 %2 LIMIT %3, %4" ) |
| 1220 | 1227 | .arg( GetItemListSQL( pInfo->column ) ) |
| 1221 | | .arg( sWhere ) |
| | 1228 | .arg( sWhere + sOrder ) |
| 1222 | 1229 | .arg( pRequest->m_nStartingIndex ) |
| 1223 | 1230 | .arg( pRequest->m_nRequestedCount ); |
| 1224 | 1231 | |
diff --git a/mythtv/libs/libmythupnp/upnpcds.h b/mythtv/libs/libmythupnp/upnpcds.h
index b645ef9..6d6a358 100644
|
a
|
b
|
typedef struct
|
| 129 | 129 | const char *column; |
| 130 | 130 | const char *sql; |
| 131 | 131 | const char *where; |
| | 132 | const char *orderColumn; |
| 132 | 133 | |
| 133 | 134 | } UPnpCDSRootInfo; |
| 134 | 135 | |
diff --git a/mythtv/programs/mythbackend/upnpcdsmusic.cpp b/mythtv/programs/mythbackend/upnpcdsmusic.cpp
index 43fbe6a..3db3138 100644
|
a
|
b
|
UPnpCDSRootInfo UPnpCDSMusic::g_RootNodes[] =
|
| 53 | 53 | "FROM music_songs song " |
| 54 | 54 | "%1 " |
| 55 | 55 | "ORDER BY name", |
| 56 | | "" }, |
| | 56 | "", "" }, |
| 57 | 57 | |
| 58 | 58 | /* |
| 59 | 59 | This is currently broken... need to handle list of items with single parent (like 'All Music') |
diff --git a/mythtv/programs/mythbackend/upnpcdstv.cpp b/mythtv/programs/mythbackend/upnpcdstv.cpp
index 2fbd5f3..9efd637 100644
|
a
|
b
|
UPnpCDSRootInfo UPnpCDSTv::g_RootNodes[] =
|
| 47 | 47 | "FROM recorded " |
| 48 | 48 | "%1 " |
| 49 | 49 | "ORDER BY starttime DESC", |
| 50 | | "" }, |
| | 50 | "", "" }, |
| 51 | 51 | |
| 52 | 52 | { "By Title", |
| 53 | 53 | "title", |
| … |
… |
UPnpCDSRootInfo UPnpCDSTv::g_RootNodes[] =
|
| 58 | 58 | "%1 " |
| 59 | 59 | "GROUP BY title " |
| 60 | 60 | "ORDER BY title", |
| 61 | | "WHERE title=:KEY" }, |
| | 61 | "WHERE title=:KEY", "" }, |
| 62 | 62 | |
| 63 | 63 | { "By Genre", |
| 64 | 64 | "category", |
| … |
… |
UPnpCDSRootInfo UPnpCDSTv::g_RootNodes[] =
|
| 69 | 69 | "%1 " |
| 70 | 70 | "GROUP BY category " |
| 71 | 71 | "ORDER BY category", |
| 72 | | "WHERE category=:KEY" }, |
| | 72 | "WHERE category=:KEY", "" }, |
| 73 | 73 | |
| 74 | 74 | { "By Date", |
| 75 | 75 | "DATE_FORMAT(starttime, '%Y-%m-%d')", |
| … |
… |
UPnpCDSRootInfo UPnpCDSTv::g_RootNodes[] =
|
| 80 | 80 | "%1 " |
| 81 | 81 | "GROUP BY name " |
| 82 | 82 | "ORDER BY starttime DESC", |
| 83 | | "WHERE DATE_FORMAT(starttime, '%Y-%m-%d') =:KEY" }, |
| | 83 | "WHERE DATE_FORMAT(starttime, '%Y-%m-%d') =:KEY", "" }, |
| 84 | 84 | |
| 85 | 85 | { "By Channel", |
| 86 | 86 | "chanid", |
| … |
… |
UPnpCDSRootInfo UPnpCDSTv::g_RootNodes[] =
|
| 92 | 92 | "%1 " |
| 93 | 93 | "GROUP BY name " |
| 94 | 94 | "ORDER BY channel.chanid", |
| 95 | | "WHERE channel.chanid=:KEY" }, |
| | 95 | "WHERE channel.chanid=:KEY", "" }, |
| 96 | 96 | |
| 97 | 97 | |
| 98 | 98 | { "By Group", |
| … |
… |
UPnpCDSRootInfo UPnpCDSTv::g_RootNodes[] =
|
| 103 | 103 | "%1 " |
| 104 | 104 | "GROUP BY recgroup " |
| 105 | 105 | "ORDER BY recgroup", |
| 106 | | "WHERE recgroup=:KEY" } |
| | 106 | "WHERE recgroup=:KEY", "" } |
| 107 | 107 | }; |
| 108 | 108 | |
| 109 | 109 | int UPnpCDSTv::g_nRootCount = sizeof( g_RootNodes ) / sizeof( UPnpCDSRootInfo ); |
diff --git a/mythtv/programs/mythbackend/upnpcdsvideo.cpp b/mythtv/programs/mythbackend/upnpcdsvideo.cpp
index 859e6ea..bfd91dc 100644
|
a
|
b
|
UPnpCDSRootInfo UPnpCDSVideo::g_RootNodes[] =
|
| 31 | 31 | "FROM upnpmedia " |
| 32 | 32 | "%1 " |
| 33 | 33 | "ORDER BY title", |
| 34 | | "" } |
| | 34 | "", "title" } |
| 35 | 35 | |
| 36 | 36 | }; |
| 37 | 37 | |