android-emulator-webrtc 1.0.18 → 2.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (69) hide show
  1. package/README.md +93 -204
  2. package/dist/components/emulator/emulator.d.ts +64 -0
  3. package/dist/components/emulator/emulator.js +161 -173
  4. package/dist/components/emulator/net/emulator_status.d.ts +45 -0
  5. package/dist/components/emulator/net/emulator_status.js +35 -42
  6. package/dist/components/emulator/net/logcat.js +37 -54
  7. package/dist/components/emulator/net/logger.d.ts +7 -0
  8. package/dist/components/emulator/net/logger.js +20 -0
  9. package/dist/components/emulator/net/ws_jsep_protocol_driver.d.ts +213 -0
  10. package/dist/components/emulator/net/ws_jsep_protocol_driver.js +640 -0
  11. package/dist/components/emulator/views/event_handler.d.ts +37 -0
  12. package/dist/components/emulator/views/event_handler.js +274 -260
  13. package/dist/components/emulator/views/webrtc_view.d.ts +27 -0
  14. package/dist/components/emulator/views/webrtc_view.js +42 -20
  15. package/dist/index.d.ts +8 -0
  16. package/dist/index.js +0 -7
  17. package/dist/proto/emulator_controller_pb.d.ts +1 -0
  18. package/dist/proto/emulator_controller_pb.js +146 -287
  19. package/dist/src/components/emulator/emulator.d.ts +64 -0
  20. package/dist/src/components/emulator/net/emulator_status.d.ts +45 -0
  21. package/dist/src/components/emulator/net/logger.d.ts +7 -0
  22. package/dist/src/components/emulator/net/ws_jsep_protocol_driver.d.ts +213 -0
  23. package/dist/src/components/emulator/views/event_handler.d.ts +37 -0
  24. package/dist/src/components/emulator/views/webrtc_view.d.ts +27 -0
  25. package/dist/src/index.d.ts +8 -0
  26. package/dist/src/proto/emulator_controller_pb.d.ts +1 -0
  27. package/package.json +17 -17
  28. package/proto/emulator_controller.proto +746 -181
  29. package/.vscode/launch.json +0 -21
  30. package/.vscode/settings.json +0 -3
  31. package/CONTRIBUTING.md +0 -28
  32. package/Makefile +0 -123
  33. package/android-emulator-webrtc.code-workspace +0 -7
  34. package/api_descriptor.pb +0 -0
  35. package/babel.config.js +0 -16
  36. package/cloudbuild.yaml +0 -41
  37. package/cloudbuilders/.gcloudignore +0 -1
  38. package/cloudbuilders/Dockerfile +0 -20
  39. package/cloudbuilders/README.md +0 -29
  40. package/cloudbuilders/cloudbuild.yaml +0 -19
  41. package/dist/components/emulator/net/jsep_protocol_driver.js +0 -365
  42. package/dist/components/emulator/views/simple_png_view.js +0 -110
  43. package/dist/proto/emulator_controller_grpc_web_pb.js +0 -1601
  44. package/dist/proto/emulator_web_client.js +0 -176
  45. package/dist/proto/rtc_service_grpc_web_pb.js +0 -231
  46. package/dist/proto/rtc_service_pb.js +0 -338
  47. package/emulator/index.js +0 -1
  48. package/eslint_prefix.py +0 -37
  49. package/gen_md_doc.js +0 -40
  50. package/npmrc.enc +0 -0
  51. package/proto/rtc_service.proto +0 -117
  52. package/protoc-plugin/Makefile +0 -31
  53. package/protoc-plugin/grpc_generator.cc +0 -1755
  54. package/src/components/emulator/emulator.js +0 -217
  55. package/src/components/emulator/net/emulator_status.js +0 -94
  56. package/src/components/emulator/net/jsep_protocol_driver.js +0 -364
  57. package/src/components/emulator/net/logcat.js +0 -155
  58. package/src/components/emulator/views/event_handler.js +0 -268
  59. package/src/components/emulator/views/simple_png_view.js +0 -105
  60. package/src/components/emulator/views/webrtc_view.js +0 -142
  61. package/src/index.js +0 -20
  62. package/src/proto/emulator_web_client.js +0 -140
  63. package/test/cloudbuild.yaml +0 -41
  64. package/test/emulator.test.js +0 -125
  65. package/test/event_handler.test.js +0 -91
  66. package/test/fake_events.js +0 -50
  67. package/test/jsep_protocol_driver.test.js +0 -228
  68. package/test/simple_png_view.test.js +0 -145
  69. package/test/touch_event_handler.test.js +0 -118
@@ -9,6 +9,7 @@ exports["default"] = void 0;
9
9
  var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
10
10
  var _propTypes = _interopRequireDefault(require("prop-types"));
11
11
  var _react = _interopRequireWildcard(require("react"));
