~x3lectric/xbmc/svn-trunk

« back to all changes in this revision

Viewing changes to xbmc/MusicDatabase.cpp

  • Committer: kraqh3d
  • Date: 2006-02-19 01:21:04 UTC
  • Revision ID: svn-v4:568bbfeb-2a22-0410-94d2-cc84cf5bfa90:trunk/XBMC:5053
*** empty log message ***

Show diffs side-by-side

added added

removed removed

Lines of Context:
3729
3729
  return false;
3730
3730
}
3731
3731
 
 
3732
bool CMusicDatabase::GetRandomSong(CFileItem* item)
 
3733
{
 
3734
  long lSongs = -1;
 
3735
 
 
3736
  try
 
3737
  {
 
3738
    if (NULL == m_pDB.get()) return false;
 
3739
    if (NULL == m_pDS.get()) return false;
 
3740
 
 
3741
    CStdString strSQL=FormatSQL("select count(*) as count from songview");
 
3742
 
 
3743
    // run query
 
3744
    if (!m_pDS->query(strSQL.c_str())) return false;
 
3745
    int iRowsFound = m_pDS->num_rows();
 
3746
    if (iRowsFound != 1)
 
3747
    {
 
3748
      m_pDS->close();
 
3749
      return false;
 
3750
    }
 
3751
    lSongs = m_pDS->fv("songview.count").get_asLong();
 
3752
    m_pDS->close();
 
3753
 
 
3754
    if (lSongs <= 0)
 
3755
      return false;
 
3756
 
 
3757
    srand(timeGetTime());
 
3758
    long lRandom = rand() % lSongs;
 
3759
    strSQL=FormatSQL("select * from songview where idSong = %ld", lRandom);
 
3760
 
 
3761
    // run query
 
3762
    if (!m_pDS->query(strSQL.c_str())) return false;
 
3763
    iRowsFound = m_pDS->num_rows();
 
3764
    if (iRowsFound != 1)
 
3765
    {
 
3766
      m_pDS->close();
 
3767
      return false;
 
3768
    }
 
3769
    GetFileItemFromDataset(item, "");
 
3770
    m_pDS->close();
 
3771
    return true;
 
3772
  }
 
3773
  catch(...)
 
3774
  {
 
3775
    CLog::Log(LOGERROR,"CMusicDatabase::GetRandomSong() failed");
 
3776
  }
 
3777
  return false;
 
3778
}
 
 
b'\\ No newline at end of file'