Sayonara Player
Public Types | Public Slots | Signals | Public Member Functions | List of all members
Playlist::Handler Class Reference

Global handler for playlists. More...

#include <PlaylistHandler.h>

Inheritance diagram for Playlist::Handler:

Public Types

enum  PlaylistIndex : uint8_t {
  Current =0,
  Active
}
 The PlaylistIndex enum.
 

Public Slots

int loadOldPlaylists ()
 load playlists of last session from database More...
 

Signals

void sigPlaylistCreated (PlaylistPtr pl)
 emitted when new playlist has been created More...
 
void sigCurrentTrackChanged (int trackIndex, int playlist_idx)
 emitted when current track index has changed More...
 
void sigNewPlaylistAdded (PlaylistPtr pl)
 emitted when new playlist has been added More...
 
void sigPlaylistNameChanged (int idx)
 emitted when playlist name has changed More...
 
void sigCurrentPlaylistChanged (int idx)
 emitted when tracks were added/removed or have changed More...
 
void sigActivePlaylistChanged (int idx)
 
void sigTrackDeletionRequested (const MetaDataList &tracks, Library::TrackDeletionMode deletion_mode)
 emitted when a track deletion was triggered over the Ui More...
 
void sigFindTrackRequested (TrackID trackId)
 

Public Member Functions

void shutdown ()
 Call this before the program stops. Singletons and Destructors don't work out so well.
 
void clearPlaylist (int playlistIndex)
 clears the current visible playlist More...
 
void playNext (const MetaDataList &tracks)
 insert tracks to active playlist after current playback position More...
 
void playNext (const QStringList &paths)
 
void insertTracks (const MetaDataList &tracks, int idx, int playlistIndex)
 insert tracks into a playlist at a given index More...
 
void insertTracks (const QStringList &paths, int idx, int playlistIndex)
 
void appendTracks (const MetaDataList &tracks, int playlistIndex)
 append tracks at a given playlist index More...
 
void appendTracks (const QStringList &paths, int playlistIndex)
 
void moveRows (const IndexSet &indexes, int tgt_idx, int playlistIndex)
 move rows within playlist More...
 
void removeRows (const IndexSet &indexes, int playlistIndex)
 remove rows from playlist More...
 
void changeTrack (int trackIndex, int playlistIndex)
 change the track in a given playlist More...
 
int activeIndex () const
 get active playlist index More...
 
PlaylistConstPtr activePlaylist () const
 
int current_index () const
 
void set_current_index (int playlistIndex)
 
int count () const
 Returns number of playlists. More...
 
PlaylistConstPtr playlist (int playlistIndex) const
 get specific playlist at given index More...
 
void deletePlaylist (int playlistIndex)
 delete the given playlist from database More...
 
int closePlaylist (int playlistIndex)
 close playlist More...
 
void resetPlaylist (int playlistIndex)
 reload playlist from db More...
 
QString requestNewPlaylistName (const QString &prefix=QString()) const
 Request a new name for the playlist (usually New %1 is returned). If the prefix differs, instead of New, the prefix is chosen. E.g. "File system 2" for tracks added by the file manager. More...
 
Util::SaveAsAnswer savePlaylist (int playlistIndex)
 save playlist to database, overwrite old one More...
 
Util::SaveAsAnswer savePlaylistAs (int playlistIndex, const QString &name, bool forceOverride)
 Save playlist under new name. More...
 
Util::SaveAsAnswer renamePlaylist (int playlistIndex, const QString &name)
 rename playlist More...
 
void savePlaylistToFile (int playlistIndex, const QString &filename, bool relative)
 save a playlist to file More...
 
int createPlaylist (const MetaDataList &tracks, const QString &name=QString(), bool temporary=true)
 create a new playlist More...
 
int createPlaylist (const QStringList &path_list, const QString &name=QString(), bool temporary=true)
 create a new playlist (overloaded) More...
 
