#ifndef UserMediaRequest_h
#define UserMediaRequest_h
#include "core/dom/ActiveDOMObject.h"
#include "modules/mediastream/NavigatorUserMediaErrorCallback.h"
#include "modules/mediastream/NavigatorUserMediaSuccessCallback.h"
#include "platform/mediastream/MediaStreamSource.h"
#include "public/platform/WebMediaConstraints.h"
#include "wtf/PassRefPtr.h"
#include "wtf/RefCounted.h"
#include "wtf/text/WTFString.h"
namespace WebCore {
class Dictionary;
class Document;
class ExceptionState;
class MediaStreamDescriptor;
class UserMediaController;
class UserMediaRequest FINAL : public RefCounted<UserMediaRequest>, public ContextLifecycleObserver {
public:
static PassRefPtr<UserMediaRequest> create(ExecutionContext*, UserMediaController*, const Dictionary& options, PassOwnPtr<NavigatorUserMediaSuccessCallback>, PassOwnPtr<NavigatorUserMediaErrorCallback>, ExceptionState&);
virtual ~UserMediaRequest();
NavigatorUserMediaSuccessCallback* successCallback() const { return m_successCallback.get(); }
NavigatorUserMediaErrorCallback* errorCallback() const { return m_errorCallback.get(); }
Document* ownerDocument();
void start();
void succeed(PassRefPtr<MediaStreamDescriptor>);
void failPermissionDenied(const String& message);
void failConstraint(const String& constraintName, const String& message);
void failUASpecific(const String& name, const String& message, const String& constraintName);
bool audio() const;
bool video() const;
blink::WebMediaConstraints audioConstraints() const;
blink::WebMediaConstraints videoConstraints() const;
virtual void contextDestroyed() OVERRIDE;
private:
UserMediaRequest(ExecutionContext*, UserMediaController*, blink::WebMediaConstraints audio, blink::WebMediaConstraints video, PassOwnPtr<NavigatorUserMediaSuccessCallback>, PassOwnPtr<NavigatorUserMediaErrorCallback>);
blink::WebMediaConstraints m_audio;
blink::WebMediaConstraints m_video;
UserMediaController* m_controller;
OwnPtr<NavigatorUserMediaSuccessCallback> m_successCallback;
OwnPtr<NavigatorUserMediaErrorCallback> m_errorCallback;
};
}
#endif