fixed: LINUX build errors
[xbmc:xbmc.git] / xbmc / ProgramDatabase.h
1 #pragma once
2 /*
3  *      Copyright (C) 2005-2008 Team XBMC
4  *      http://www.xbmc.org
5  *
6  *  This Program is free software; you can redistribute it and/or modify
7  *  it under the terms of the GNU General Public License as published by
8  *  the Free Software Foundation; either version 2, or (at your option)
9  *  any later version.
10  *
11  *  This Program is distributed in the hope that it will be useful,
12  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
13  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
14  *  GNU General Public License for more details.
15  *
16  *  You should have received a copy of the GNU General Public License
17  *  along with XBMC; see the file COPYING.  If not, write to
18  *  the Free Software Foundation, 675 Mass Ave, Cambridge, MA 02139, USA.
19  *  http://www.gnu.org/copyleft/gpl.html
20  *
21  */
22 #include "Database.h"
23
24 #ifdef _LINUX
25 #include "PlatformDefs.h" // FILETIME
26 #endif
27
28 typedef std::vector<CStdString> VECPROGRAMPATHS;
29
30 #define COMPARE_PERCENTAGE     0.90f // 90%
31 #define COMPARE_PERCENTAGE_MIN 0.50f // 50%
32
33 #define PROGRAM_DATABASE_NAME "MyPrograms6.db"
34
35 class CFileItem;
36
37 class CProgramDatabase : public CDatabase
38 {
39 public:
40   CProgramDatabase(void);
41   virtual ~CProgramDatabase(void);
42   bool AddTrainer(int iTitleId, const CStdString& strText);
43   bool RemoveTrainer(const CStdString& strText);
44   bool GetTrainers(unsigned int iTitleId, std::vector<CStdString>& vecTrainers);
45   bool GetAllTrainers(std::vector<CStdString>& vecTrainers);
46   bool SetTrainerOptions(const CStdString& strTrainerPath, unsigned int iTitleId, unsigned char* data, int numOptions);
47   bool GetTrainerOptions(const CStdString& strTrainerPath, unsigned int iTitleId, unsigned char* data, int numOptions);
48   void SetTrainerActive(const CStdString& strTrainerPath, unsigned int iTitleId, bool bActive);
49   CStdString GetActiveTrainer(unsigned int iTitleId);
50   bool HasTrainer(const CStdString& strTrainerPath);
51   bool ItemHasTrainer(unsigned int iTitleId);
52
53   int GetRegion(const CStdString& strFilenameAndPath);
54   bool SetRegion(const CStdString& strFilenameAndPath, int iRegion=-1);
55
56   uint32_t GetTitleId(const CStdString& strFilenameAndPath);
57   bool SetTitleId(const CStdString& strFilenameAndPath, uint32_t dwTitleId);
58   bool IncTimesPlayed(const CStdString& strFileName1);
59   bool SetDescription(const CStdString& strFileName1, const CStdString& strDescription);
60   bool GetXBEPathByTitleId(const uint32_t titleId, CStdString& strPathAndFilename);
61
62   uint32_t GetProgramInfo(CFileItem *item);
63   bool AddProgramInfo(CFileItem *item, unsigned int titleID);
64
65 protected:
66   virtual bool CreateTables();
67   virtual bool UpdateOldVersion(int version);
68
69   FILETIME TimeStampToLocalTime( unsigned __int64 timeStamp );
70 };