blob: 9f607b07cb0e8b70bc3cf48289d0e1cd50dc9ec5 [file] [log] [blame]
// Copyright 2015 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.
[DartPackage="mojo_services"]
module mojo;
struct Photo {
// A string to uniquely identify an instance of a |Photo|. This can be used
// to de-duplicate photos over multiple runs on the camera roll.
string unique_id;
// Stream to read contents of the photo from.
handle<data_pipe_consumer> content;
};
// |CameraRollService| provides access to the device's camera roll.
// The camera roll is exposed as a snapshot of all photos available as a list.
// The head of the list (element with index 0) is a photo with the latest
// timestamp and subsequent elements are in decreasing order of timestamp.
[ServiceName="mojo::CameraRollService"]
interface CameraRollService {
// Updates the snapshot of all photos available. Photos might have been added
// or removed after the service was started or |Update| was called.
Update();
// Get the number of photos available in the current snapshot.
GetCount() => (uint32 num_photos);
// Get the photo from the current snapshot at |index|. null will be returned
// if such an index is out-of-bounds.
GetPhoto(uint32 index) => (Photo? photo);
};
// |CameraService| provides access to the device's camera video stream.
[ServiceName="mojo::CameraService"]
interface CameraService {
// Returns the most recent frame captured by the device's camera
// in preview mode.
GetLatestFrame() => (handle<data_pipe_consumer>? content);
};