コード例 #1
0
        private void ReadFromReader(SQLiteDataReader dr, bool readRoms = false)
        {
            GameId             = Convert.ToUInt32(dr["GameId"]);
            DatId              = Convert.ToUInt32(dr["DatId"]);
            Name               = dr["name"].ToString();
            Description        = dr["description"].ToString();
            Manufacturer       = dr["manufacturer"].ToString();
            CloneOf            = dr["cloneOf"].ToString();
            RomOf              = dr["romof"].ToString();
            SourceFile         = dr["sourcefile"].ToString();
            IsBios             = dr["isbios"].ToString();
            Board              = dr["board"].ToString();
            Year               = dr["year"].ToString();
            IsTrurip           = Convert.ToBoolean(dr["istrurip"]);
            Publisher          = dr["publisher"].ToString();
            Developer          = dr["developer"].ToString();
            Edition            = dr["edition"].ToString();
            Version            = dr["version"].ToString();
            Type               = dr["type"].ToString();
            Media              = dr["media"].ToString();
            Language           = dr["language"].ToString();
            Players            = dr["players"].ToString();
            Ratings            = dr["ratings"].ToString();
            Genre              = dr["genre"].ToString();
            Peripheral         = dr["peripheral"].ToString();
            BarCode            = dr["barcode"].ToString();
            MediaCatalogNumber = dr["mediacatalognumber"].ToString();

            if (readRoms)
            {
                Roms = RvRom.ReadRoms(GameId);
            }
        }
コード例 #2
0
        public static List <RvRom> ReadRoms(uint gameId)
        {
            List <RvRom> roms = new List <RvRom>();

            SqlRead.Parameters["GameId"].Value = gameId;

            using (SQLiteDataReader dr = SqlRead.ExecuteReader())
            {
                while (dr.Read())
                {
                    RvRom row = new RvRom
                    {
                        RomId              = Convert.ToUInt32(dr["RomId"]),
                        GameId             = gameId,
                        Name               = dr["name"].ToString(),
                        Size               = FixLong(dr["size"]),
                        CRC                = VarFix.CleanMD5SHA1(dr["CRC"].ToString(), 8),
                        SHA1               = VarFix.CleanMD5SHA1(dr["SHA1"].ToString(), 40),
                        MD5                = VarFix.CleanMD5SHA1(dr["MD5"].ToString(), 32),
                        Merge              = dr["merge"].ToString(),
                        Status             = dr["status"].ToString(),
                        FileId             = FixLong(dr["FileId"]),
                        fileSize           = FixLong(dr["fileSize"]),
                        fileCompressedSize = FixLong(dr["fileCompressedSize"]),
                        fileCRC            = VarFix.CleanMD5SHA1(dr["fileCRC"].ToString(), 8),
                        fileSHA1           = VarFix.CleanMD5SHA1(dr["fileSHA1"].ToString(), 40),
                        fileMD5            = VarFix.CleanMD5SHA1(dr["fileMD5"].ToString(), 32)
                    };

                    roms.Add(row);
                }
                dr.Close();
            }
            return(roms);
        }
