Implement positioned movie playback opcode
This commit is contained in:
@@ -49,6 +49,8 @@ internal class RecordingHost : IHost
|
||||
public readonly List<(int Category, int BasisPoints)> AudioVolumeChanges = new();
|
||||
public readonly List<(int Category, bool Enabled)> AudioRouteChanges = new();
|
||||
public readonly List<(long Resource, int Surface, long Flags, long SyncMask)> Movies = new();
|
||||
public readonly List<(long Resource, int Surface, long Flags, long SyncMask, long PositionMs)>
|
||||
PositionedMovies = new();
|
||||
public System.Action? OnPlayMovie;
|
||||
public long? MovieStopTimeMs;
|
||||
public readonly HashSet<int> ActiveMovieSurfaces = new();
|
||||
@@ -216,6 +218,13 @@ internal class RecordingHost : IHost
|
||||
OnPlayMovie?.Invoke();
|
||||
return MovieStopTimeMs;
|
||||
}
|
||||
public long? PlayMovieToSurfaceAtPosition(
|
||||
long resourceId, int surfaceSlot, long movieFlags, long syncMask, long positionMs)
|
||||
{
|
||||
PositionedMovies.Add((resourceId, surfaceSlot, movieFlags, syncMask, positionMs));
|
||||
OnPlayMovie?.Invoke();
|
||||
return MovieStopTimeMs;
|
||||
}
|
||||
public bool IsMovieSurfaceActive(int surfaceSlot) => ActiveMovieSurfaces.Contains(surfaceSlot);
|
||||
public void PlayModalMovieToSurface(long resourceId, int surfaceSlot, long movieFlags)
|
||||
=> ModalMovies.Add((resourceId, surfaceSlot, movieFlags));
|
||||
|
||||
Reference in New Issue
Block a user