import AVFoundation
import NitroModules

// Now Playing info and remote-command configuration.
// Split out of HybridPlaybackEngine.swift; shared state and helpers
// remain on the main type.
extension HybridPlaybackEngine {
    // MARK: - Now Playing / Remote Commands

    func setEnabledCommands(commands: [RemoteCommand]) throws {
        enabledCommands = commands
        nowPlayingAdapter.setEnabledCommands(commands)
    }

    func setCompactCommands(commands: [RemoteCommand]) throws {
        compactCommands = commands
        // iOS: no-op (system decides compact layout)
    }

    func setSkipIntervalMs(intervalMs: Double) throws {
        skipIntervalMs = intervalMs
        nowPlayingAdapter.setSkipInterval(intervalMs / 1000.0)
    }

    func updateNowPlaying(info: NowPlayingInfo) throws {
        nowPlayingAdapter.updateNowPlayingInfo(info)
    }

    func overrideRemoteCommand(command: RemoteCommand) throws {
        overriddenCommands.insert(command.rawStringValue)
        nowPlayingAdapter.overrideCommand(command)
    }

    func clearRemoteCommandOverride(command: RemoteCommand) throws {
        overriddenCommands.remove(command.rawStringValue)
        nowPlayingAdapter.clearCommandOverride(command)
    }
}
