Merge pull request #3340 from da-anda/3d-streamdetails
authorjmarshallnz <jcmarsha@gmail.com>
Wed, 6 Nov 2013 20:28:57 +0000 (12:28 -0800)
committerjmarshallnz <jcmarsha@gmail.com>
Wed, 6 Nov 2013 20:28:57 +0000 (12:28 -0800)
[3D] Add stereomode of videos to streamdetails and expose info to skins

1  2 
xbmc/GUIInfoManager.cpp
xbmc/video/VideoDatabase.cpp
xbmc/video/VideoThumbLoader.cpp

Simple merge
Simple merge
@@@ -519,3 -523,33 +524,33 @@@ void CVideoThumbLoader::OnJobComplete(u
    }
    CJobQueue::OnJobComplete(jobID, success, job);
  }
 -}
+ void CVideoThumbLoader::DetectAndAddMissingItemData(CFileItem &item)
+ {
+   if (item.m_bIsFolder) return;
+   std::string stereoMode;
+   // detect stereomode for videos
+   if (item.HasVideoInfoTag())
+     stereoMode = item.GetVideoInfoTag()->m_streamDetails.GetStereoMode();
+   if (stereoMode.empty())
+   {
+     std::string path = item.GetPath();
+     if (item.IsVideoDb() && item.HasVideoInfoTag())
+       path = item.GetVideoInfoTag()->GetPath();
+     // check for custom stereomode setting in video settings
+     CVideoSettings itemVideoSettings;
+     m_videoDatabase->Open();
+     if (m_videoDatabase->GetVideoSettings(path, itemVideoSettings) && itemVideoSettings.m_StereoMode != RENDER_STEREO_MODE_OFF)
+       stereoMode = CStereoscopicsManager::Get().ConvertGuiStereoModeToString( (RENDER_STEREO_MODE) itemVideoSettings.m_StereoMode );
+     m_videoDatabase->Close();
+     // still empty, try grabbing from filename
+     // TODO: in case of too many false positives due to using the full path, extract the filename only using string utils
+     if (stereoMode.empty())
+       stereoMode = CStereoscopicsManager::Get().DetectStereoModeByString( path );
+   }
+   if (!stereoMode.empty())
+     item.SetProperty("stereomode", CStereoscopicsManager::Get().NormalizeStereoMode(stereoMode));
++}