Sayonara Player
Public Types | Signals | Public Member Functions | Public Slots | Protected Attributes | List of all members
PlaylistHandler Class Reference

#include <PlaylistHandler.h>

Detailed Description

Global handler for playlists.

Public Types

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

Signals

void sig_playlist_created (PlaylistPtr pl)
 emitted when new playlist has been created More...
 
void sig_cur_track_idx_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_saved_playlists_changed ()
 emitted when saved playlists have changed
 
void sig_playlist_idx_changed (int idx)
 

Public Member Functions

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 insert_tracks (const MetaDataList &v_md, int idx, int pl_idx)
 insert tracks into a playlist at a given index More...
 
void append_tracks (const MetaDataList &v_md, int pl_idx)
 append tracks at a given playlist index More...
 
void move_rows (const SP::Set< int > &indexes, int tgt_idx, int pl_idx)
 move rows within playlist More...
 
void remove_rows (const SP::Set< int > &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 get_active_idx_of_cur_track () const
 get playlist where current track is playing More...
 
int get_active_idx () const
 get active playlist index More...
 
int get_current_idx () const
 
void set_current_idx (int pl_idx)
 
int get_playlist_count () const
 get number of playlists More...
 
QStringList get_playlist_names () const
 get names of playlists More...
 
PlaylistConstPtr get_playlist_at (int pl_idx) const
 get specific playlist at given index More...
 
void delete_playlist (int pl_idx)
 delete the given playlist from database More...
 
void 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
 Request a new name for the playlist (usually new %1 is returned) More...
 
void save_all_playlists ()
 save all playlists to database. This could be done in destructor
 
PlaylistDBInterface::SaveAsAnswer save_playlist (int pl_idx)
 save playlist to database, overwrite old one More...
 
PlaylistDBInterface::SaveAsAnswer save_playlist_as (int pl_idx, const QString &name, bool force_override)
 Save playlist under new name. More...
 
PlaylistDBInterface::SaveAsAnswer rename_playlist (int pl_idx, const QString &name)
 rename playlist More...
 
void save_playlist_to_file (const QString &filename, bool relative)
 save a playlist to file More...
 

Public Slots

int load_old_playlists ()
 load playlists of last session from database More...
 
int create_playlist (const MetaDataList &v_md, const QString &name=QString(), bool temporary=true, Playlist::Type type=Playlist::Type::Std)
 create a new playlist More...
 
int create_playlist (const QStringList &path_list, const QString &name=QString(), bool temporary=true, Playlist::Type type=Playlist::Type::Std)
 create a new playlist (overloaded) More...
 
int create_playlist (const QString &dir, const QString &name=QString(), bool temporary=true, Playlist::Type type=Playlist::Type::Std)
 create a new playlist (overloaded) More...
 
int create_playlist (const CustomPlaylist &pl)
 create a new playlist (overloaded) More...
 
int create_empty_playlist (const QString &name)
 create a new empty playlist More...
 

Protected Attributes

Settings_settings =nullptr
 

Member Function Documentation

◆ append_tracks()

void PlaylistHandler::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 PlaylistHandler::change_track ( int  track_idx,
int  pl_idx 
)

change the track in a given playlist

Parameters
idxtrack index
pl_idxplaylist index

◆ clear_playlist()

void PlaylistHandler::clear_playlist ( int  pl_idx)

clears the current visible playlist

Parameters
pl_idxplaylist index

◆ close_playlist()

void PlaylistHandler::close_playlist ( int  pl_idx)

close playlist

Parameters
pl_idxplaylist index

◆ create_empty_playlist

int PlaylistHandler::create_empty_playlist ( const QString &  name)
slot

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 PlaylistHandler::create_playlist ( const MetaDataList v_md,
const QString &  name = QString(),
bool  temporary = true,
Playlist::Type  type = Playlist::Type::Std 
)
slot

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 [2/4]

int PlaylistHandler::create_playlist ( const QStringList &  path_list,
const QString &  name = QString(),
bool  temporary = true,
Playlist::Type  type = Playlist::Type::Std 
)
slot

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

◆ create_playlist [3/4]

int PlaylistHandler::create_playlist ( const QString &  dir,
const QString &  name = QString(),
bool  temporary = true,
Playlist::Type  type = Playlist::Type::Std 
)
slot

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 PlaylistHandler::create_playlist ( const CustomPlaylist pl)
slot

create a new playlist (overloaded)

Parameters
pla CustomPlaylist object fetched from database
Returns
new playlist index

◆ delete_playlist()

void PlaylistHandler::delete_playlist ( int  pl_idx)

delete the given playlist from database

Parameters
pl_idxplaylist index

◆ get_active_idx()

int PlaylistHandler::get_active_idx ( ) const

get active playlist index

Returns

◆ get_active_idx_of_cur_track()

int PlaylistHandler::get_active_idx_of_cur_track ( ) const

get playlist where current track is playing

Returns

◆ get_playlist_at()

PlaylistConstPtr PlaylistHandler::get_playlist_at ( 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

◆ get_playlist_count()

int PlaylistHandler::get_playlist_count ( ) const

get number of playlists

Returns

◆ get_playlist_names()

QStringList PlaylistHandler::get_playlist_names ( ) const

get names of playlists

Returns

◆ insert_tracks()

void PlaylistHandler::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 PlaylistHandler::load_old_playlists ( )
slot

load playlists of last session from database

Returns
number of playlists fetched

◆ move_rows()

void PlaylistHandler::move_rows ( const SP::Set< int > &  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 PlaylistHandler::play_next ( const MetaDataList v_md)

insert tracks to active playlist after current playback position

Parameters
v_mdlist of tracks

◆ remove_rows()

void PlaylistHandler::remove_rows ( const SP::Set< int > &  indexes,
int  pl_idx 
)

remove rows from playlist

Parameters
indexeslist of row indices to be removed
pl_idxplaylist index

◆ rename_playlist()

PlaylistDBInterface::SaveAsAnswer PlaylistHandler::rename_playlist ( int  pl_idx,
const QString &  name 
)

rename playlist

Parameters
pl_idxplaylist index
namenew playlist name
Returns

◆ request_new_playlist_name()

QString PlaylistHandler::request_new_playlist_name ( ) const

Request a new name for the playlist (usually new %1 is returned)

Returns
playlist name

◆ reset_playlist()

void PlaylistHandler::reset_playlist ( int  pl_idx)

reload playlist from db

Parameters
pl_idxplaylist index

◆ save_playlist()

PlaylistDBInterface::SaveAsAnswer PlaylistHandler::save_playlist ( int  pl_idx)

save playlist to database, overwrite old one

Parameters
pl_idxplaylist index
Returns
SaveAnswer

◆ save_playlist_as()

PlaylistDBInterface::SaveAsAnswer PlaylistHandler::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 PlaylistHandler::save_playlist_to_file ( 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_cur_track_idx_changed

void PlaylistHandler::sig_cur_track_idx_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 PlaylistHandler::sig_new_playlist_added ( PlaylistPtr  pl)
signal

emitted when new playlist has been added

Parameters
plreference to new playlist

◆ sig_playlist_created

void PlaylistHandler::sig_playlist_created ( PlaylistPtr  pl)
signal

emitted when new playlist has been created

Parameters
plPlaylist, usually current one

◆ sig_playlist_name_changed

void PlaylistHandler::sig_playlist_name_changed ( int  idx)
signal

emitted when playlist name has changed

Parameters
idxindex of playlist
Inheritance diagram for PlaylistHandler:
SayonaraClass