Reference

Media::Scan(3pm)

new( \@paths, \%options )

Create a new Media::Scan instance and begin scanning.

paths may be a single scalar path, or an array reference with multiple paths.

options include:

loglevel (default: MS_LOG_ERR)

One of the following levels:

    MS_LOG_ERR
    MS_LOG_WARN
    MS_LOG_INFO
    MS_LOG_DEBUG
    MS_LOG_MEMORY

async (default: 0)

If set to 1, all scanning is performed in a background thread, and the call to new() will return immediately. Make sure to keep a reference to the Media::Scan object, or the scan will be aborted at DESTROY-time.

cachedir (default: current dir)

An optional path for libmediascan to store some cache files.

flags (default: MS_USE_EXTENSION | MS_FULL_SCAN)

An OR'ed list of flags, the possible flags are:

    MS_USE_EXTENSION   - Use a file's extension to determine how to scan it.
    MS_FULL_SCAN       - Perform a full scan on every file.
    MS_RESCAN          - Only scan files that are new or have changed since the last scan.
    MS_INCLUDE_DELETED - The result callback will be called for files that have been deleted
                         since the last scan.
    MS_WATCH_CHANGES   - Continue watching for changes after the scan has completed.
    MS_CLEARDB         - Wipe the internal libmediascan database before scanning.

ignore (default: none)

An array reference of file extensions that should be skipped. You may also specify 3 special types:

    AUDIO - Ignore all audio files.
    IMAGE - Ignore all image files.
    VIDEO - Ignore all video files.

ignore_dirs (default: none)

An array reference of directory substrings that should be skipped, for example the iTunes container directories ".ite" and ".itlp" or the Windows directory "RECYCLER". The substrings are case-sensitive.

thumbnails (default: none)

An arrayref of hashes with one or more thumbnail specifications. Thumbnails are created during the scanning process and are available within the result callback.

The format of a thumbnail spec is:

    { format => 'AUTO', # or JPEG or PNG
      width => 100,
      height => 100,
      keep_aspect => 1,
      bgcolor => 0xffffff,
      quality => 90,
    }

Most values are optional, however at least width or height must be specified.

on_result

A callback that will be called for each scanned file. The function will be passed a Media::Scan::Audio, Media::Scan::Video, or Media::Scan::Image depending on the file type. This callback is required.

on_error

An callback that will be called when a scanning error occurs. It is passed a Media::Scan::Error.

on_progress

An optional callback that will be passed a Media::Scan::Progress at regular intervals during scanning.

on_finish

An optional callback that is called when scanning has finished. Nothing is currently passed to this callback, eventually a scanning summary and overall stats might be included here.

History