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 load_old_playlists ()
 load playlists of last session from database More...
 

Signals

void sig_playlist_created (PlaylistPtr pl)
 emitted when new playlist has been created More...
 
void sig_current_track_changed (int track_idx, int playlist_idx)
 emitted when current track index has changed More...
 
void sig_new_playlist_added (PlaylistPtr pl)
 emitted when new playlist has been added More...
 
void sig_playlist_name_changed (int idx)
 emitted when playlist name has changed More...
 
void sig_current_playlist_changed (int idx)
 emitted when tracks were added/removed or have changed More...
 
void sig_active_playlist_changed (int idx)
 
void sig_track_deletion_requested (const MetaDataList &v_md, Library::TrackDeletionMode deletion_mode)
 emitted when a track deletion was triggered over the Ui More...
 
void sig_find_track_requested (TrackID track_id)
 

Public Member Functions

void shutdown ()
 Call this before the program stops. Singletons and Destructors don't work out so well.
 
void clear_playlist (int pl_idx)
 clears the current visible playlist More...
 
void play_next (const MetaDataList &v_md)
 insert tracks to active playlist after current playback position More...
 
void play_next (const QStringList &paths)
 
void insert_tracks (const MetaDataList &v_md, int idx, int pl_idx)
 insert tracks into a playlist at a given index More...
 
void insert_tracks (const QStringList &paths, int idx, int pl_idx)
 
void append_tracks (const MetaDataList &v_md, int pl_idx)
 append tracks at a given playlist index More...
 
void append_tracks (const QStringList &paths, int pl_idx)
 
void move_rows (const IndexSet &indexes, int tgt_idx, int pl_idx)
 move rows within playlist More...
 
void remove_rows (const IndexSet &indexes, int pl_idx)
 remove rows from playlist More...
 
void change_track (int track_idx, int pl_idx)
 change the track in a given playlist More...
 
int active_index () const
 get active playlist index More...
 
PlaylistConstPtr active_playlist () const
 
int current_index () const
 
void set_current_index (int pl_idx)
 
int count () const
 Returns number of playlists. More...
 
PlaylistConstPtr playlist (int pl_idx) const
 get specific playlist at given index More...
 
void delete_playlist (int pl_idx)
 delete the given playlist from database More...
 
int close_playlist (int pl_idx)
 close playlist More...
 
void reset_playlist (int pl_idx)
 reload playlist from db More...
 
