Kodi Documentation 22.0
Kodi is an open source media player and entertainment hub.
Loading...
Searching...
No Matches
CMusicLibraryQueue Class Reference

Queue for music library jobs. More...

#include <MusicLibraryQueue.h>

Inheritance diagram for CMusicLibraryQueue:
CJobQueue IJobCallback

Public Member Functions

 ~CMusicLibraryQueue () override
 
void ExportLibrary (const CLibExportSettings &settings, bool showDialog=false)
 Enqueue a music library export job.
 
void ImportLibrary (const std::string &xmlFile, bool showDialog=false)
 Enqueue a music library import job.
 
void ScanLibrary (const std::string &strDirectory, int flags=0, bool showProgress=true)
 Enqueue a music library update job, scanning tags embedded in music files and optionally scraping additional data.
 
void StartAlbumScan (const std::string &strDirectory, bool refresh=false)
 Enqueue an album scraping job fetching additional album data.
 
void StartArtistScan (const std::string &strDirectory, bool refresh=false)
 Enqueue an artist scraping job fetching additional artist data.
 
bool IsScanningLibrary () const
 Check if a library scan or cleaning is in progress.
 
void StopLibraryScanning ()
 Stop and dequeue all scanning jobs.
 
void CleanLibrary (bool showDialog=false)
 Enqueue an asynchronous library cleaning job.
 
void AddJob (CMusicLibraryJob *job)
 Adds the given job to the queue.
 
void CancelJob (CMusicLibraryJob *job)
 Cancels the given job and removes it from the queue.
 
void CancelAllJobs ()
 Cancels all running and queued jobs.
 
bool IsRunning () const
 Whether any jobs are running or not.
 

Static Public Member Functions

static CMusicLibraryQueueGetInstance ()
 Gets the singleton instance of the music library queue.
 

Protected Member Functions

void OnJobComplete (unsigned int jobID, bool success, CJob *job) override
 The callback used when a job completes.
 
void Refresh ()
 Notifies all to refresh the current listings.
 
- Protected Member Functions inherited from CJobQueue
bool QueueEmpty () const
 Returns if we still have jobs waiting to be processed NOTE: This function does not take into account the jobs that are currently processing.
 
 CJobQueue (bool lifo=false, unsigned int jobsAtOnce=1, CJob::PRIORITY priority=CJob::PRIORITY_LOW)
 CJobQueue constructor.
 
 ~CJobQueue () override
 CJobQueue destructor Cancels any in-process jobs, and destroys the job queue.
 
bool AddJob (CJob *job)
 Add a job to the queue On completion of the job, destruction of the job queue or in case the job could not be added successfully, the CJob object will be destroyed.
 
template<typename F >
void Submit (F &&f)
 Add a function f to this job queue.
 
void CancelJob (const CJob *job)
 Cancel a job in the queue Cancels a job in the queue. Any job currently being processed may complete after this call has completed, but OnJobComplete will not be performed. If the job is only queued then it will be removed from the queue and deleted.
 
void CancelJobs ()
 Cancel all jobs in the queue Removes all jobs from the queue. Any job currently being processed may complete after this call has completed, but OnJobComplete will not be performed.
 
bool IsProcessing () const
 Check whether the queue is processing a job.
 
void OnJobAbort (unsigned int jobID, CJob *job) override
 The callback used when a job will be aborted.
 
- Protected Member Functions inherited from IJobCallback
virtual ~IJobCallback ()=default
 Destructor for job call back objects.
 
virtual void OnJobProgress (unsigned int jobID, unsigned int progress, unsigned int total, const CJob *job)
 An optional callback function that a job may call while processing.
 

Detailed Description

Queue for music library jobs.

The queue can only process a single job at any time and every job will be executed at the lowest priority.

Constructor & Destructor Documentation

◆ ~CMusicLibraryQueue()

CMusicLibraryQueue::~CMusicLibraryQueue ( )
override

Member Function Documentation

◆ AddJob()