12
+ var _logger = _interopRequireDefault(require("../net/logger"));
12
13
  function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function _getRequireWildcardCache(nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
13
14
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || _typeof(obj) !== "object" && typeof obj !== "function") { return { "default": obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj["default"] = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
14
15
  /*
@@ -27,13 +28,35 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
27
28
  * limitations under the License.
28
29
  */
29
30
 
31
+ /**
32
+ * A React component that renders the WebRTC video stream of the emulator.
33
+ * Handles establishing the stream via the JSEP protocol driver and managing
34
+ * local playback (including handling autoplay constraints).
35
+ *
36
+ * @param {Object} props Component properties.
37
+ * @param {Object} props.jsep The JSEP protocol driver instance.
38
+ * @param {function(string): void} [props.onStateChange] Callback for connection state changes ("connecting", "connected", "disconnected").
39
+ * @param {function(boolean): void} [props.onAudioStateChange] Callback when audio track status changes.
40
+ * @param {boolean} [props.muted=true] Whether the audio should be muted.
41
+ * @param {number} [props.volume=1.0] Audio volume (between 0.0 and 1.0).
42
+ * @param {function(Error): void} props.onError Callback invoked on signaling or playback errors.
43
+ * @param {number} [props.width] Component width.
44
+ * @param {number} [props.height] Component height.
45
+ */
30
46
  var EmulatorWebrtcView = function EmulatorWebrtcView(_ref) {
31
47
  var jsep = _ref.jsep,
32
48
  onStateChange = _ref.onStateChange,
33
49
  onAudioStateChange = _ref.onAudioStateChange,
34
- muted = _ref.muted,
35
- volume = _ref.volume,
36
- onError = _ref.onError;
50
+ _ref$muted = _ref.muted,
51
+ muted = _ref$muted === void 0 ? true : _ref$muted,
52
+ _ref$volume = _ref.volume,
53
+ volume = _ref$volume === void 0 ? 1.0 : _ref$volume,
54
+ _ref$onError = _ref.onError,
55
+ onError = _ref$onError === void 0 ? function (e) {
56
+ return _logger["default"].error("WebRTC error: " + e);
57
+ } : _ref$onError,
58
+ width = _ref.width,
59
+ height = _ref.height;
37
60
  var _useState = (0, _react.useState)(false),
38
61
  _useState2 = (0, _slicedToArray2["default"])(_useState, 2),
39
62
  audio = _useState2[0],
@@ -81,7 +104,7 @@ var EmulatorWebrtcView = function EmulatorWebrtcView(_ref) {
81
104
  var possiblePromise = video.play();
82
105
  if (possiblePromise) {
83
106
  possiblePromise.then(function (_) {
84
- console.debug("Automatic playback started!");
107
+ _logger["default"].debug("Automatic playback started!");
85
108
  })["catch"](function (error) {
86
109
  // Notify listeners that we cannot start.
87
110
  onError(error);
@@ -95,25 +118,30 @@ var EmulatorWebrtcView = function EmulatorWebrtcView(_ref) {
95
118
  e.preventDefault();
96
119
  };
97
120
  (0, _react.useEffect)(function () {
98
- jsep.on("connected", onConnect);
99
- jsep.on("disconnected", onDisconnect);
100
- jsep.startStream();
121
+ jsep.startStream({
122
+ onConnected: onConnect,
123
+ onDisconnected: onDisconnect
124
+ });
101
125
  setConnect("connecting");
102
126
  return function () {
103
127
  jsep.disconnect();
104
128
  };
105
129
  }, []);
130
+ (0, _react.useEffect)(function () {
131
+ if (videoRef.current) {
132
+ videoRef.current.volume = volume;
133
+ }
134
+ }, [volume]);
106
135
  return /*#__PURE__*/_react["default"].createElement("video", {
107
136
  ref: videoRef,
108
137
  style: {
109
138
  display: "block",
110
139
  position: "relative",
111
- width: "100%",
112
- height: "100%",
140
+ width: width ? "".concat(width, "px") : "100%",
141
+ height: height ? "".concat(height, "px") : "100%",
113
142
  objectFit: "contain",
114
143
  objectPosition: "center"
115
144
  },
116
- volume: volume,
117
145
  muted: muted,
118
146
  onContextMenu: onContextMenu,
119
147
  onCanPlay: onCanPlay
@@ -125,14 +153,8 @@ EmulatorWebrtcView.propTypes = {
125
153
  onAudioStateChange: _propTypes["default"].func,
126
154
  muted: _propTypes["default"].bool,
127
155
  volume: _propTypes["default"].number,
128
- onError: _propTypes["default"].func
129
- };
130
- EmulatorWebrtcView.defaultProps = {
131
- muted: true,
132
- volume: 1.0,
133
- onError: function onError(e) {
134
- return console.error("WebRTC error: " + e);
135
- }
156
+ onError: _propTypes["default"].func,
157
+ width: _propTypes["default"].number,
158
+ height: _propTypes["default"].number
136
159
  };
137
- var _default = EmulatorWebrtcView;
138
- exports["default"] = _default;
160
+ var _default = exports["default"] = EmulatorWebrtcView;
@@ -0,0 +1,8 @@
1
+ /**
2
+ * @fileoverview Main entry point for the android-emulator-webrtc package.
3
+ * Exports the primary Emulator React component and the EmulatorStatus utility.
4
+ */
5
+ import Emulator from "./components/emulator/emulator";
6
+ import EmulatorStatus from "./components/emulator/net/emulator_status";
7
+ import logger from "./components/emulator/net/logger";
8
+ export { Emulator, EmulatorStatus, logger };
package/dist/index.js CHANGED
@@ -16,12 +16,5 @@ Object.defineProperty(exports, "EmulatorStatus", {
16
16
  return _emulator_status["default"];
17
17
  }
18
18
  });
19
- Object.defineProperty(exports, "Logcat", {
20
- enumerable: true,
21
- get: function get() {
22
- return _logcat["default"];
23
- }
24
- });
25
19
  var _emulator = _interopRequireDefault(require("./components/emulator/emulator"));
26
- var _logcat = _interopRequireDefault(require("./components/emulator/net/logcat"));
27
20
  var _emulator_status = _interopRequireDefault(require("./components/emulator/net/emulator_status"));
@@ -0,0 +1 @@
1
+ export {};