QString request_new_playlist_name (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 save_playlist (int pl_idx)
 save playlist to database, overwrite old one More...
 
Util::SaveAsAnswer save_playlist_as (int pl_idx, const QString &name, bool force_override)
 Save playlist under new name. More...
 
Util::SaveAsAnswer rename_playlist (int pl_idx, const QString &name)
 rename playlist More...
 
void save_playlist_to_file (int pl_idx, const QString &filename, bool relative)
 save a playlist to file More...
 
int create_playlist (const MetaDataList &v_md, const QString &name=QString(), bool temporary=true, PlaylistType type=PlaylistType::Std)
 create a new playlist More...
 
int create_playlist (const QStringList &path_list, const QString &name=QString(), bool temporary=true, PlaylistType type=PlaylistType::Std)
 create a new playlist (overloaded) More...
 
int create_playlist (const QString &dir, const QString &name=QString(), bool temporary=true, PlaylistType type=PlaylistType::Std)
 create a new playlist (overloaded) More...
 
int create_playlist (const CustomPlaylist &pl)
 create a new playlist (overloaded) More...
 
int create_empty_playlist (bool override_current=false)
 create a new empty playlist More...
 
int create_empty_playlist (const QString &name)
 
void delete_tracks (int pl_idx, const IndexSet &rows, Library::TrackDeletionMode deletion_mode)
 

Detailed Description

Global handler for playlists.

Member Function Documentation

◆ active_index()

int Playlist::Handler::active_index ( ) const

get active playlist index

Returns

◆ append_tracks()

void Playlist::Handler::append_tracks ( const MetaDataList v_md,
int  pl_idx 
)

append tracks at a given playlist index

Parameters
v_mdtrack list
pl_idxplaylist index

◆ change_track()

void Playlist::Handler::change_track ( int  track_idx,
int  pl_idx 
)

change the track in a given playlist

Parameters
idxtrack index
pl_idxplaylist index

◆ clear_playlist()

void Playlist::Handler::clear_playlist ( int  pl_idx)

clears the current visible playlist

Parameters
pl_idxplaylist index

◆ close_playlist()

int Playlist::Handler::close_playlist ( int  pl_idx)

close playlist

Parameters
pl_idxplaylist index

◆ count()

int Playlist::Handler::count ( ) const

Returns number of playlists.

Returns

◆ create_empty_playlist()

int Playlist::Handler::create_empty_playlist ( bool  override_current = false)

create a new empty playlist

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

◆ create_playlist() [1/4]

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

create a new playlist (overloaded)

Parameters
pla CustomPlaylist object fetched from database
Returns
new playlist index

◆ create_playlist() [2/4]

int Playlist::Handler::create_playlist ( const MetaDataList v_md,
const QString &  name = QString(),
bool  temporary = true,
PlaylistType  type = PlaylistType::Std 
)

create a new playlist

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

◆ create_playlist() [3/4]

int Playlist::Handler::create_playlist ( const QString &  dir,
const QString &  name = QString(),
bool  temporary = true,
PlaylistType  type = PlaylistType::Std 
)

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

◆ create_playlist() [4/4]

int Playlist::Handler::create_playlist ( const QStringList &  path_list,
const QString &  name = QString(),
bool  temporary = true,
PlaylistType  type = PlaylistType::Std 
)

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

◆ delete_playlist()

void Playlist::Handler::delete_playlist ( int  pl_idx)

delete the given playlist from database

Parameters
pl_idxplaylist index

◆ insert_tracks()

void Playlist::Handler::insert_tracks ( const MetaDataList v_md,
int  idx,
int  pl_idx 
)

insert tracks into a playlist at a given index

Parameters
v_mdtrack list
idxtrack index within playlist
pl_idxplaylist index

◆ load_old_playlists

int Playlist::Handler::load_old_playlists ( )
slot

load playlists of last session from database

Returns
number of playlists fetched

◆ move_rows()

void Playlist::Handler::move_rows ( const IndexSet indexes,
int  tgt_idx,
int  pl_idx 
)

move rows within playlist

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

◆ play_next()

void Playlist::Handler::play_next ( const MetaDataList v_md)

insert tracks to active playlist after current playback position

Parameters
v_mdlist of tracks

◆ playlist()

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

get specific playlist at given index

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

◆ remove_rows()

void Playlist::Handler::remove_rows ( const IndexSet indexes,
int  pl_idx 
)

remove rows from playlist

Parameters
indexeslist of row indices to be removed
pl_idxplaylist index

◆ rename_playlist()

Util::SaveAsAnswer Playlist::Handler::rename_playlist ( int  pl_idx,
const QString &  name 
)

rename playlist

Parameters
pl_idxplaylist index
namenew playlist name
Returns

◆ request_new_playlist_name()

QString Playlist::Handler::request_new_playlist_name ( 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

◆ reset_playlist()

void Playlist::Handler::reset_playlist ( int  pl_idx)

reload playlist from db

Parameters
pl_idxplaylist index

◆ save_playlist()

Util::SaveAsAnswer Playlist::Handler::save_playlist ( int  pl_idx)

save playlist to database, overwrite old one

Parameters
pl_idxplaylist index
Returns
SaveAnswer

◆ save_playlist_as()

Util::SaveAsAnswer Playlist::Handler::save_playlist_as ( int  pl_idx,
const QString &  name,
bool  force_override 
)

Save playlist under new name.

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

◆ save_playlist_to_file()

void Playlist::Handler::save_playlist_to_file ( int  pl_idx,
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

◆ sig_current_playlist_changed

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

emitted when tracks were added/removed or have changed

Parameters
idxplaylist index

◆ sig_current_track_changed

void Playlist::Handler::sig_current_track_changed ( int  track_idx,
int  playlist_idx 
)
signal

emitted when current track index has changed

Parameters
track_idxindex in playlist
playlist_idxindex of playlist

◆ sig_new_playlist_added

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

emitted when new playlist has been added

Parameters
plreference to new playlist

◆ sig_playlist_created

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

emitted when new playlist has been created

Parameters
plPlaylist, usually current one

◆ sig_playlist_name_changed

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

emitted when playlist name has changed

Parameters
idxindex of playlist

◆ sig_track_deletion_requested

void Playlist::Handler::sig_track_deletion_requested ( const MetaDataList v_md,
Library::TrackDeletionMode  deletion_mode 
)
signal

emitted when a track deletion was triggered over the Ui

Parameters
v_mdwhich tracks should be deleted
deletion_mode