void CMusicLibraryQueue::AddJob ( CMusicLibraryJob * job)

Adds the given job to the queue.

Parameters
[in]jobMusic library job to be queued.

◆ CancelAllJobs()

void CMusicLibraryQueue::CancelAllJobs ( )

Cancels all running and queued jobs.

◆ CancelJob()

void CMusicLibraryQueue::CancelJob ( CMusicLibraryJob * job)

Cancels the given job and removes it from the queue.

Parameters
[in]jobMusic library job to be canceled and removed from the queue.

◆ CleanLibrary()

void CMusicLibraryQueue::CleanLibrary ( bool showDialog = false)

Enqueue an asynchronous library cleaning job.

Parameters
[in]showDialogShow a model progress dialog while cleaning. Default is false.

◆ ExportLibrary()

void CMusicLibraryQueue::ExportLibrary ( const CLibExportSettings & settings,
bool showDialog = false )

Enqueue a music library export job.

Parameters
[in]settingsLibrary export settings
[in]showDialogShow a progress dialog while (asynchronously) exporting, otherwise export in synchronous

◆ GetInstance()

CMusicLibraryQueue & CMusicLibraryQueue::GetInstance ( )
static

Gets the singleton instance of the music library queue.

◆ ImportLibrary()

void CMusicLibraryQueue::ImportLibrary ( const std::string & xmlFile,
bool showDialog = false )

Enqueue a music library import job.

Parameters
[in]xmlFilexml file to import
[in]showDialogShow a progress dialog while (asynchronously) exporting, otherwise export in synchronous

◆ IsRunning()

bool CMusicLibraryQueue::IsRunning ( ) const

Whether any jobs are running or not.

◆ IsScanningLibrary()

bool CMusicLibraryQueue::IsScanningLibrary ( ) const

Check if a library scan or cleaning is in progress.

Returns
True if a scan or clean is in progress, false otherwise

◆ OnJobComplete()

void CMusicLibraryQueue::OnJobComplete ( unsigned int jobID,
bool success,
CJob * job )
overrideprotectedvirtual

The callback used when a job completes.

CJobQueue implementation will cleanup the internal processing queue and then queue the next job at the job manager, if any.

Parameters
jobIDthe unique id of the job (as retrieved from CJobManager::AddJob)
successthe result from the DoWork call
jobthe job that has been processed.
See also
CJobManager, IJobCallback and CJob

Reimplemented from CJobQueue.

◆ Refresh()

void CMusicLibraryQueue::Refresh ( )
protected

Notifies all to refresh the current listings.

◆ ScanLibrary()

void CMusicLibraryQueue::ScanLibrary ( const std::string & strDirectory,
int flags = 0,
bool showProgress = true )

Enqueue a music library update job, scanning tags embedded in music files and optionally scraping additional data.

Parameters
[in]strDirectoryDirectory to scan or "" (empty string) for a global scan.
[in]flagsFlags for controlling the scanning process. See xbmc/music/infoscanner/MusicInfoScanner.h for possible values.
[in]showProgressWhether or not to show a progress dialog. Defaults to true

◆ StartAlbumScan()

void CMusicLibraryQueue::StartAlbumScan ( const std::string & strDirectory,
bool refresh = false )

Enqueue an album scraping job fetching additional album data.

Parameters
[in]strDirectoryVirtual path that identifies which albums to process or "" (empty string) for all albums
[in]refreshWhether or not to refresh data for albums that have previously been scraped

◆ StartArtistScan()

void CMusicLibraryQueue::StartArtistScan ( const std::string & strDirectory,
bool refresh = false )

Enqueue an artist scraping job fetching additional artist data.

Parameters
[in]strDirectoryVirtual path that identifies which artists to process or "" (empty string) for all artists
[in]refreshWhether or not to refresh data for artists that have previously been scraped

◆ StopLibraryScanning()

void CMusicLibraryQueue::StopLibraryScanning ( )

Stop and dequeue all scanning jobs.


The documentation for this class was generated from the following files: