--- a/application.cpp
+++ b/application.cpp
@@ -306,30 +306,40 @@
}
}
-void Application::reconnectOrChoose()
-{
- string uid = qs2utf8s(m_settings->getPlayerUID());
- if (uid.empty() || !setupRenderer(uid)) {
- if (QMessageBox::warning(0, "Upplay",
- tr("Connection to current rendererer lost. "
- "Choose again ?"),
- QMessageBox::Cancel | QMessageBox::Ok,
- QMessageBox::Ok) == QMessageBox::Ok) {
- chooseRenderer();
- }
- }
-}
-
-bool Application::setupRenderer(const string& uid)
-{
+void Application::clear_renderer()
+{
+ m_rdr = UPnPClient::MRDH();
deleteZ(m_rdco);
deleteZ(m_avto);
deleteZ(m_ohtmo);
deleteZ(m_ohvlo);
deleteZ(m_ohpro);
+ m_ohsourcetype = OHProductQO::OHPR_SourceUnknown;
+}
+
+void Application::reconnectOrChoose()
+{
+ string uid = qs2utf8s(m_settings->getPlayerUID());
+ if (uid.empty() || !setupRenderer(uid)) {
+ clear_renderer();
+ m_playlist = shared_ptr<Playlist>(new PlaylistNULL());
+ m_playlistIsPlaylist = false;
+ playlist_connections();
+ if (QMessageBox::warning(0, "Upplay",
+ tr("Connection to current rendererer lost. "
+ "Choose again ?"),
+ QMessageBox::Cancel | QMessageBox::Ok,
+ QMessageBox::Ok) == QMessageBox::Ok) {
+ chooseRenderer();
+ }
+ }
+}
+
+bool Application::setupRenderer(const string& uid)
+{
+ clear_renderer();
+
bool needs_playlist = true;
-
- m_ohsourcetype = OHProductQO::OHPR_SourceUnknown;
// The media renderer object is not used directly except for
// providing handles to the services. Note that the lib will