Add rate change selector

This commit is contained in:
Arkadiusz Fal
2022-04-16 22:50:37 +02:00
parent 3f137be780
commit 3953bce8f8
5 changed files with 49 additions and 4 deletions

View File

@@ -216,8 +216,8 @@ final class MPVBackend: PlayerBackend {
}
}
func setRate(_: Float) {
// TODO: Implement rate change
func setRate(_ rate: Float) {
client.setDoubleAsync("speed", Double(rate))
}
func closeItem() {}

View File

@@ -225,6 +225,11 @@ final class MPVClient: ObservableObject {
mpv_set_property_async(mpv, 0, name, MPV_FORMAT_FLAG, &data)
}
func setDoubleAsync(_ name: String, _ value: Double) {
var data = value
mpv_set_property_async(mpv, 0, name, MPV_FORMAT_DOUBLE, &data)
}
private func getDouble(_ name: String) -> Double {
var data = Double()
mpv_get_property(mpv, name, MPV_FORMAT_DOUBLE, &data)

View File

@@ -338,6 +338,7 @@ final class PlayerModel: ObservableObject {
}
inactiveBackends().forEach { $0.pause() }
backend.setRate(currentRate)
let fromBackend: PlayerBackend = from == .appleAVPlayer ? avPlayerBackend : mpvBackend
let toBackend: PlayerBackend = to == .appleAVPlayer ? avPlayerBackend : mpvBackend