expo-gliph-player 1.0.0

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 (58) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +348 -0
  3. package/android/build.gradle +82 -0
  4. package/android/src/main/AndroidManifest.xml +31 -0
  5. package/android/src/main/java/com/gliphplayer/DeviceInfoModule.kt +48 -0
  6. package/android/src/main/java/com/gliphplayer/DeviceInfoPackage.kt +16 -0
  7. package/android/src/main/java/com/gliphplayer/GliphPlayerModule.kt +360 -0
  8. package/android/src/main/java/com/gliphplayer/GliphPlayerPackage.kt +48 -0
  9. package/android/src/main/java/com/gliphplayer/GliphPlayerService.kt +797 -0
  10. package/android/src/main/res/xml/automotive_app_desc.xml +4 -0
  11. package/android/src/oldarch/com/gliphplayer/NativeGliphPlayerSpec.kt +56 -0
  12. package/app.plugin.js +1 -0
  13. package/expo-gliph-player.podspec +91 -0
  14. package/ios/GliphAudioPlayer.h +77 -0
  15. package/ios/GliphAudioPlayer.swift +697 -0
  16. package/ios/GliphPlayer-Bridging-Header.h +3 -0
  17. package/ios/GliphPlayerModule.h +12 -0
  18. package/ios/GliphPlayerModule.mm +243 -0
  19. package/ios/expo_gliph_player.h +22 -0
  20. package/lib/commonjs/GliphPlayer.js +310 -0
  21. package/lib/commonjs/GliphPlayer.js.map +1 -0
  22. package/lib/commonjs/hooks.js +233 -0
  23. package/lib/commonjs/hooks.js.map +1 -0
  24. package/lib/commonjs/index.js +166 -0
  25. package/lib/commonjs/index.js.map +1 -0
  26. package/lib/commonjs/package.json +1 -0
  27. package/lib/commonjs/specs/NativeGliphPlayer.js +19 -0
  28. package/lib/commonjs/specs/NativeGliphPlayer.js.map +1 -0
  29. package/lib/commonjs/types.js +175 -0
  30. package/lib/commonjs/types.js.map +1 -0
  31. package/lib/module/GliphPlayer.js +305 -0
  32. package/lib/module/GliphPlayer.js.map +1 -0
  33. package/lib/module/hooks.js +221 -0
  34. package/lib/module/hooks.js.map +1 -0
  35. package/lib/module/index.js +20 -0
  36. package/lib/module/index.js.map +1 -0
  37. package/lib/module/package.json +1 -0
  38. package/lib/module/specs/NativeGliphPlayer.js +20 -0
  39. package/lib/module/specs/NativeGliphPlayer.js.map +1 -0
  40. package/lib/module/types.js +181 -0
  41. package/lib/module/types.js.map +1 -0
  42. package/lib/typescript/src/GliphPlayer.d.ts +113 -0
  43. package/lib/typescript/src/GliphPlayer.d.ts.map +1 -0
  44. package/lib/typescript/src/hooks.d.ts +51 -0
  45. package/lib/typescript/src/hooks.d.ts.map +1 -0
  46. package/lib/typescript/src/index.d.ts +11 -0
  47. package/lib/typescript/src/index.d.ts.map +1 -0
  48. package/lib/typescript/src/specs/NativeGliphPlayer.d.ts +80 -0
  49. package/lib/typescript/src/specs/NativeGliphPlayer.d.ts.map +1 -0
  50. package/lib/typescript/src/types.d.ts +348 -0
  51. package/lib/typescript/src/types.d.ts.map +1 -0
  52. package/package.json +62 -0
  53. package/src/GliphPlayer.ts +356 -0
  54. package/src/hooks.ts +256 -0
  55. package/src/index.ts +61 -0
  56. package/src/specs/NativeGliphPlayer.ts +105 -0
  57. package/src/types.ts +395 -0
  58. package/src/withGliphPlayer.js +166 -0
