mme_explore_info_t

Information about items found during mediastore exploration

Synopsis:

#include <mme/explore.h>

typedef struct s_mme_explore_info {
	uint32_t flags;
	uint32_t index;
	char *path;
	mme_metadata_hdl_t *metadata;
} mme_explore_info_t;

Description:

The structure mme_explore_info_t carries information about items (folders and files) found at a specified path on a mediastore. It contains at least the members described in the table below.

Member Type Description
flags uint32_t Flags set to a value defined by MME_EXPLORE_* bit masks, described below.
index unint32_t Index for this entry in the parent folder.
path char A pointer to the full path to the item on the mediastore.
metadata mme_metadata_hdl_t A pointer to the metadata for this item, if metadata was requested and found. If this pointer is not zero, you know that metadata for this item is available. You do not need to check the MME_EXPLORE_FLAGS_HAS_METADATA flag as well.

MME_EXPLORE_* bit masks

Bitmasks that support mediastore exploration are described in the table below:

Constant Value Description
MME_EXPLORE_FILTER_INCLUDE 0x00000000 Inbound flag: instruct the MME to treat the file filter specification as an include-only specifier. This is the default setting if no flag is specified.
MME_EXPLORE_FLAGS_IS_FOLDER 0x00000001 The item is a folder — not a file.
MME_EXPLORE_FLAGS_IS_PLAYLIST 0x00000002 The item is a playlist (folder or file).
MME_EXPLORE_FLAGS_IS_PLAYLIST_ITEM 0x00000004 The item is a name from a playlist.
MME_EXPLORE_FLAGS_IS_PLAYLIST_FILENAME 0x00000008 The item is a resolved filename from a playlist file. The MME returns this value only for items retrieved from playlists when MME_EXPLORE_RESOLVE_PLAYLIST_ITEM is used for items successfully converted to a file on the mediastore. Otherwise, the MME returns the MME_EXPLORE_FLAGS_IS_PLAYLIST_ITEM flag with the item.
MME_EXPLORE_FLAGS_HAS_METADATA 0x00000100 The item has metadata.
MME_EXPLORE_RESOLVE_PLAYLIST_ITEM 0x00010000 Inbound flag: instruct the MME to resolve playlist file entries immediately. Using this flag results in much faster resolution of playlist contents to playable files, but the actual playlist entry value is not visible to the client application. This flag overrides the MME_EXPLORE_UNCONVERTED_CHAR_ENCODING flag.
MME_EXPLORE_FILTER_EXCLUDE 0x00020000 Inbound flag: instruct the MME to treat the file filter specification as an exclude specifier.
MME_EXPLORE_UNCONVERTED_CHAR_ENCODING 0x00040000 Inbound flag: instruct the MME to not perform any character conversion on entries before returning them. See MME_EXPLORE_UNCONVERTED_CHAR_ENCODING flag below.

MME_EXPLORE_UNCONVERTED_CHAR_ENCODING flag

Normally, the MME attempts to convert playlist file entries to UTF-8.

Setting the MME_EXPLORE_UNCONVERTED_CHAR_ENCODING inbound flag is useful for seeing what comes out of playlists when their entries don't appear to convert to real files.


Note: If the MME_EXPLORE_RESOLVE_PLAYLIST_ITEM flag is set, this setting overrides the MME_EXPLORE_UNCONVERTED_CHAR_ENCODING flag.

Example

Below is an example from the command-line application mmexplore showing how MME_EXPLORE_* bit masks can be used.

static const char *item_type_str(uint32_t flags)
{
    if (flags & MME_EXPLORE_FLAGS_IS_PLAYLIST_FILENAME) {
        return "PF";
    }
    if (flags & MME_EXPLORE_FLAGS_IS_PLAYLIST_ITEM) {
        return "PI";
    }
    if ((flags & (MME_EXPLORE_FLAGS_IS_PLAYLIST|MME_EXPLORE_FLAGS_IS_FOLDER)) ==
        (MME_EXPLORE_FLAGS_IS_PLAYLIST|MME_EXPLORE_FLAGS_IS_FOLDER)) {
        return "DP";
    }
    if (flags & MME_EXPLORE_FLAGS_IS_PLAYLIST) {
        return "P ";
    }
    if (flags & MME_EXPLORE_FLAGS_IS_FOLDER) {
        return "D ";
    }
    return "F ";
}

Classification:

QNX Multimedia

See also:

mme_explore_end(), mme_explore_hdl_t, mme_explore_info_free(), mme_explore_info_get(), mme_explore_playlist_find_file(), mme_explore_position_set(), mme_explore_size_get(), mme_explore_start()