Example #1
0
        /// <summary>
        /// 编辑Lakka列表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnLakkaEdit_Click(object sender, EventArgs e)
        {
            Form frm = new FrmLakka();

            frm.ShowDialog(this);
            frm.Dispose();
        }
Example #2
0
        /// <summary>
        /// 根据ROM目录生成Lakka列表
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnCreateLakka_Click(object sender, EventArgs e)
        {
            using (FolderBrowserDialog dialog = new FolderBrowserDialog())
            {
                dialog.Description = "请选择 游戏ROM所在的文件夹";

                if (dialog.ShowDialog() == DialogResult.OK)
                {
                    FrmLakka lakka = new FrmLakka();
                    ICollection <FileInfo> files = lakka.readRomToMem(dialog.SelectedPath).Values;
                    lakka.Dispose();
                    Dictionary <string, GameItem> games = new Dictionary <string, GameItem>();
                    foreach (FileInfo fi in files)
                    {
                        GameItem item = new GameItem();
                        item.V1RomFullFileName = fi.FullName;
                        item.V2RomCnName       = fi.FullName.Remove(fi.FullName.LastIndexOf(fi.Extension)); //item.getRomShortFileNameWithOutExtension();
                        item.V3coreBinaryPath  = "DETECT_CORE";
                        item.V4EmuType         = "DETECT_TYPE";
                        item.V5Crc32           = "DETECT";
                        item.V6pListName       = "PLAY_LIST_FILE_NAME";
                        item.removeUnSupportedFileChar();
                        games.Add(item.V1RomFullFileName, item);
                    }

                    using (SaveFileDialog fileDialog = new SaveFileDialog())
                    {
                        fileDialog.Title            = "保存Lakka游戏列表文件";
                        fileDialog.Filter           = "所有文件(*.lpl)|*.lpl";
                        fileDialog.InitialDirectory = dialog.SelectedPath;
                        if (fileDialog.ShowDialog() == DialogResult.OK)
                        {
                            //排序
                            List <GameItem> sortedList = new List <GameItem>();
                            sortedList.AddRange(games.Values);
                            sortedList.Sort();

                            FileStream fs = File.Create(fileDialog.FileName);
                            foreach (GameItem item in sortedList)
                            {
                                Utils.WriteStrToFile(fs, item.V1RomFullFileName);
                                Utils.WriteStrToFile(fs, item.V2RomCnName);
                                Utils.WriteStrToFile(fs, item.V3coreBinaryPath);
                                Utils.WriteStrToFile(fs, item.V4EmuType);
                                Utils.WriteStrToFile(fs, item.V5Crc32);
                                Utils.WriteStrToFile(fs, item.V6pListName);
                            }
                            fs.Flush();
                            fs.Close();
                            MessageBox.Show("成功转换<" + games.Count.ToString() + ">个游戏");
                        }
                    }
                }
            }
        }