core/movie: Allow setting a playback completion callback
Instead of specifying it when starting playback. This is necessary as you can end up playing the movie even if you started as Recording (for example, loading a state in R/O mode will switch to Playing mode)
This commit is contained in:
		@@ -486,8 +486,11 @@ void Movie::SaveMovie() {
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Movie::StartPlayback(const std::string& movie_file,
 | 
			
		||||
                          std::function<void()> completion_callback) {
 | 
			
		||||
void Movie::SetPlaybackCompletionCallback(std::function<void()> completion_callback) {
 | 
			
		||||
    playback_completion_callback = completion_callback;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
void Movie::StartPlayback(const std::string& movie_file) {
 | 
			
		||||
    LOG_INFO(Movie, "Loading Movie for playback");
 | 
			
		||||
    FileUtil::IOFile save_record(movie_file, "rb");
 | 
			
		||||
    const u64 size = save_record.GetSize();
 | 
			
		||||
@@ -510,7 +513,6 @@ void Movie::StartPlayback(const std::string& movie_file,
 | 
			
		||||
 | 
			
		||||
            current_byte = 0;
 | 
			
		||||
            id = header.id;
 | 
			
		||||
            playback_completion_callback = completion_callback;
 | 
			
		||||
 | 
			
		||||
            LOG_INFO(Movie, "Loaded Movie, ID: {:016X}", id);
 | 
			
		||||
        }
 | 
			
		||||
 
 | 
			
		||||
@@ -42,8 +42,8 @@ public:
 | 
			
		||||
        return s_instance;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    void StartPlayback(const std::string& movie_file,
 | 
			
		||||
                       std::function<void()> completion_callback = [] {});
 | 
			
		||||
    void SetPlaybackCompletionCallback(std::function<void()> completion_callback);
 | 
			
		||||
    void StartPlayback(const std::string& movie_file);
 | 
			
		||||
    void StartRecording(const std::string& movie_file, const std::string& author);
 | 
			
		||||
 | 
			
		||||
    /**
 | 
			
		||||
@@ -165,7 +165,7 @@ private:
 | 
			
		||||
    u32 rerecord_count = 1;
 | 
			
		||||
    bool read_only = true;
 | 
			
		||||
 | 
			
		||||
    std::function<void()> playback_completion_callback;
 | 
			
		||||
    std::function<void()> playback_completion_callback = [] {};
 | 
			
		||||
 | 
			
		||||
    template <class Archive>
 | 
			
		||||
    void serialize(Archive& ar, const unsigned int file_version);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user