// Copyright (c) 2012 The Chromium Authors. All rights reserved. // Use of this source code is governed by a BSD-style license that can be // found in the LICENSE file. // Use the chrome.mediaGalleries API to access media files (images, // video, audio) from the user's local disks (with the user's consent). namespace mediaGalleries { [inline_doc] enum GetMediaFileSystemsInteractivity { // Do not act interactively. no, // Ask the user to manage permitted media galleries. yes, // Ask the user to manage permitted galleries only if the return set would // otherwise be empty. if_needed }; enum GetMetadataType { // Retrieve all available metadata. all, // Retrieve only the mime type. mimeTypeOnly }; [inline_doc] dictionary MediaFileSystemsDetails { // Whether to prompt the user for permission to additional media galleries // before returning the permitted set. Default is silent. If the value // 'yes' is passed, or if the application has not been granted access to // any media galleries and the value 'if_needed' is passed, then the // media gallery configuration dialog will be displayed. GetMediaFileSystemsInteractivity? interactive; }; dictionary MediaMetadataOptions { // Specifies which subset of the metadata to retrieve. Defaults to 'all' // if the option is omitted. GetMetadataType? metadataType; }; callback MediaFileSystemsCallback = void ([instanceOf=DOMFileSystem] optional object[] mediaFileSystems); [inline_doc] dictionary MediaFileSystemMetadata { // The name of the file system. DOMString name; // A unique and persistent id for the media gallery. DOMString galleryId; // If the media gallery is on a removable device, a unique id for the // device while the device is online. DOMString? deviceId; // True if the media gallery is on a removable device. boolean isRemovable; // True if the device the media gallery is on was detected as a media // device. i.e. a PTP or MTP device, or a DCIM directory is present. boolean isMediaDevice; // True if the device is currently available. boolean isAvailable; }; callback MediaFileSystemsMetadataCallback = void (MediaFileSystemMetadata[] metadata); dictionary MediaMetadata { // The browser sniffed mime type. DOMString mimeType; }; callback MediaMetadataCallback = void (MediaMetadata metadata); interface Functions { // Get the media galleries configured in this user agent. If none are // configured or available, the callback will receive an empty array. static void getMediaFileSystems(optional MediaFileSystemsDetails details, MediaFileSystemsCallback callback); // Get metadata about a specific media file system. [nocompile] static MediaFileSystemMetadata getMediaFileSystemMetadata( [instanceOf=DOMFileSystem] object mediaFileSystem); // Get metadata for all available media galleries. static void getAllMediaFileSystemMetadata( MediaFileSystemsMetadataCallback callback); // Gets the media-specific metadata for a media file. This should work // for files in media galleries as well as other DOM filesystems. static void getMetadata([instanceOf=Blob] object mediaFile, optional MediaMetadataOptions options, MediaMetadataCallback callback); }; };