Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(541)

Side by Side Diff: extensions/browser/api/webcam_private/visca_webcam.h

Issue 1281263003: Change webcamPrivate.set/get/reset to async APIs. (Closed) Base URL: https://chromium.googlesource.com/chromium/src.git@master
Patch Set: Address Zach's comments. Created 5 years, 3 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View unified diff | Download patch
OLDNEW
1 // Copyright 2015 The Chromium Authors. All rights reserved. 1 // Copyright 2015 The Chromium Authors. All rights reserved.
2 // Use of this source code is governed by a BSD-style license that can be 2 // Use of this source code is governed by a BSD-style license that can be
3 // found in the LICENSE file. 3 // found in the LICENSE file.
4 4
5 #ifndef EXTENSIONS_BROWSER_API_WEBCAM_PRIVATE_VISCA_WEBCAM_H_ 5 #ifndef EXTENSIONS_BROWSER_API_WEBCAM_PRIVATE_VISCA_WEBCAM_H_
6 #define EXTENSIONS_BROWSER_API_WEBCAM_PRIVATE_VISCA_WEBCAM_H_ 6 #define EXTENSIONS_BROWSER_API_WEBCAM_PRIVATE_VISCA_WEBCAM_H_
7 7
8 #include <deque> 8 #include <deque>
9 9
10 #include "base/callback.h" 10 #include "base/callback.h"
(...skipping 12 matching lines...) Expand all
23 23
24 // Open and initialize the web camera. This is done by the following three 24 // Open and initialize the web camera. This is done by the following three
25 // steps (in order): 1. Open the serial port; 2. Request address; 3. Clear 25 // steps (in order): 1. Open the serial port; 2. Request address; 3. Clear
26 // the command buffer. After these three steps completes, |open_callback| will 26 // the command buffer. After these three steps completes, |open_callback| will
27 // be called. 27 // be called.
28 void Open(const OpenCompleteCallback& open_callback); 28 void Open(const OpenCompleteCallback& open_callback);
29 29
30 private: 30 private:
31 ~ViscaWebcam() override; 31 ~ViscaWebcam() override;
32 32
33 enum CommandType { 33 enum InquiryType {
34 COMMAND,
35 INQUIRY_PAN, 34 INQUIRY_PAN,
36 INQUIRY_TILT, 35 INQUIRY_TILT,
37 INQUIRY_PAN_TILT,
38 INQUIRY_ZOOM, 36 INQUIRY_ZOOM,
39 }; 37 };
40 38
41 using CommandCompleteCallback = 39 using CommandCompleteCallback =
42 base::Callback<void(bool, const std::vector<char>&)>; 40 base::Callback<void(bool, const std::vector<char>&)>;
43 41
44 void OpenOnIOThread(const OpenCompleteCallback& open_callback); 42 void OpenOnIOThread(const OpenCompleteCallback& open_callback);
45 // Callback function that will be called after the serial connection has been 43 // Callback function that will be called after the serial connection has been
46 // opened successfully. 44 // opened successfully.
47 void OnConnected(const OpenCompleteCallback& open_callback, bool success); 45 void OnConnected(const OpenCompleteCallback& open_callback, bool success);
(...skipping 11 matching lines...) Expand all
59 // Send or queue a command and wait for the camera's response. 57 // Send or queue a command and wait for the camera's response.
60 void Send(const std::vector<char>& command, 58 void Send(const std::vector<char>& command,
61 const CommandCompleteCallback& callback); 59 const CommandCompleteCallback& callback);
62 void OnSendCompleted(const CommandCompleteCallback& callback, 60 void OnSendCompleted(const CommandCompleteCallback& callback,
63 int bytes_sent, 61 int bytes_sent,
64 api::serial::SendError error); 62 api::serial::SendError error);
65 void ReceiveLoop(const CommandCompleteCallback& callback); 63 void ReceiveLoop(const CommandCompleteCallback& callback);
66 void OnReceiveCompleted(const CommandCompleteCallback& callback, 64 void OnReceiveCompleted(const CommandCompleteCallback& callback,
67 const std::vector<char>& data, 65 const std::vector<char>& data,
68 api::serial::ReceiveError error); 66 api::serial::ReceiveError error);
67
69 // Callback function that will be called after the send and reply of a command 68 // Callback function that will be called after the send and reply of a command
70 // are both completed. Update |value| according to |type| and |response| if 69 // are both completed.
71 // necessory. 70 void OnCommandCompleted(const SetPTZCompleteCallback& callback,
72 void OnCommandCompleted(CommandType type, 71 bool success,
73 int* value, 72 const std::vector<char>& response);
73 // Callback function that will be called after the send and reply of an
74 // inquiry are both completed.
75 void OnInquiryCompleted(InquiryType type,
76 const GetPTZCompleteCallback& callback,
74 bool success, 77 bool success,
75 const std::vector<char>& response); 78 const std::vector<char>& response);
76 79
77 // Webcam Overrides: 80 // Webcam Overrides:
78 void Reset(bool pan, bool tilt, bool zoom) override; 81 void GetPan(const GetPTZCompleteCallback& callback) override;
79 bool GetPan(int* value) override; 82 void GetTilt(const GetPTZCompleteCallback& callback) override;
80 bool GetTilt(int* value) override; 83 void GetZoom(const GetPTZCompleteCallback& callback) override;
81 bool GetZoom(int* value) override; 84 void SetPan(int value, const SetPTZCompleteCallback& callback) override;
82 bool SetPan(int value) override; 85 void SetTilt(int value, const SetPTZCompleteCallback& callback) override;
83 bool SetTilt(int value) override; 86 void SetZoom(int value, const SetPTZCompleteCallback& callback) override;
84 bool SetZoom(int value) override; 87 void SetPanDirection(PanDirection direction,
85 bool SetPanDirection(PanDirection direction) override; 88 const SetPTZCompleteCallback& callback) override;
86 bool SetTiltDirection(TiltDirection direction) override; 89 void SetTiltDirection(TiltDirection direction,
90 const SetPTZCompleteCallback& callback) override;
91 void Reset(bool pan,
92 bool tilt,
93 bool zoom,
94 const SetPTZCompleteCallback& callback) override;
87 95
88 const std::string path_; 96 const std::string path_;
89 const std::string extension_id_; 97 const std::string extension_id_;
90 98
91 scoped_ptr<SerialConnection> serial_connection_; 99 scoped_ptr<SerialConnection> serial_connection_;
92 100
93 // Stores the response for the current command. 101 // Stores the response for the current command.
94 std::vector<char> data_buffer_; 102 std::vector<char> data_buffer_;
95 // Queues commands till the current command completes. 103 // Queues commands till the current command completes.
96 std::deque<std::pair<std::vector<char>, CommandCompleteCallback>> commands_; 104 std::deque<std::pair<std::vector<char>, CommandCompleteCallback>> commands_;
97 105
98 // Visca webcam always get/set pan-tilt together. |pan| and |tilt| are used to 106 // Visca webcam always get/set pan-tilt together. |pan| and |tilt| are used to
99 // store the current value of pan and tilt positions. 107 // store the current value of pan and tilt positions.
100 int pan_; 108 int pan_;
101 int tilt_; 109 int tilt_;
102 110
103 base::WeakPtrFactory<ViscaWebcam> weak_ptr_factory_; 111 base::WeakPtrFactory<ViscaWebcam> weak_ptr_factory_;
104 112
105 DISALLOW_COPY_AND_ASSIGN(ViscaWebcam); 113 DISALLOW_COPY_AND_ASSIGN(ViscaWebcam);
106 }; 114 };
107 115
108 } // namespace extensions 116 } // namespace extensions
109 117
110 #endif // EXTENSIONS_BROWSER_API_WEBCAM_PRIVATE_VISCA_WEBCAM_H_ 118 #endif // EXTENSIONS_BROWSER_API_WEBCAM_PRIVATE_VISCA_WEBCAM_H_
OLDNEW
« no previous file with comments | « extensions/browser/api/webcam_private/v4l2_webcam.cc ('k') | extensions/browser/api/webcam_private/visca_webcam.cc » ('j') | no next file with comments »

Powered by Google App Engine
This is Rietveld 408576698