1
1
mirror of https://github.com/danbee/persephone synced 2025-03-04 08:39:11 +00:00
persephone/Shared/MPDClient/Models/MPDStatus.swift

72 lines
1.3 KiB
Swift

//
// MPDClientStatus.swift
// Persephone
//
// Created by Daniel Barber on 2019/2/04.
// Copyright © 2019 Dan Barber. All rights reserved.
//
import Foundation
import mpdclient
extension MPDClient {
class MPDStatus {
private let status: OpaquePointer
enum State: UInt {
case unknown = 0
case stopped = 1
case playing = 2
case paused = 3
}
init(_ status: OpaquePointer) {
self.status = status
}
deinit {
mpd_status_free(status)
}
var state: State {
let mpdState = mpd_status_get_state(status)
return State(rawValue: UInt(mpdState.rawValue))!
}
var totalTime: UInt {
let mpdTotalTime = mpd_status_get_total_time(status)
return UInt(mpdTotalTime)
}
var elapsedTimeMs: UInt {
let mpdElapsedTimeMs = mpd_status_get_elapsed_ms(status)
return UInt(mpdElapsedTimeMs)
}
var song: Int {
return Int(mpd_status_get_song_pos(status))
}
var shuffleState: Bool {
return mpd_status_get_random(status)
}
var repeatState: Bool {
return mpd_status_get_repeat(status)
}
var volume: Int {
return Int(mpd_status_get_volume(status))
}
var updating: Bool {
let updating = mpd_status_get_update_id(status)
return updating > 0
}
}
}