コード例 #3
0
        public void DBRead(int gameId, bool readRoms = false)
        {
            if (_commandRvGameRead == null)
            {
                _commandRvGameRead = new SQLiteCommand(@"
                SELECT GameId, DatId, name, description, manufacturer, cloneof, romof, sourcefile, isbios, board, year, istrurip, publisher, developer, edition, version, type, media, language, players, ratings, genre, peripheral, barcode, mediacatalognumber
                    FROM GAME WHERE GameId=@GameId ORDER BY name", Program.db.Connection);
                _commandRvGameRead.Parameters.Add(new SQLiteParameter("GameId"));
            }

            _commandRvGameRead.Parameters["GameId"].Value = gameId;

            using (DbDataReader dr = _commandRvGameRead.ExecuteReader())
            {
                if (dr.Read())
                {
                    RvGameReadFromReader(dr, this);
                }

                dr.Close();
            }

            if (readRoms)
            {
                Roms = RvRom.ReadRoms(GameId);
            }
        }
コード例 #4
0
        public static List <RvGame> ReadGames(uint datId, bool readRoms = false)
        {
            if (_commandRvGameReadDatGames == null)
            {
                _commandRvGameReadDatGames = new SQLiteCommand(@"
                SELECT GameId, DatId, name, description, manufacturer, cloneof, romof, sourcefile, isbios, board, year, istrurip, publisher, developer, edition, version, type, media, language, players, ratings, genre, peripheral, barcode, mediacatalognumber
                    FROM GAME WHERE DatId=@DatId ORDER BY name", Program.db.Connection);
                _commandRvGameReadDatGames.Parameters.Add(new SQLiteParameter("DatId"));
            }

            List <RvGame> games = new List <RvGame>();

            _commandRvGameReadDatGames.Parameters["DatId"].Value = datId;

            using (DbDataReader dr = _commandRvGameReadDatGames.ExecuteReader())
            {
                while (dr.Read())
                {
                    RvGame rvGame = new RvGame();
                    RvGameReadFromReader(dr, rvGame);
                    games.Add(rvGame);
                }
                dr.Close();
            }

            if (readRoms)
            {
                foreach (RvGame game in games)
                {
                    game.Roms = RvRom.ReadRoms(game.GameId);
                }
            }

            return(games);
        }
コード例 #5
0
        private static void MakeDB()
        {
            ExecuteNonQuery(@"CREATE TABLE IF NOT EXISTS [VERSION] ([Version] INTEGER NOT NULL); INSERT INTO VERSION (version) VALUES (@Version);", "version", DBVersion);

            ExecuteNonQuery(@"
                                
                CREATE TABLE IF NOT EXISTS [DIR] (
                    [DirId] INTEGER PRIMARY KEY NOT NULL,
                    [ParentDirId] INTEGER NULL,
                    [name] NVARCHAR(300) NOT NULL,
                    [fullname] NVARCHAR(300) NOT NULL,
                    [expanded] BOOLEAN DEFAULT 1 NOT NULL,
                    [found] BOOLEAN DEFAULT 1,
                    [RomTotal] INTEGER NULL,
                    [RomGot] iNTEGER NULL,
                    [RomNoDump] INTEGER NULL
                );
             
        ");

            RvDat.MakeDB();
            RvGame.MakeDB();
            RvRom.MakeDB();
            RvFile.MakeDB();
        }
コード例 #6
0
ファイル: rvRom.cs プロジェクト: mnadareski/RomVaultX
        public static List <RvRom> ReadRoms(uint gameId)
        {
            if (_commandRvRomReader == null)
            {
                _commandRvRomReader = new SQLiteCommand(
                    @"SELECT RomId,name,
                    type,
                    rom.size,
                    rom.crc,
                    rom.sha1,
                    rom.md5,
                    merge,status,putinzip,
                    rom.FileId,
                    files.size as fileSize,
                    files.compressedsize as fileCompressedSize,
                    files.crc as filecrc,
                    files.sha1 as filesha1,
                    files.md5 as filemd5
                FROM rom LEFT OUTER JOIN files ON files.FileId=rom.FileId WHERE GameId=@GameId ORDER BY RomId", Program.db.Connection);
                _commandRvRomReader.Parameters.Add(new SQLiteParameter("GameId"));
            }


            List <RvRom> roms = new List <RvRom>();

            _commandRvRomReader.Parameters["GameId"].Value = gameId;

            using (DbDataReader dr = _commandRvRomReader.ExecuteReader())
            {
                while (dr.Read())
                {
                    RvRom row = new RvRom
                    {
                        RomId              = Convert.ToUInt32(dr["RomId"]),
                        GameId             = gameId,
                        Name               = dr["name"].ToString(),
                        AltType            = VarFix.FixFileType(dr["type"]),
                        Size               = VarFix.FixLong(dr["size"]),
                        CRC                = VarFix.CleanMD5SHA1(dr["CRC"].ToString(), 8),
                        SHA1               = VarFix.CleanMD5SHA1(dr["SHA1"].ToString(), 40),
                        MD5                = VarFix.CleanMD5SHA1(dr["MD5"].ToString(), 32),
                        Merge              = dr["merge"].ToString(),
                        Status             = dr["status"].ToString(),
                        PutInZip           = (bool)dr["putinzip"],
                        FileId             = VarFix.FixLong(dr["FileId"]),
                        FileSize           = VarFix.FixLong(dr["fileSize"]),
                        FileCompressedSize = VarFix.FixLong(dr["fileCompressedSize"]),
                        FileCRC            = VarFix.CleanMD5SHA1(dr["fileCRC"].ToString(), 8),
                        FileSHA1           = VarFix.CleanMD5SHA1(dr["fileSHA1"].ToString(), 40),
                        FileMD5            = VarFix.CleanMD5SHA1(dr["fileMD5"].ToString(), 32)
                    };

                    roms.Add(row);
                }
                dr.Close();
            }
            return(roms);
        }
コード例 #7
0
        public int AddRom(RvRom rvRom)
        {
            if (Roms == null)
            {
                Roms = new List <RvRom>();
            }

            Roms.Add(rvRom);
            return(Roms.Count - 1);
        }
コード例 #8
0
        public int AddRom(RvRom rvRom)
        {
            if (Roms == null)
            {
                Roms = new List <RvRom>();
            }

            int index;

            ChildNameSearch(rvRom.Name, out index);
            Roms.Insert(index, rvRom);
            return(index);
        }
コード例 #9
0
        private void MakeDB()
        {
            /******** Create Tables ***********/

            ExecuteNonQuery(@"
                CREATE TABLE IF NOT EXISTS [VERSION] (
                    [Version] INTEGER NOT NULL);
                INSERT INTO VERSION (version) VALUES (@Version);",
                            "version", DBVersion);

            RvDir.CreateTable();
            RvDat.CreateTable();
            RvGame.CreateTable();
            RvFile.CreateTable();
            RvRom.CreateTable();
        }
コード例 #10
0
ファイル: rvRom.cs プロジェクト: thatswork/RomVaultX
        public static List<RvRom> ReadRoms(uint gameId)
        {
            List<RvRom> roms = new List<RvRom>();
            SqlRead.Parameters["GameId"].Value = gameId;

            using (SQLiteDataReader dr = SqlRead.ExecuteReader())
            {
                while (dr.Read())
                {
                    RvRom row = new RvRom
                    {
                        RomId = Convert.ToUInt32(dr["RomId"]),
                        GameId = gameId,
                        Name = dr["name"].ToString(),
                        Size = FixLong(dr["size"]),
                        CRC = VarFix.CleanMD5SHA1(dr["CRC"].ToString(), 8),
                        SHA1 = VarFix.CleanMD5SHA1(dr["SHA1"].ToString(), 40),
                        MD5 = VarFix.CleanMD5SHA1(dr["MD5"].ToString(), 32),
                        Merge = dr["merge"].ToString(),
                        Status = dr["status"].ToString(),
                        FileId = FixLong(dr["FileId"]),
                        fileSize = FixLong(dr["fileSize"]),
                        fileCompressedSize = FixLong(dr["fileCompressedSize"]),
                        fileCRC = VarFix.CleanMD5SHA1(dr["fileCRC"].ToString(), 8),
                        fileSHA1 = VarFix.CleanMD5SHA1(dr["fileSHA1"].ToString(), 40),
                        fileMD5 = VarFix.CleanMD5SHA1(dr["fileMD5"].ToString(), 32)
                    };

                    roms.Add(row);
                }
                dr.Close();
            }
            return roms;
        }
コード例 #11
0
ファイル: DatCmpReader.cs プロジェクト: thatswork/RomVaultX
        private static bool LoadRomFromDat(RvGame rvGame)
        {
            if (DatFileLoader.Next != "(")
            {
                DatUpdate.SendAndShowDat("( not found after rom", DatFileLoader.Filename);
                return false;
            }
            DatFileLoader.Gn();

            if (DatFileLoader.Next.ToLower() != "name")
            {
                DatUpdate.SendAndShowDat("Name not found as first object in ( )", DatFileLoader.Filename);
                return false;
            }

            RvRom rvRom = new RvRom();
            rvRom.Name = VarFix.CleanFullFileName(DatFileLoader.Gn());
            DatFileLoader.Gn();

            while (DatFileLoader.Next != ")")
            {
                switch (DatFileLoader.Next.ToLower())
                {
                    case "size": rvRom.Size = VarFix.ULong(DatFileLoader.Gn()); DatFileLoader.Gn(); break;
                    case "crc": rvRom.CRC = VarFix.CleanMD5SHA1(DatFileLoader.Gn(), 8); DatFileLoader.Gn(); break;
                    case "sha1": rvRom.SHA1 = VarFix.CleanMD5SHA1(DatFileLoader.Gn(), 40); DatFileLoader.Gn(); break;
                    case "md5": rvRom.MD5 = VarFix.CleanMD5SHA1(DatFileLoader.Gn(), 32); DatFileLoader.Gn(); break;
                    case "merge": rvRom.Merge = VarFix.CleanFullFileName(DatFileLoader.Gn()); DatFileLoader.Gn(); break;
                    case "flags": rvRom.Status = VarFix.ToLower(DatFileLoader.Gn()); DatFileLoader.Gn(); break;
                    case "date": DatFileLoader.Gn(); DatFileLoader.Gn(); break;
                    case "bios": DatFileLoader.Gn(); DatFileLoader.Gn(); break;
                    case "region": DatFileLoader.Gn(); DatFileLoader.Gn(); break;
                    case "offs": DatFileLoader.Gn(); DatFileLoader.Gn(); break;
                    case "nodump": rvRom.Status = "nodump"; DatFileLoader.Gn(); break;
                    default:
                        DatUpdate.SendAndShowDat("Error: key word '" + DatFileLoader.Next + "' not known in rom", DatFileLoader.Filename);
                        DatFileLoader.Gn();
                        break;
                }
            }

            rvGame.AddRom(rvRom);

            return true;
        }
コード例 #12
0
ファイル: DatXMLReader.cs プロジェクト: thatswork/RomVaultX
        private static void LoadRomFromDat(RvGame rvGame, XmlNode romNode)
        {
            if (romNode.Attributes == null)
                return;

            RvRom rvRom=new RvRom();
            rvRom.Name = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("name"));
            rvRom.Size = VarFix.ULong(romNode.Attributes.GetNamedItem("size"));
            rvRom.CRC = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("crc"), 8);
            rvRom.SHA1 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("sha1"), 40);
            rvRom.MD5 = VarFix.CleanMD5SHA1(romNode.Attributes.GetNamedItem("md5"), 32);
            rvRom.Merge = VarFix.CleanFullFileName(romNode.Attributes.GetNamedItem("merge"));
            rvRom.Status = VarFix.ToLower(romNode.Attributes.GetNamedItem("status"));

            rvGame.AddRom(rvRom);
        }
コード例 #13
0
ファイル: rvGame.cs プロジェクト: thatswork/RomVaultX
        public int AddRom(RvRom rvRom)
        {
            if (Roms == null)
                Roms = new List<RvRom>();

            Roms.Add(rvRom);
            return Roms.Count - 1;
        }