int createPlaylist (const QString &dir, const QString &name=QString(), bool temporary=true)
 create a new playlist (overloaded) More...
 
int createPlaylist (const CustomPlaylist &pl)
 create a new playlist (overloaded) More...
 
int createEmptyPlaylist (bool overrideCurrent=false)
 create a new empty playlist More...
 
int createEmptyPlaylist (const QString &name)
 
void deleteTracks (int playlistIndex, const IndexSet &rows, Library::TrackDeletionMode deletion_mode)
 

Detailed Description

Global handler for playlists.

Member Function Documentation

◆ activeIndex()

int Playlist::Handler::activeIndex ( ) const

get active playlist index

Returns

◆ appendTracks()

void Playlist::Handler::appendTracks ( const MetaDataList tracks,
int  playlistIndex 
)

append tracks at a given playlist index

Parameters
trackstrack list
playlistIndexplaylist index

◆ changeTrack()

void Playlist::Handler::changeTrack ( int  trackIndex,
int  playlistIndex 
)

change the track in a given playlist

Parameters
idxtrack index
playlistIndexplaylist index

◆ clearPlaylist()

void Playlist::Handler::clearPlaylist ( int  playlistIndex)

clears the current visible playlist

Parameters
playlistIndexplaylist index

◆ closePlaylist()

int Playlist::Handler::closePlaylist ( int  playlistIndex)

close playlist

Parameters
playlistIndexplaylist index

◆ count()

int Playlist::Handler::count ( ) const

Returns number of playlists.

Returns

◆ createEmptyPlaylist()

int Playlist::Handler::createEmptyPlaylist ( bool  overrideCurrent = false)

create a new empty playlist

Parameters
namenew playlist name. If no name given, current playlist will be overwritten
Returns
new playlist index

◆ createPlaylist() [1/4]

int Playlist::Handler::createPlaylist ( const CustomPlaylist pl)

create a new playlist (overloaded)

Parameters
pla CustomPlaylist object fetched from database
Returns
new playlist index

◆ createPlaylist() [2/4]

int Playlist::Handler::createPlaylist ( const MetaDataList tracks,
const QString &  name = QString(),
bool  temporary = true 
)

create a new playlist

Parameters
trackstrack list
namenew playlist name. If no name given, current playlist will be overwritten
temporaryis the playlist temporary or persistent?
typedeprecated
Returns
new playlist index

◆ createPlaylist() [3/4]

int Playlist::Handler::createPlaylist ( const QString &  dir,
const QString &  name = QString(),
bool  temporary = true 
)

create a new playlist (overloaded)

Parameters
dirdirectory path
namenew playlist name. If no name given, current playlist will be overwritten
temporaryis the playlist temporary or persistent?
typedeprecated
Returns
new playlist index

◆ createPlaylist() [4/4]

int Playlist::Handler::createPlaylist ( const QStringList &  path_list,
const QString &  name = QString(),
bool  temporary = true 
)

create a new playlist (overloaded)

Parameters
pathlistpaths, may contain files or directories
namenew playlist name. If no name given, current playlist will be overwritten
temporaryis the playlist temporary or persistent?
typedeprecated
Returns
new playlist index

◆ deletePlaylist()

void Playlist::Handler::deletePlaylist ( int  playlistIndex)

delete the given playlist from database

Parameters
playlistIndexplaylist index

◆ insertTracks()

void Playlist::Handler::insertTracks ( const MetaDataList tracks,
int  idx,
int  playlistIndex 
)

insert tracks into a playlist at a given index

Parameters
trackstrack list
idxtrack index within playlist
playlistIndexplaylist index

◆ loadOldPlaylists

int Playlist::Handler::loadOldPlaylists ( )
slot

load playlists of last session from database

Returns
number of playlists fetched

◆ moveRows()

void Playlist::Handler::moveRows ( const IndexSet indexes,
int  tgt_idx,
int  playlistIndex 
)

