Example #1
0
        private void SetImageLayoutFromFolder(DataDisc data, bool isVideoDVD, string sourceFolder)
        {
            if (isVideoDVD)
            {
                data.DvdVideo  = true;
                data.CloseDisc = true;
            }

            DataFile fileSystemRoot = new DataFile();

            // Create directory structure

            // Set up the root of the file system
            fileSystemRoot.IsDirectory  = true;
            fileSystemRoot.LongFilename = "\\";
            fileSystemRoot.FilePath     = "\\";

            // Import all files
            CreateFileTree(fileSystemRoot, sourceFolder);

            // Set image layout
            if (isVideoDVD)
            {
                using (var dvd = new VideoDVD())
                {
                    // Pass the raw layout to VideoDVD
                    if (!dvd.SetImageLayout(fileSystemRoot))
                    {
                        throw new BurnerException(dvd.Error);
                    }

                    // Get the correct dvd layout
                    if (!data.SetImageLayout(dvd.ImageLayout))
                    {
                        throw new BurnerException(data.Error);
                    }
                }
            }
            else
            {
                if (!data.SetImageLayout(fileSystemRoot))
                {
                    throw new BurnerException(data.Error);
                }
            }
        }