Skip to content
master
Switch branches/tags
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
 
 
 
 
 
 

bitrise CI platforms Swift Package Manager compatible

README

What is this repository for?

  • ConnectorProtocol is a generic protocol specification to control a network based music player for Swift. The protocol abstracts a player specific implementation from a client implementation, which allows to have a single client that supports multiple player types.
  • MPDConnector is a full implementation of this protocol for the MPD protocol: https://github.com/katoemba/mpdconnector/
  • These two frameworks are the foundation of the Rigelian MPD client, for more info see https://www.rigelian.net

What are the building blocks of this Protocol?

  • The protocol relies heavily on reactive constructs, using RxSwift.
  • ConnectorProtocol consist of five sub-protocols: * PlayerProtocol defines a basic player, access status, control and browse implementation, plus functions to maintain player-specific settings. * PlayerBrowserProtocol is a generic protocol to detect players on the network. * StatusProtocol is a protocol through which the connection status of a player, as well as the music-playing status can be monitored. * ControlProtocol is a protocol through which commands can be sent to a player, like play, pause, add a song etc. * BrowseProtocol is a protocol through which you can browse through the music on a player. It defines various ViewModels for artists, albums, genres etc.
  • A number of basic objects are defined:
    • Album
    • Artist
    • Song
    • Playlist
    • Folder
    • PlayerStatus
  • The protocol is meant to be independent of the target platform (iOS, MacOS, tvOS). However testing is only done on iOS.

Requirements

  • Xcode 11
  • Swift 5.0

Installation

libmpdclient-swift is dependent on RxSwift.

Build and usage via swift package manager is supported:

Swift Package Manager

The easiest way to add the library is directly from within XCode (11). Alternatively you can create a Package.swift file.

// swift-tools-version:5.0

import PackageDescription

let package = Package(
  name: "MyProject",
  dependencies: [
  .package(url: "https://github.com/katoemba/connectorprotocol.git", from: "1.7.0")
  ],
  targets: [
    .target(name: "MyProject", dependencies: ["connectorprotocol"])
  ]
)

Testing

  • A very limited set of unit tests is included.

Who do I talk to?

  • In case of questions you can contact berrie at rigelian dot net

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

No packages published

Languages