Example #1
0
    public IEnumerator SaveProjectIntoFile(Project project, byte[] audio, string fileFullName) //Save the project in file fileFullName
    {
        stage.forceToPlaceNotes = true;
        savingText.GetComponent <Text>().color = backGroundImageLeft.activeInHierarchy ? Color.black : Color.white;
        savingText.SetActive(true);
        projectData = new FullProjectDataV2
        {
            project   = project,
            audio     = audio,
            audioType = Path.GetExtension(project.songName)
        };
        Thread saveThread = new Thread(() => Save(projectData, fileFullName));

        saveThread.Start();
        while (saveThread.IsAlive)
        {
            yield return(null);
        }
        savingText.SetActive(false);
        saveCompleteText.GetComponent <Text>().color = backGroundImageLeft.activeInHierarchy ? Color.black : Color.white;
        saveCompleteText.SetActive(true);
        stage.forceToPlaceNotes = false;
        yield return(new WaitForSeconds(3.0f));

        saveCompleteText.SetActive(false);
    }
Example #2
0
    private void Load(string fileFullName)
    {
        projectData = null;
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        FileStream      fileStream      = new FileStream(fileFullName, FileMode.Open);

        try
        {
            object deserializedData = binaryFormatter.Deserialize(fileStream);
            switch (deserializedData)
            {
            case SerializableProjectData v1:
                projectData = ProjectVersionConversion.Version1To2(v1);
                break;

            case FullProjectDataV2 v2:
                projectData = v2;
                break;
            }
        }
        catch (Exception exc)
        {
            Debug.LogError(exc.Message);
        }
        fileStream.Close();
    }
Example #3
0
    private void Save(FullProjectDataV2 projectData, string fileFullName)
    {
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        FileStream      fileStream      = new FileStream(fileFullName, FileMode.Create);

        binaryFormatter.Serialize(fileStream, projectData);
        fileStream.Close();
    }
    public static FullProjectDataV2 Version1To2(SerializableProjectData dataV1)
    {
        FullProjectDataV2 dataV2 = new FullProjectDataV2
        {
            project   = dataV1.project,
            audioType = ".wav"
        };
        WavEncoder wavEncoder = new WavEncoder
        {
            channel    = dataV1.channel,
            frequency  = dataV1.frequency,
            length     = dataV1.length,
            sampleData = dataV1.sampleData
        };

        wavEncoder.EncodeToWav(out dataV2.audio);
        dataV2.project.songName = "converted audio.wav";
        return(dataV2);
    }
Example #5
0
    private void Load(string fileFullName)
    {
        projectData = null;
        BinaryFormatter binaryFormatter = new BinaryFormatter();
        FileStream      fileStream      = new FileStream(fileFullName, FileMode.Open);

        try
        {
            object deserializedData = binaryFormatter.Deserialize(fileStream);
            if (deserializedData is SerializableProjectData)
            {
                projectData = ProjectVersionConversion.Version1To2((SerializableProjectData)deserializedData);
            }
            else if (deserializedData is FullProjectDataV2)
            {
                projectData = (FullProjectDataV2)deserializedData;
            }
        }
        catch (Exception exc)
        {
            Debug.LogError(exc.Message);
        }
        fileStream.Close();
    }