move rows within playlist

Parameters
idx_listlist of row indices to be moved
tgt_idxtarget index where rows should be moved
playlistIndexplaylist index

◆ playlist()

PlaylistConstPtr Playlist::Handler::playlist ( int  playlistIndex) const

get specific playlist at given index

Parameters
playlistIndexplaylist index
Returns
read only pointer object to a playlist, may be nullptr

◆ playNext()

void Playlist::Handler::playNext ( const MetaDataList tracks)

insert tracks to active playlist after current playback position

Parameters
trackslist of tracks

◆ removeRows()

void Playlist::Handler::removeRows ( const IndexSet indexes,
int  playlistIndex 
)

remove rows from playlist

Parameters
indexeslist of row indices to be removed
playlistIndexplaylist index

◆ renamePlaylist()

Util::SaveAsAnswer Playlist::Handler::renamePlaylist ( int  playlistIndex,
const QString &  name 
)

rename playlist

Parameters
playlistIndexplaylist index
namenew playlist name
Returns

◆ requestNewPlaylistName()

QString Playlist::Handler::requestNewPlaylistName ( const QString &  prefix = QString()) const

Request a new name for the playlist (usually New %1 is returned). If the prefix differs, instead of New, the prefix is chosen. E.g. "File system 2" for tracks added by the file manager.

Parameters
Theprefix is a localized "New" by default.
Returns
playlist name

◆ resetPlaylist()

void Playlist::Handler::resetPlaylist ( int  playlistIndex)

reload playlist from db

Parameters
playlistIndexplaylist index

◆ savePlaylist()

Util::SaveAsAnswer Playlist::Handler::savePlaylist ( int  playlistIndex)

save playlist to database, overwrite old one

Parameters
playlistIndexplaylist index
Returns
SaveAnswer

◆ savePlaylistAs()

Util::SaveAsAnswer Playlist::Handler::savePlaylistAs ( int  playlistIndex,
const QString &  name,
bool  forceOverride 
)

Save playlist under new name.

Parameters
playlistIndexplaylist index
namenew playlist name
force_overrideoverride if name exists
Returns
AlreadyThere if name exists and force_override is false

◆ savePlaylistToFile()

void Playlist::Handler::savePlaylistToFile ( int  playlistIndex,
const QString &  filename,
bool  relative 
)

save a playlist to file

Parameters
filename,iffilename does not end with m3u, extension is appended automatically
relativerelative paths in m3u file

◆ sigCurrentPlaylistChanged

void Playlist::Handler::sigCurrentPlaylistChanged ( int  idx)
signal

emitted when tracks were added/removed or have changed

Parameters
idxplaylist index

◆ sigCurrentTrackChanged

void Playlist::Handler::sigCurrentTrackChanged ( int  trackIndex,
int  playlist_idx 
)
signal

emitted when current track index has changed

Parameters
trackIndexindex in playlist
playlist_idxindex of playlist

◆ sigNewPlaylistAdded

void Playlist::Handler::sigNewPlaylistAdded ( PlaylistPtr  pl)
signal

emitted when new playlist has been added

Parameters
plreference to new playlist

◆ sigPlaylistCreated

void Playlist::Handler::sigPlaylistCreated ( PlaylistPtr  pl)
signal

emitted when new playlist has been created

Parameters
plPlaylist, usually current one

◆ sigPlaylistNameChanged

void Playlist::Handler::sigPlaylistNameChanged ( int  idx)
signal

emitted when playlist name has changed

Parameters
idxindex of playlist

◆ sigTrackDeletionRequested

void Playlist::Handler::sigTrackDeletionRequested ( const MetaDataList tracks,
Library::TrackDeletionMode  deletion_mode 
)
signal

emitted when a track deletion was triggered over the Ui

Parameters
trackswhich tracks should be deleted
deletion_mode