Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Fix ImageCapture API (#2347) #2348

Merged
merged 2 commits into from
Nov 9, 2020
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
87 changes: 54 additions & 33 deletions crates/web-sys/src/features/gen_ImageCapture.rs
Original file line number Diff line number Diff line change
@@ -1,65 +1,86 @@
#![allow(unused_imports)]
use super::*;
use wasm_bindgen::prelude::*;
#[cfg(web_sys_unstable_apis)]
#[wasm_bindgen]
extern "C" {
# [wasm_bindgen (extends = EventTarget , extends = :: js_sys :: Object , js_name = ImageCapture , typescript_type = "ImageCapture")]
# [wasm_bindgen (extends = :: js_sys :: Object , js_name = ImageCapture , typescript_type = "ImageCapture")]
#[derive(Debug, Clone, PartialEq, Eq)]
#[doc = "The `ImageCapture` class."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub type ImageCapture;
#[cfg(feature = "VideoStreamTrack")]
# [wasm_bindgen (structural , method , getter , js_class = "ImageCapture" , js_name = videoStreamTrack)]
#[doc = "Getter for the `videoStreamTrack` field of this object."]
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "MediaStreamTrack")]
# [wasm_bindgen (structural , method , getter , js_class = "ImageCapture" , js_name = track)]
#[doc = "Getter for the `track` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/videoStreamTrack)"]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/track)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`, `VideoStreamTrack`*"]
pub fn video_stream_track(this: &ImageCapture) -> VideoStreamTrack;
# [wasm_bindgen (structural , method , getter , js_class = "ImageCapture" , js_name = onphoto)]
#[doc = "Getter for the `onphoto` field of this object."]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`, `MediaStreamTrack`*"]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/onphoto)"]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn track(this: &ImageCapture) -> MediaStreamTrack;
#[cfg(web_sys_unstable_apis)]
#[cfg(feature = "MediaStreamTrack")]
#[wasm_bindgen(catch, constructor, js_class = "ImageCapture")]
#[doc = "The `new ImageCapture(..)` constructor, creating a new instance of `ImageCapture`."]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`*"]
pub fn onphoto(this: &ImageCapture) -> Option<::js_sys::Function>;
# [wasm_bindgen (structural , method , setter , js_class = "ImageCapture" , js_name = onphoto)]
#[doc = "Setter for the `onphoto` field of this object."]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/ImageCapture)"]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/onphoto)"]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`, `MediaStreamTrack`*"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`*"]
pub fn set_onphoto(this: &ImageCapture, value: Option<&::js_sys::Function>);
# [wasm_bindgen (structural , method , getter , js_class = "ImageCapture" , js_name = onerror)]
#[doc = "Getter for the `onerror` field of this object."]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn new(video_track: &MediaStreamTrack) -> Result<ImageCapture, JsValue>;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (method , structural , js_class = "ImageCapture" , js_name = getPhotoCapabilities)]
#[doc = "The `getPhotoCapabilities()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/onerror)"]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoCapabilities)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`*"]
pub fn onerror(this: &ImageCapture) -> Option<::js_sys::Function>;
# [wasm_bindgen (structural , method , setter , js_class = "ImageCapture" , js_name = onerror)]
#[doc = "Setter for the `onerror` field of this object."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/onerror)"]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn get_photo_capabilities(this: &ImageCapture) -> ::js_sys::Promise;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (method , structural , js_class = "ImageCapture" , js_name = getPhotoSettings)]
#[doc = "The `getPhotoSettings()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/getPhotoSettings)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`*"]
pub fn set_onerror(this: &ImageCapture, value: Option<&::js_sys::Function>);
#[cfg(feature = "VideoStreamTrack")]
#[wasm_bindgen(catch, constructor, js_class = "ImageCapture")]
#[doc = "The `new ImageCapture(..)` constructor, creating a new instance of `ImageCapture`."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/ImageCapture)"]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn get_photo_settings(this: &ImageCapture) -> ::js_sys::Promise;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (method , structural , js_class = "ImageCapture" , js_name = grabFrame)]
#[doc = "The `grabFrame()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/grabFrame)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`, `VideoStreamTrack`*"]
pub fn new(track: &VideoStreamTrack) -> Result<ImageCapture, JsValue>;
# [wasm_bindgen (catch , method , structural , js_class = "ImageCapture" , js_name = takePhoto)]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`*"]
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn grab_frame(this: &ImageCapture) -> ::js_sys::Promise;
#[cfg(web_sys_unstable_apis)]
# [wasm_bindgen (method , structural , js_class = "ImageCapture" , js_name = takePhoto)]
#[doc = "The `takePhoto()` method."]
#[doc = ""]
#[doc = "[MDN Documentation](https://developer.mozilla.org/en-US/docs/Web/API/ImageCapture/takePhoto)"]
#[doc = ""]
#[doc = "*This API requires the following crate features to be activated: `ImageCapture`*"]
pub fn take_photo(this: &ImageCapture) -> Result<(), JsValue>;
#[doc = ""]
#[doc = "*This API is unstable and requires `--cfg=web_sys_unstable_apis` to be activated, as"]
#[doc = "[described in the `wasm-bindgen` guide](https://rustwasm.github.io/docs/wasm-bindgen/web-sys/unstable-apis.html)*"]
pub fn take_photo(this: &ImageCapture) -> ::js_sys::Promise;
}
Original file line number Diff line number Diff line change
Expand Up @@ -10,19 +10,13 @@
* W3C liability, trademark and document use rules apply.
*/

[Pref="dom.imagecapture.enabled", Constructor(VideoStreamTrack track)]
interface ImageCapture : EventTarget {
// readonly attribute PhotoSettingsOptions photoSettingsOptions;
readonly attribute VideoStreamTrack videoStreamTrack;
attribute EventHandler onphoto;
attribute EventHandler onerror;
// attribute EventHandler onphotosettingschange;
// attribute EventHandler onframegrab;
[Pref="dom.imagecapture.enabled", Constructor(MediaStreamTrack videoTrack)]
interface ImageCapture {
Promise<Blob> takePhoto(optional PhotoSettings photoSettings);
Promise<PhotoCapabilities> getPhotoCapabilities();
Promise<PhotoSettings> getPhotoSettings();

// [Throws]
// void setOptions (PhotoSettings? photoSettings);
[Throws]
void takePhoto();
// [Throws]
// void getFrame();
Promise<ImageBitmap> grabFrame();

readonly attribute MediaStreamTrack track;
};