@@ -0,0 +1,233 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useActiveTrack = useActiveTrack;
7
+ exports.useIsPlaying = useIsPlaying;
8
+ exports.usePlaybackState = usePlaybackState;
9
+ exports.useProgress = useProgress;
10
+ exports.useQueue = useQueue;
11
+ exports.useRepeatMode = useRepeatMode;
12
+ exports.useTrackPlayerEvents = useTrackPlayerEvents;
13
+ exports.useVolume = useVolume;
14
+ var _react = require("react");
15
+ var _GliphPlayer = _interopRequireDefault(require("./GliphPlayer"));
16
+ var _types = require("./types");
17
+ function _interopRequireDefault(e) { return e && e.__esModule ? e : { default: e }; }
18
+ /**
19
+ * hooks.ts — React hooks for react-native-gliph-player
20
+ */
21
+
22
+ // ─── useTrackPlayerEvents ─────────────────────────────────────────────────────
23
+
24
+ /**
25
+ * Subscribe to one or more player events inside a component.
26
+ * Automatically unsubscribes on unmount.
27
+ *
28
+ * @example
29
+ * useTrackPlayerEvents([Event.PlaybackState], ({ state }) => {
30
+ * console.log(state);
31
+ * });
32
+ */
33
+ function useTrackPlayerEvents(events, handler) {
34
+ const handlerRef = (0, _react.useRef)(handler);
35
+ handlerRef.current = handler;
36
+ (0, _react.useEffect)(() => {
37
+ const unsubs = events.map(event => _GliphPlayer.default.addEventListener(event, data => {
38
+ handlerRef.current({
39
+ ...data,
40
+ type: event
41
+ });
42
+ }));
43
+ return () => unsubs.forEach(u => u());
44
+ // eslint-disable-next-line react-hooks/exhaustive-deps
45
+ }, events);
46
+ }
47
+
48
+ // ─── usePlaybackState ─────────────────────────────────────────────────────────
49
+
50
+ /**
51
+ * Returns the current playback state, updating reactively.
52
+ */
53
+ function usePlaybackState() {
54
+ const [state, setState] = (0, _react.useState)({
55
+ state: _types.State.None
56
+ });
57
+ (0, _react.useEffect)(() => {
58
+ let mounted = true;
59
+
60
+ // Fetch initial state
61
+ _GliphPlayer.default.getPlaybackState().then(s => {
62
+ if (mounted) {
63
+ setState(s);
64
+ }
65
+ }).catch(() => {});
66
+ const unsub = _GliphPlayer.default.addEventListener(_types.Event.PlaybackState, data => {
67
+ if (mounted) {
68
+ setState({
69
+ state: data.state
70
+ });
71
+ }
72
+ });
73
+ return () => {
74
+ mounted = false;
75
+ unsub();
76
+ };
77
+ }, []);
78
+ return state;
79
+ }
80
+
81
+ // ─── useProgress ─────────────────────────────────────────────────────────────
82
+
83
+ /**
84
+ * Returns live playback progress (position, duration, buffered).
85
+ * @param updateInterval How often to poll in ms. Defaults to 1000ms.
86
+ * Set to 0 to rely solely on native progress events.
87
+ */
88
+ function useProgress(updateInterval = 1000) {
89
+ const [progress, setProgress] = (0, _react.useState)({
90
+ position: 0,
91
+ duration: 0,
92
+ buffered: 0
93
+ });
94
+ (0, _react.useEffect)(() => {
95
+ let mounted = true;
96
+ let timer = null;
97
+ const update = () => {
98
+ _GliphPlayer.default.getProgress().then(p => {
99
+ if (mounted) {
100
+ setProgress(p);
101
+ }
102
+ }).catch(() => {});
103
+ };
104
+ update();
105
+ if (updateInterval > 0) {
106
+ timer = setInterval(update, updateInterval);
107
+ }
108
+
109
+ // Also listen to native progress events for immediate updates
110
+ const unsub = _GliphPlayer.default.addEventListener(_types.Event.PlaybackProgressUpdated, data => {
111
+ if (mounted) {
112
+ setProgress({
113
+ position: data.position,
114
+ duration: data.duration,
115
+ buffered: data.buffered
116
+ });
117
+ }
118
+ });
119
+ return () => {
120
+ mounted = false;
121
+ if (timer) {
122
+ clearInterval(timer);
123
+ }
124
+ unsub();
125
+ };
126
+ }, [updateInterval]);
127
+ return progress;
128
+ }
129
+
130
+ // ─── useActiveTrack ───────────────────────────────────────────────────────────
131
+
132
+ /**
133
+ * Returns the currently active track, updating when the track changes.
134
+ */
135
+ function useActiveTrack() {
136
+ const [track, setTrack] = (0, _react.useState)(undefined);
137
+ (0, _react.useEffect)(() => {
138
+ let mounted = true;
139
+ _GliphPlayer.default.getActiveTrack().then(t => {
140
+ if (mounted) {
141
+ setTrack(t);
142
+ }
143
+ }).catch(() => {});
144
+ const unsub = _GliphPlayer.default.addEventListener(_types.Event.PlaybackActiveTrackChanged, data => {
145
+ if (mounted) {
146
+ setTrack(data.track);
147
+ }
148
+ });
149
+ return () => {
150
+ mounted = false;
151
+ unsub();
152
+ };
153
+ }, []);
154
+ return track;
155
+ }
156
+
157
+ // ─── useQueue ─────────────────────────────────────────────────────────────────
158
+
159
+ /**
160
+ * Returns the current queue, updating when tracks are added/removed/changed.
161
+ */
162
+ function useQueue() {
163
+ const [queue, setQueue] = (0, _react.useState)([]);
164
+ const refresh = (0, _react.useCallback)(() => {
165
+ _GliphPlayer.default.getQueue().then(setQueue).catch(() => {});
166
+ }, []);
167
+ (0, _react.useEffect)(() => {
168
+ refresh();
169
+
170
+ // Re-fetch on any track change event
171
+ const unsub1 = _GliphPlayer.default.addEventListener(_types.Event.PlaybackActiveTrackChanged, refresh);
172
+ const unsub2 = _GliphPlayer.default.addEventListener(_types.Event.PlaybackQueueEnded, refresh);
173
+ return () => {
174
+ unsub1();
175
+ unsub2();
176
+ };
177
+ }, [refresh]);
178
+ return queue;
179
+ }
180
+
181
+ // ─── useRepeatMode ────────────────────────────────────────────────────────────
182
+
183
+ /**
184
+ * Returns the current repeat mode and a setter.
185
+ */
186
+ function useRepeatMode() {
187
+ const [mode, setMode] = (0, _react.useState)(null);
188
+ (0, _react.useEffect)(() => {
189
+ _GliphPlayer.default.getRepeatMode().then(setMode).catch(() => {});
190
+ const unsub = _GliphPlayer.default.addEventListener(_types.Event.PlaybackRepeatModeChanged, data => {
191
+ setMode(data.mode);
192
+ });
193
+ return () => unsub();
194
+ }, []);
195
+ const set = (0, _react.useCallback)(async newMode => {
196
+ await _GliphPlayer.default.setRepeatMode(newMode);
197
+ setMode(newMode);
198
+ }, []);
199
+ return [mode, set];
200
+ }
201
+
202
+ // ─── useVolume ────────────────────────────────────────────────────────────────
203
+
204
+ /**
205
+ * Returns the current volume (0–1) and a setter.
206
+ */
207
+ function useVolume() {
208
+ const [volume, setVolume] = (0, _react.useState)(1);
209
+ (0, _react.useEffect)(() => {
210
+ _GliphPlayer.default.getVolume().then(setVolume).catch(() => {});
211
+ }, []);
212
+ const set = (0, _react.useCallback)(async v => {
213
+ await _GliphPlayer.default.setVolume(v);
214
+ setVolume(v);
215
+ }, []);
216
+ return [volume, set];
217
+ }
218
+
219
+ // ─── useIsPlaying ─────────────────────────────────────────────────────────────
220
+
221
+ /**
222
+ * Convenience hook — returns { playing, bufferingDuringPlay }.
223
+ */
224
+ function useIsPlaying() {
225
+ const {
226
+ state
227
+ } = usePlaybackState();
228
+ return {
229
+ playing: state === _types.State.Playing || state === _types.State.Buffering,
230
+ bufferingDuringPlay: state === _types.State.Buffering
231
+ };
232
+ }
233
+ //# sourceMappingURL=hooks.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_react","require","_GliphPlayer","_interopRequireDefault","_types","e","__esModule","default","useTrackPlayerEvents","events","handler","handlerRef","useRef","current","useEffect","unsubs","map","event","GliphPlayer","addEventListener","data","type","forEach","u","usePlaybackState","state","setState","useState","State","None","mounted","getPlaybackState","then","s","catch","unsub","Event","PlaybackState","useProgress","updateInterval","progress","setProgress","position","duration","buffered","timer","update","getProgress","p","setInterval","PlaybackProgressUpdated","clearInterval","useActiveTrack","track","setTrack","undefined","getActiveTrack","t","PlaybackActiveTrackChanged","useQueue","queue","setQueue","refresh","useCallback","getQueue","unsub1","unsub2","PlaybackQueueEnded","useRepeatMode","mode","setMode","getRepeatMode","PlaybackRepeatModeChanged","set","newMode","setRepeatMode","useVolume","volume","setVolume","getVolume","v","useIsPlaying","playing","Playing","Buffering","bufferingDuringPlay"],"sourceRoot":"..\\..\\src","sources":["hooks.ts"],"mappings":"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","ignoreList":[]}
@@ -0,0 +1,166 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ Object.defineProperty(exports, "AndroidAudioContentType", {
7
+ enumerable: true,
8
+ get: function () {
9
+ return _types.AndroidAudioContentType;
10
+ }
11
+ });
12
+ Object.defineProperty(exports, "AndroidAudioUsage", {
13
+ enumerable: true,
14
+ get: function () {
15
+ return _types.AndroidAudioUsage;
16
+ }
17
+ });
18
+ Object.defineProperty(exports, "AppKilledPlaybackBehavior", {
19
+ enumerable: true,
20
+ get: function () {
21
+ return _types.AppKilledPlaybackBehavior;
22
+ }
23
+ });
24
+ Object.defineProperty(exports, "Capability", {
25
+ enumerable: true,
26
+ get: function () {
27
+ return _types.Capability;
28
+ }
29
+ });
30
+ Object.defineProperty(exports, "Event", {
31
+ enumerable: true,
32
+ get: function () {
33
+ return _types.Event;
34
+ }
35
+ });
36
+ Object.defineProperty(exports, "GliphPlayer", {
37
+ enumerable: true,
38
+ get: function () {
39
+ return _GliphPlayer.default;
40
+ }
41
+ });
42
+ Object.defineProperty(exports, "IOSCategory", {
43
+ enumerable: true,
44
+ get: function () {
45
+ return _types.IOSCategory;
46
+ }
47
+ });
48
+ Object.defineProperty(exports, "IOSCategoryMode", {
49
+ enumerable: true,
50
+ get: function () {
51
+ return _types.IOSCategoryMode;
52
+ }
53
+ });
54
+ Object.defineProperty(exports, "IOSCategoryOptions", {
55
+ enumerable: true,
56
+ get: function () {
57
+ return _types.IOSCategoryOptions;
58
+ }
59
+ });
60
+ Object.defineProperty(exports, "PitchAlgorithm", {
61
+ enumerable: true,
62
+ get: function () {
63
+ return _types.PitchAlgorithm;
64
+ }
65
+ });
66
+ Object.defineProperty(exports, "RatingType", {
67
+ enumerable: true,
68
+ get: function () {
69
+ return _types.RatingType;
70
+ }
71
+ });
72
+ Object.defineProperty(exports, "RepeatMode", {
73
+ enumerable: true,
74
+ get: function () {
75
+ return _types.RepeatMode;
76
+ }
77
+ });
78
+ Object.defineProperty(exports, "State", {
79
+ enumerable: true,
80
+ get: function () {
81
+ return _types.State;
82
+ }
83
+ });
84
+ Object.defineProperty(exports, "default", {
85
+ enumerable: true,
86
+ get: function () {
87
+ return _GliphPlayer.default;
88
+ }
89
+ });
90
+ Object.defineProperty(exports, "isBuffering", {
91
+ enumerable: true,
92
+ get: function () {
93
+ return _GliphPlayer.isBuffering;
94
+ }
95
+ });
96
+ Object.defineProperty(exports, "isPaused", {
97
+ enumerable: true,
98
+ get: function () {
99
+ return _GliphPlayer.isPaused;
100
+ }
101
+ });
102
+ Object.defineProperty(exports, "isPlaying", {
103
+ enumerable: true,
104
+ get: function () {
105
+ return _GliphPlayer.isPlaying;
106
+ }
107
+ });
108
+ Object.defineProperty(exports, "isStopped", {
109
+ enumerable: true,
110
+ get: function () {
111
+ return _GliphPlayer.isStopped;
112
+ }
113
+ });
114
+ Object.defineProperty(exports, "useActiveTrack", {
115
+ enumerable: true,
116
+ get: function () {
117
+ return _hooks.useActiveTrack;
118
+ }
119
+ });
120
+ Object.defineProperty(exports, "useIsPlaying", {
121
+ enumerable: true,
122
+ get: function () {
123
+ return _hooks.useIsPlaying;
124
+ }
125
+ });
126
+ Object.defineProperty(exports, "usePlaybackState", {
127
+ enumerable: true,
128
+ get: function () {
129
+ return _hooks.usePlaybackState;
130
+ }
131
+ });
132
+ Object.defineProperty(exports, "useProgress", {
133
+ enumerable: true,
134
+ get: function () {
135
+ return _hooks.useProgress;
136
+ }
137
+ });
138
+ Object.defineProperty(exports, "useQueue", {
139
+ enumerable: true,
140
+ get: function () {
141
+ return _hooks.useQueue;
142
+ }
143
+ });
144
+ Object.defineProperty(exports, "useRepeatMode", {
145
+ enumerable: true,
146
+ get: function () {
147
+ return _hooks.useRepeatMode;
148
+ }
149
+ });
150
+ Object.defineProperty(exports, "useTrackPlayerEvents", {
151
+ enumerable: true,
152
+ get: function () {
153
+ return _hooks.useTrackPlayerEvents;
154
+ }
155
+ });
156
+ Object.defineProperty(exports, "useVolume", {
157
+ enumerable: true,
158
+ get: function () {
159
+ return _hooks.useVolume;
160
+ }
161
+ });
162
+ var _GliphPlayer = _interopRequireWildcard(require("./GliphPlayer"));
163
+ var _types = require("./types");
164
+ var _hooks = require("./hooks");
165
+ function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function (e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, default: e }; if (null === e || "object" != typeof e && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (const t in e) "default" !== t && {}.hasOwnProperty.call(e, t) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, t)) && (i.get || i.set) ? o(f, t, i) : f[t] = e[t]); return f; })(e, t); }
166
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_GliphPlayer","_interopRequireWildcard","require","_types","_hooks","e","t","WeakMap","r","n","__esModule","o","i","f","__proto__","default","has","get","set","hasOwnProperty","call","Object","defineProperty","getOwnPropertyDescriptor"],"sourceRoot":"..\\..\\src","sources":["index.ts"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAMA,IAAAA,YAAA,GAAAC,uBAAA,CAAAC,OAAA;AA6BA,IAAAC,MAAA,GAAAD,OAAA;AAgBA,IAAAE,MAAA,GAAAF,OAAA;AASiB,SAAAD,wBAAAI,CAAA,EAAAC,CAAA,6BAAAC,OAAA,MAAAC,CAAA,OAAAD,OAAA,IAAAE,CAAA,OAAAF,OAAA,YAAAN,uBAAA,YAAAA,CAAAI,CAAA,EAAAC,CAAA,SAAAA,CAAA,IAAAD,CAAA,IAAAA,CAAA,CAAAK,UAAA,SAAAL,CAAA,MAAAM,CAAA,EAAAC,CAAA,EAAAC,CAAA,KAAAC,SAAA,QAAAC,OAAA,EAAAV,CAAA,iBAAAA,CAAA,uBAAAA,CAAA,yBAAAA,CAAA,SAAAQ,CAAA,MAAAF,CAAA,GAAAL,CAAA,GAAAG,CAAA,GAAAD,CAAA,QAAAG,CAAA,CAAAK,GAAA,CAAAX,CAAA,UAAAM,CAAA,CAAAM,GAAA,CAAAZ,CAAA,GAAAM,CAAA,CAAAO,GAAA,CAAAb,CAAA,EAAAQ,CAAA,gBAAAP,CAAA,IAAAD,CAAA,gBAAAC,CAAA,OAAAa,cAAA,CAAAC,IAAA,CAAAf,CAAA,EAAAC,CAAA,OAAAM,CAAA,IAAAD,CAAA,GAAAU,MAAA,CAAAC,cAAA,KAAAD,MAAA,CAAAE,wBAAA,CAAAlB,CAAA,EAAAC,CAAA,OAAAM,CAAA,CAAAK,GAAA,IAAAL,CAAA,CAAAM,GAAA,IAAAP,CAAA,CAAAE,CAAA,EAAAP,CAAA,EAAAM,CAAA,IAAAC,CAAA,CAAAP,CAAA,IAAAD,CAAA,CAAAC,CAAA,WAAAO,CAAA,KAAAR,CAAA,EAAAC,CAAA","ignoreList":[]}
@@ -0,0 +1 @@
1
+ {"type":"commonjs"}
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.default = void 0;
7
+ var _reactNative = require("react-native");
8
+ /**
9
+ * NativeGliphPlayer.ts
10
+ *
11
+ * TurboModule spec for the New React Native Architecture (Codegen).
12
+ * This file is parsed by Codegen to generate C++/Java/ObjC bridge code.
13
+ * All types must be Codegen-compatible (no unions of complex types, etc.)
14
+ */
15
+ // ─── Codegen-compatible track object ────────────────────────────────────────
16
+ // ─── Player options ──────────────────────────────────────────────────────────
17
+ // ─── TurboModule spec ────────────────────────────────────────────────────────
18
+ var _default = exports.default = _reactNative.TurboModuleRegistry.get('RNGliphPlayer');
19
+ //# sourceMappingURL=NativeGliphPlayer.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","get"],"sourceRoot":"..\\..\\..\\src","sources":["specs/NativeGliphPlayer.ts"],"mappings":";;;;;;AASA,IAAAA,YAAA,GAAAC,OAAA;AATA;AACA;AACA;AACA;AACA;AACA;AACA;AAKA;AAmBA;AAiBA;AAAA,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAyDeC,gCAAmB,CAACC,GAAG,CAAO,eAAe,CAAC","ignoreList":[]}
@@ -0,0 +1,175 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.State = exports.RepeatMode = exports.RatingType = exports.PitchAlgorithm = exports.IOSCategoryOptions = exports.IOSCategoryMode = exports.IOSCategory = exports.Event = exports.Capability = exports.AppKilledPlaybackBehavior = exports.AndroidAudioUsage = exports.AndroidAudioContentType = void 0;
7
+ /**
8
+ * types.ts — Public TypeScript types for react-native-gliph-player
9
+ */
10
+ // ─── Track ───────────────────────────────────────────────────────────────────
11
+ // ─── Enums ───────────────────────────────────────────────────────────────────
12
+ let State = exports.State = /*#__PURE__*/function (State) {
13
+ /** No player setup yet */
14
+ State["None"] = "none";
15
+ /** Player is ready but not playing */
16
+ State["Ready"] = "ready";
17
+ /** Audio is playing */
18
+ State["Playing"] = "playing";
19
+ /** Audio is paused */
20
+ State["Paused"] = "paused";
21
+ /** Player is stopped */
22
+ State["Stopped"] = "stopped";
23
+ /** Buffering / loading */
24
+ State["Buffering"] = "buffering";
25
+ /** Loading initial data */
26
+ State["Loading"] = "loading";
27
+ /** An error occurred */
28
+ State["Error"] = "error";
29
+ /** End of queue reached */
30
+ State["Ended"] = "ended";
31
+ return State;
32
+ }({});
33
+ let Event = exports.Event = /*#__PURE__*/function (Event) {
34
+ /** Playback state changed */
35
+ Event["PlaybackState"] = "playback-state";
36
+ /** Playback error */
37
+ Event["PlaybackError"] = "playback-error";
38
+ /** Active track changed */
39
+ Event["PlaybackActiveTrackChanged"] = "playback-active-track-changed";
40
+ /** Queue ended */
41
+ Event["PlaybackQueueEnded"] = "playback-queue-ended";
42
+ /** Track ended */
43
+ Event["PlaybackTrackEnded"] = "playback-track-ended";
44
+ /** Playback progress updated */
45
+ Event["PlaybackProgressUpdated"] = "playback-progress-updated";
46
+ /** Metadata received (e.g. from stream) */
47
+ Event["PlaybackMetadataReceived"] = "playback-metadata-received";
48
+ /** Repeat mode changed */
49
+ Event["PlaybackRepeatModeChanged"] = "playback-repeat-mode-changed";
50
+ // Remote control events (from notification / lock screen / headphones)
51
+ Event["RemotePlay"] = "remote-play";
52
+ Event["RemotePause"] = "remote-pause";
53
+ Event["RemoteStop"] = "remote-stop";
54
+ Event["RemoteSkip"] = "remote-skip";
55
+ Event["RemoteNext"] = "remote-next";
56
+ Event["RemotePrevious"] = "remote-previous";
57
+ Event["RemoteJumpForward"] = "remote-jump-forward";
58
+ Event["RemoteJumpBackward"] = "remote-jump-backward";
59
+ Event["RemoteSeek"] = "remote-seek";
60
+ Event["RemoteSetRating"] = "remote-set-rating";
61
+ Event["RemoteDuck"] = "remote-duck";
62
+ Event["RemoteLike"] = "remote-like";
63
+ Event["RemoteDislike"] = "remote-dislike";
64
+ Event["RemoteBookmark"] = "remote-bookmark";
65
+ return Event;
66
+ }({});
67
+ let RepeatMode = exports.RepeatMode = /*#__PURE__*/function (RepeatMode) {
68
+ /** No repeat */
69
+ RepeatMode[RepeatMode["Off"] = 0] = "Off";
70
+ /** Repeat current track */
71
+ RepeatMode[RepeatMode["Track"] = 1] = "Track";
72
+ /** Repeat entire queue */
73
+ RepeatMode[RepeatMode["Queue"] = 2] = "Queue";
74
+ return RepeatMode;
75
+ }({});
76
+ let Capability = exports.Capability = /*#__PURE__*/function (Capability) {
77
+ Capability["Play"] = "play";
78
+ Capability["Pause"] = "pause";
79
+ Capability["Stop"] = "stop";
80
+ Capability["SeekTo"] = "seek-to";
81
+ Capability["Skip"] = "skip";
82
+ Capability["SkipToNext"] = "skip-to-next";
83
+ Capability["SkipToPrevious"] = "skip-to-previous";
84
+ Capability["JumpForward"] = "jump-forward";
85
+ Capability["JumpBackward"] = "jump-backward";
86
+ Capability["SetRating"] = "set-rating";
87
+ Capability["Like"] = "like";
88
+ Capability["Dislike"] = "dislike";
89
+ Capability["Bookmark"] = "bookmark";
90
+ return Capability;
91
+ }({});
92
+ let RatingType = exports.RatingType = /*#__PURE__*/function (RatingType) {
93
+ RatingType["Heart"] = "heart";
94
+ RatingType["ThumbsUpDown"] = "thumbs-up-down";
95
+ RatingType["ThreeStars"] = "3-stars";
96
+ RatingType["FourStars"] = "4-stars";
97
+ RatingType["FiveStars"] = "5-stars";
98
+ RatingType["Percentage"] = "percentage";
99
+ return RatingType;
100
+ }({});
101
+ let PitchAlgorithm = exports.PitchAlgorithm = /*#__PURE__*/function (PitchAlgorithm) {
102
+ /** Best quality, higher CPU */
103
+ PitchAlgorithm[PitchAlgorithm["Quality"] = 0] = "Quality";
104
+ /** Balanced */
105
+ PitchAlgorithm[PitchAlgorithm["Consistency"] = 1] = "Consistency";
106
+ /** Lowest CPU */
107
+ PitchAlgorithm[PitchAlgorithm["Varispeed"] = 2] = "Varispeed";
108
+ return PitchAlgorithm;
109
+ }({});
110
+ let IOSCategory = exports.IOSCategory = /*#__PURE__*/function (IOSCategory) {
111
+ IOSCategory["Playback"] = "playback";
112
+ IOSCategory["PlayAndRecord"] = "playAndRecord";
113
+ IOSCategory["MultiRoute"] = "multiRoute";
114
+ IOSCategory["Ambient"] = "ambient";
115
+ IOSCategory["SoloAmbient"] = "soloAmbient";
116
+ IOSCategory["Record"] = "record";
117
+ return IOSCategory;
118
+ }({});
119
+ let IOSCategoryMode = exports.IOSCategoryMode = /*#__PURE__*/function (IOSCategoryMode) {
120
+ IOSCategoryMode["Default"] = "default";
121
+ IOSCategoryMode["GameChat"] = "gameChat";
122
+ IOSCategoryMode["Measurement"] = "measurement";
123
+ IOSCategoryMode["MoviePlayback"] = "moviePlayback";
124
+ IOSCategoryMode["SpokenAudio"] = "spokenAudio";
125
+ IOSCategoryMode["VideoChat"] = "videoChat";
126
+ IOSCategoryMode["VideoRecording"] = "videoRecording";
127
+ IOSCategoryMode["VoiceChat"] = "voiceChat";
128
+ IOSCategoryMode["VoicePrompt"] = "voicePrompt";
129
+ return IOSCategoryMode;
130
+ }({});
131
+ let IOSCategoryOptions = exports.IOSCategoryOptions = /*#__PURE__*/function (IOSCategoryOptions) {
132
+ IOSCategoryOptions["MixWithOthers"] = "mixWithOthers";
133
+ IOSCategoryOptions["DuckOthers"] = "duckOthers";
134
+ IOSCategoryOptions["InterruptSpokenAudioAndMixWithOthers"] = "interruptSpokenAudioAndMixWithOthers";
135
+ IOSCategoryOptions["AllowBluetooth"] = "allowBluetooth";
136
+ IOSCategoryOptions["AllowBluetoothA2DP"] = "allowBluetoothA2DP";
137
+ IOSCategoryOptions["AllowAirPlay"] = "allowAirPlay";
138
+ IOSCategoryOptions["DefaultToSpeaker"] = "defaultToSpeaker";
139
+ return IOSCategoryOptions;
140
+ }({});
141
+ let AndroidAudioContentType = exports.AndroidAudioContentType = /*#__PURE__*/function (AndroidAudioContentType) {
142
+ AndroidAudioContentType[AndroidAudioContentType["Unknown"] = 0] = "Unknown";
143
+ AndroidAudioContentType[AndroidAudioContentType["Speech"] = 1] = "Speech";
144
+ AndroidAudioContentType[AndroidAudioContentType["Music"] = 2] = "Music";
145
+ AndroidAudioContentType[AndroidAudioContentType["Movie"] = 3] = "Movie";
146
+ AndroidAudioContentType[AndroidAudioContentType["Sonification"] = 4] = "Sonification";
147
+ return AndroidAudioContentType;
148
+ }({});
149
+ let AndroidAudioUsage = exports.AndroidAudioUsage = /*#__PURE__*/function (AndroidAudioUsage) {
150
+ AndroidAudioUsage[AndroidAudioUsage["Unknown"] = 0] = "Unknown";
151
+ AndroidAudioUsage[AndroidAudioUsage["Media"] = 1] = "Media";
152
+ AndroidAudioUsage[AndroidAudioUsage["VoiceCommunication"] = 2] = "VoiceCommunication";
153
+ AndroidAudioUsage[AndroidAudioUsage["VoiceCommunicationSignalling"] = 3] = "VoiceCommunicationSignalling";
154
+ AndroidAudioUsage[AndroidAudioUsage["Alarm"] = 4] = "Alarm";
155
+ AndroidAudioUsage[AndroidAudioUsage["Notification"] = 5] = "Notification";
156
+ AndroidAudioUsage[AndroidAudioUsage["NotificationRingtone"] = 6] = "NotificationRingtone";
157
+ AndroidAudioUsage[AndroidAudioUsage["NotificationEvent"] = 10] = "NotificationEvent";
158
+ AndroidAudioUsage[AndroidAudioUsage["AssistanceAccessibility"] = 11] = "AssistanceAccessibility";
159
+ AndroidAudioUsage[AndroidAudioUsage["AssistanceNavigationGuidance"] = 12] = "AssistanceNavigationGuidance";
160
+ AndroidAudioUsage[AndroidAudioUsage["AssistanceSonification"] = 13] = "AssistanceSonification";
161
+ AndroidAudioUsage[AndroidAudioUsage["Game"] = 14] = "Game";
162
+ return AndroidAudioUsage;
163
+ }({}); // ─── Options ─────────────────────────────────────────────────────────────────
164
+ let AppKilledPlaybackBehavior = exports.AppKilledPlaybackBehavior = /*#__PURE__*/function (AppKilledPlaybackBehavior) {
165
+ /** Stop playback when app is killed */
166
+ AppKilledPlaybackBehavior["StopPlaybackAndRemoveNotification"] = "StopPlaybackAndRemoveNotification";
167
+ /** Continue playback in background service */
168
+ AppKilledPlaybackBehavior["ContinuePlayback"] = "ContinuePlayback";
169
+ /** Pause playback but keep notification */
170
+ AppKilledPlaybackBehavior["PausePlayback"] = "PausePlayback";
171
+ return AppKilledPlaybackBehavior;
172
+ }({}); // ─── Playback state / progress ───────────────────────────────────────────────
173
+ // ─── Event payloads ──────────────────────────────────────────────────────────
174
+ // ─── Event map ───────────────────────────────────────────────────────────────
175
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"names":["State","exports","Event","RepeatMode","Capability","RatingType","PitchAlgorithm","IOSCategory","IOSCategoryMode","IOSCategoryOptions","AndroidAudioContentType","AndroidAudioUsage","AppKilledPlaybackBehavior"],"sourceRoot":"..\\..\\src","sources":["types.ts"],"mappings":"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","ignoreList":[]}