use float value from OS seek

This commit is contained in:
zackslash
2023-10-20 20:05:13 +01:00
parent 19964b62fd
commit 66cbfe0a0c
3 changed files with 6 additions and 8 deletions
+4 -4
View File
@@ -27,7 +27,7 @@ import (
// os_remote_command_callback is called by Objective-C when incoming OS media commands are received.
//
//export os_remote_command_callback
func os_remote_command_callback(command C.Command, value C.int) {
func os_remote_command_callback(command C.Command, value C.double) {
switch command {
case C.PLAY:
mpMediaEventRecipient.OnCommandPlay()
@@ -42,7 +42,7 @@ func os_remote_command_callback(command C.Command, value C.int) {
case C.NEXT_TRACK:
mpMediaEventRecipient.OnCommandNextTrack()
case C.SEEK:
mpMediaEventRecipient.OnCommandSeek(int(value))
mpMediaEventRecipient.OnCommandSeek(float64(value))
default:
log.Printf("unknown OS command received: %v", command)
}
@@ -172,9 +172,9 @@ func (mp *MPMediaHandler) OnCommandPreviousTrack() {
}
// MPMediaHandler instance received OS command to 'seek'
func (mp *MPMediaHandler) OnCommandSeek(positionSeconds int) {
func (mp *MPMediaHandler) OnCommandSeek(positionSeconds float64) {
if mp == nil || mp.player == nil {
return
}
mp.player.Seek(fmt.Sprintf("%d", positionSeconds), player.SeekAbsolute)
mp.player.Seek(fmt.Sprintf("%0.2f", positionSeconds), player.SeekAbsolute)
}
+1 -1
View File
@@ -33,7 +33,7 @@ void register_os_remote_commands();
* Go-backed callback to static function that is called when OS remote commands are received.
* If a value is anticipated with the specified command, the 'value' argument will be non-zero.
*/
void os_remote_command_callback(Command command, int value);
void os_remote_command_callback(Command command, double value);
/**
* Updates the "Now Playing" information on macOS for media playback
+1 -3
View File
@@ -39,9 +39,7 @@ void register_os_remote_commands() {
[commandCenter.changePlaybackPositionCommand addTargetWithHandler:^MPRemoteCommandHandlerStatus(MPRemoteCommandEvent * _Nonnull event) {
MPChangePlaybackPositionCommandEvent *positionChangeEvent = (MPChangePlaybackPositionCommandEvent *)event;
double posSecDouble = positionChangeEvent.positionTime;
int posSeconds = (int)posSecDouble;
os_remote_command_callback(SEEK, posSeconds);
os_remote_command_callback(SEEK, positionChangeEvent.positionTime);
return MPRemoteCommandHandlerStatusSuccess;
}];
}