All Classes and Interfaces
Class
Description
Represents any update to the library.
What kind of modification an action performs on the library
An action which has just been performed by another client.
Request from a client to perform an action.
Response to
ActionRequest which tells the client how to move ahead with library sync.The state of the request, based on which the client should decide how to complete the action.
Abstraction layer to define audio backends to interact with the operating system and hardware.
PMP Connection with a client.
All client storage files.
The main client storage file.
Last known state of playback, including track, position, filters, repeat and shuffle.
The client sensitive file.
Similar to
SequenceInputStream, but the available method reports the sum of available bytes from both streams.Audio backend that converts audio to a single PCM format.
Unique identifier for a client instance of PMP.
Used to indicate that a side is disconnecting from the socket.
Utility class to manage a shared
Encryption.sslContext.Message used to indicate that a programming error has manifested somewhere, likely by the receiving side.
An event source is the object where you can register and call event listeners.
java.io.ByteArrayOutputStream with some methods to allow easier usage without unnecessarily
copying data from memory.
Library filters are the tool offered to allow narrowing the library down to only desired tracks.
Data for
Filter.EVENT_OPTION_ADDED and Filter.eventOptionAdded.Data for
Filter.EVENT_OPTION_REMOVED and Filter.eventOptionRemoved.Serializable class for communicating filters.
Update the list of filters.
An option in a filter, represents a unique metadata value for the filter's key.
Possible selection states of an option.
Utility class for reading metadata of FLAC files.
Request by the client to get a list of actions, from
GetActionsRequest.from to the latest.Response to a
GetActionsRequest.Class containing various global values which may be overridden during
startup to change the behavior of underlying shared code.
A track header, used for sorting tracks and in some interfaces to display track data.
The data type of this header.
General management of loading, updating, sorting, filtering the library.
Server-side library management.
Data for
Library.EVENT_FILTER_MOVEDData for
Library.EVENT_HEADER_MOVEDA library action which has been
ActionResponse.Type.APPROVED but which the server is still
waiting for the client to ActionResponse.Type.COMPLETED.Data for
Library.EVENT_SORTING_HEADER_UPDATEDAn audio backend which uses
SourceDataLine to interface with the OS.Event listeners used to listen to
EventSources.Class used to proxy
System.out and System.err to be logged through log4j.Request to log in as an existing device.
Request to log in as a new device.
A login request was rejected.
Machine readable reason for why the login has failed.
After a request, the client is now logged in.
The entry point of the client's logic layer.
The entry point.
Base class of all messages.
Used to define handling logic for messages.
Class used to listen to messages from a specific connection.
Handles exposing playback state to MPRIS.
Enum specifying possible sorting orders.
Single thread executor service which interrupts a previous task whenever a new one is submitted.
Basic utility generic class to store two values at once.
Instantiatable
ParameterizedType.Management of the state of playback.
Used to indicate that a device is trying to control the playback owner
Used to claim playback ownership and to indicate ownership has changed.
Used to indicate that the playback owner has updated information
Handle playback and related state
Data for
Player.EVENT_CURRENT_TRACK_LOADData for
Player.EVENT_PLAYBACK_DEBUG_INFOData for
Player.EVENT_TRACK_CHANGEDefines a connection which uses PMP's protocol.
Audio backend using PulseAudio.
Enum specifying the possible states of repeating playback.
Any message that expects to receive a
Response.Any message that responds to a
Request.An event source which stores the last event and calls newly registered
listeners if a previous event was emitted.
An alternative implementation of
ScopedValue to be able to run on older JREsClass containing a value to be set.
Sensitive storage contains particularly important information that should not be shared and must be saved as soon as
possible.
Handles the connection with the server.
The thread responsible for handling incoming library actions.
The thread responsible for performing outgoing actions.
Thread responsible for correctly starting
Server.ActionHandlingThread and Server.ActionSendingThread.Used to deserialize the server's library
All storage used in the server.
Main storage used in the server.
Sensitive server storage, contains private values and values which must be stored as quickly as possible.
Enum specifying the possible states of shuffling playback.
Utility class to gracefully terminate the execution of the program.
Storages are used to store data to disk to keep it throughout restarts of the program.
A value which is stored in a
Storage file.Jackson serializer which allows stored values to not be wrapped in unnecessary
Stored objects.BlockingDeque for use in storage designed to have at most 1 consuming thread.Stored
Key objects.Generic stored list for ease of use.
Generic stored map for ease of use.
A track, containing all necessary information to identify, filter and sort without needing to parse the FLAC file.
A track in the library with information needed by the server.
Audio format contained in a track.
Manages the HTTP server for transferring files.
Jackson mixin used to omit
lastModified in TransferHandler.sendTrackList(HttpExchange)