react-native-tpstreams 0.1.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.
- package/LICENSE +20 -0
- package/README.md +49 -0
- package/Tpstreams.podspec +42 -0
- package/android/build.gradle +122 -0
- package/android/generated/java/com/tpstreams/NativeTpstreamsSpec.java +37 -0
- package/android/generated/jni/CMakeLists.txt +36 -0
- package/android/generated/jni/RNTpstreamsSpec-generated.cpp +32 -0
- package/android/generated/jni/RNTpstreamsSpec.h +31 -0
- package/android/generated/jni/react/renderer/components/RNTpstreamsSpec/RNTpstreamsSpecJSI-generated.cpp +28 -0
- package/android/generated/jni/react/renderer/components/RNTpstreamsSpec/RNTpstreamsSpecJSI.h +71 -0
- package/android/gradle.properties +5 -0
- package/android/src/main/AndroidManifest.xml +3 -0
- package/android/src/main/AndroidManifestNew.xml +2 -0
- package/android/src/main/java/com/tpstreams/FragmentModule.kt +183 -0
- package/android/src/main/java/com/tpstreams/PlayerFragment.kt +91 -0
- package/android/src/main/java/com/tpstreams/TpStreamsPlayerView.kt +45 -0
- package/android/src/main/java/com/tpstreams/TpStreamsPlayerViewManager.kt +29 -0
- package/android/src/main/java/com/tpstreams/TpstreamsModule.kt +25 -0
- package/android/src/main/java/com/tpstreams/TpstreamsPackage.kt +16 -0
- package/android/src/main/res/layout/fragment_player.xml +29 -0
- package/ios/Tpstreams.h +6 -0
- package/ios/Tpstreams.mm +18 -0
- package/ios/generated/RNTpstreamsSpec/RNTpstreamsSpec-generated.mm +39 -0
- package/ios/generated/RNTpstreamsSpec/RNTpstreamsSpec.h +63 -0
- package/ios/generated/RNTpstreamsSpecJSI-generated.cpp +28 -0
- package/ios/generated/RNTpstreamsSpecJSI.h +71 -0
- package/lib/commonjs/NativeTpstreams.js +9 -0
- package/lib/commonjs/NativeTpstreams.js.map +1 -0
- package/lib/commonjs/index.js +10 -0
- package/lib/commonjs/index.js.map +1 -0
- package/lib/commonjs/types.js +2 -0
- package/lib/commonjs/types.js.map +1 -0
- package/lib/module/NativeTpstreams.js +5 -0
- package/lib/module/NativeTpstreams.js.map +1 -0
- package/lib/module/index.js +6 -0
- package/lib/module/index.js.map +1 -0
- package/lib/module/types.js +2 -0
- package/lib/module/types.js.map +1 -0
- package/lib/typescript/commonjs/package.json +1 -0
- package/lib/typescript/commonjs/src/NativeTpstreams.d.ts +7 -0
- package/lib/typescript/commonjs/src/NativeTpstreams.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/index.d.ts +5 -0
- package/lib/typescript/commonjs/src/index.d.ts.map +1 -0
- package/lib/typescript/commonjs/src/types.d.ts +6 -0
- package/lib/typescript/commonjs/src/types.d.ts.map +1 -0
- package/lib/typescript/module/package.json +1 -0
- package/lib/typescript/module/src/NativeTpstreams.d.ts +7 -0
- package/lib/typescript/module/src/NativeTpstreams.d.ts.map +1 -0
- package/lib/typescript/module/src/index.d.ts +5 -0
- package/lib/typescript/module/src/index.d.ts.map +1 -0
- package/lib/typescript/module/src/types.d.ts +6 -0
- package/lib/typescript/module/src/types.d.ts.map +1 -0
- package/package.json +203 -0
- package/react-native.config.js +12 -0
- package/src/NativeTpstreams.ts +8 -0
- package/src/index.tsx +9 -0
- package/src/types.ts +5 -0
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
package com.tpstreams
|
|
2
|
+
|
|
3
|
+
import android.os.Bundle
|
|
4
|
+
import android.util.Log
|
|
5
|
+
import android.view.LayoutInflater
|
|
6
|
+
import android.view.View
|
|
7
|
+
import android.view.ViewGroup
|
|
8
|
+
import android.widget.Toast
|
|
9
|
+
import androidx.fragment.app.Fragment
|
|
10
|
+
import com.tpstream.player.TPStreamPlayerListener
|
|
11
|
+
import com.tpstream.player.TpInitParams
|
|
12
|
+
import com.tpstream.player.TpStreamPlayer
|
|
13
|
+
import com.tpstream.player.ui.InitializationListener
|
|
14
|
+
import com.tpstream.player.ui.TPStreamPlayerView
|
|
15
|
+
import com.tpstream.player.ui.TpStreamPlayerFragment
|
|
16
|
+
|
|
17
|
+
class PlayerFragment : Fragment() {
|
|
18
|
+
|
|
19
|
+
lateinit var player: TpStreamPlayer
|
|
20
|
+
lateinit var playerView: TPStreamPlayerView
|
|
21
|
+
lateinit var playerFragment: TpStreamPlayerFragment
|
|
22
|
+
private var videoId :String = ""
|
|
23
|
+
private var accessToken :String = ""
|
|
24
|
+
|
|
25
|
+
override fun onCreate(savedInstanceState: Bundle?) {
|
|
26
|
+
super.onCreate(savedInstanceState)
|
|
27
|
+
val bundle = arguments
|
|
28
|
+
if (bundle != null) {
|
|
29
|
+
videoId = bundle.getString("VIDEO_ID") ?: ""
|
|
30
|
+
accessToken = bundle.getString("ACCESS_TOKEN") ?: ""
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
override fun onCreateView(
|
|
35
|
+
inflater: LayoutInflater, container: ViewGroup?,
|
|
36
|
+
savedInstanceState: Bundle?
|
|
37
|
+
): View? {
|
|
38
|
+
return inflater.inflate(R.layout.fragment_player, container, false)
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
|
42
|
+
super.onViewCreated(view, savedInstanceState)
|
|
43
|
+
playerFragment = childFragmentManager.findFragmentById(R.id.tpstream_player_fragment) as TpStreamPlayerFragment
|
|
44
|
+
playerFragment.setOnInitializationListener(object: InitializationListener {
|
|
45
|
+
|
|
46
|
+
override fun onInitializationSuccess(player: TpStreamPlayer) {
|
|
47
|
+
this@PlayerFragment.player = player
|
|
48
|
+
playerView = playerFragment.tpStreamPlayerView
|
|
49
|
+
loadPLayer()
|
|
50
|
+
addPlayerListener()
|
|
51
|
+
}
|
|
52
|
+
})
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
fun loadPLayer() {
|
|
56
|
+
val parameters = TpInitParams.Builder()
|
|
57
|
+
.setVideoId(videoId)
|
|
58
|
+
.setAccessToken(accessToken)
|
|
59
|
+
.enableDownloadSupport(true)
|
|
60
|
+
.setAutoPlay(true)
|
|
61
|
+
.build()
|
|
62
|
+
player.load(parameters)
|
|
63
|
+
}
|
|
64
|
+
|
|
65
|
+
private fun addPlayerListener(){
|
|
66
|
+
player.setListener( object : TPStreamPlayerListener {
|
|
67
|
+
override fun onPlaybackStateChanged(playbackState: Int) {
|
|
68
|
+
Log.d("TAG", "onPlaybackStateChanged: $playbackState")
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
override fun onAccessTokenExpired(videoId: String, callback: (String) -> Unit) {
|
|
72
|
+
callback(accessToken)
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
override fun onMarkerCallback(timesInSeconds: Long) {
|
|
76
|
+
Toast.makeText(requireContext(),"Time $timesInSeconds", Toast.LENGTH_SHORT).show()
|
|
77
|
+
}
|
|
78
|
+
})
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
override fun onResume() {
|
|
82
|
+
super.onResume()
|
|
83
|
+
Log.d("ReactNativeJS", "onResume: ")
|
|
84
|
+
}
|
|
85
|
+
|
|
86
|
+
override fun onDestroy() {
|
|
87
|
+
super.onDestroy()
|
|
88
|
+
Log.d("ReactNativeJS", "onDestroy: ")
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
package com.tpstreams
|
|
2
|
+
|
|
3
|
+
import android.content.Context
|
|
4
|
+
import android.util.AttributeSet
|
|
5
|
+
import android.widget.FrameLayout
|
|
6
|
+
import androidx.fragment.app.FragmentActivity
|
|
7
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
8
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
9
|
+
|
|
10
|
+
class TpStreamsPlayerView @JvmOverloads constructor(
|
|
11
|
+
context: Context,
|
|
12
|
+
attrs: AttributeSet? = null
|
|
13
|
+
) : FrameLayout(context, attrs) {
|
|
14
|
+
|
|
15
|
+
private var videoId: String? = null
|
|
16
|
+
private var accessToken: String? = null
|
|
17
|
+
private var fragmentModule: FragmentModule? = null
|
|
18
|
+
|
|
19
|
+
init {
|
|
20
|
+
if (context is ThemedReactContext) {
|
|
21
|
+
val reactContext = context.reactApplicationContext
|
|
22
|
+
val activity = context.currentActivity as? FragmentActivity
|
|
23
|
+
|
|
24
|
+
if (activity != null) {
|
|
25
|
+
fragmentModule = FragmentModule(reactContext)
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
fun setVideoId(id: String) {
|
|
31
|
+
videoId = id
|
|
32
|
+
updateFragment()
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
fun setAccessToken(token: String) {
|
|
36
|
+
accessToken = token
|
|
37
|
+
updateFragment()
|
|
38
|
+
}
|
|
39
|
+
|
|
40
|
+
private fun updateFragment() {
|
|
41
|
+
if (!videoId.isNullOrEmpty() && !accessToken.isNullOrEmpty()) {
|
|
42
|
+
fragmentModule?.showCustomFragment(videoId!!, accessToken!!)
|
|
43
|
+
}
|
|
44
|
+
}
|
|
45
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
package com.tpstreams
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.uimanager.SimpleViewManager
|
|
4
|
+
import com.facebook.react.uimanager.ThemedReactContext
|
|
5
|
+
import com.facebook.react.uimanager.annotations.ReactProp
|
|
6
|
+
|
|
7
|
+
class TpStreamsPlayerViewManager : SimpleViewManager<TpStreamsPlayerView>() {
|
|
8
|
+
|
|
9
|
+
override fun getName() = "TpStreamsPlayerView"
|
|
10
|
+
|
|
11
|
+
override fun createViewInstance(reactContext : ThemedReactContext) :TpStreamsPlayerView {
|
|
12
|
+
return TpStreamsPlayerView(reactContext)
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
@ReactProp(name = "videoId")
|
|
16
|
+
fun setVideoId(view: TpStreamsPlayerView, videoId: String?) {
|
|
17
|
+
videoId?.let { view.setVideoId(it) }
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
@ReactProp(name = "accessToken")
|
|
21
|
+
fun setAccessToken(view: TpStreamsPlayerView, accessToken: String?) {
|
|
22
|
+
accessToken?.let { view.setAccessToken(it) }
|
|
23
|
+
}
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
package com.tpstreams
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
4
|
+
import com.facebook.react.module.annotations.ReactModule
|
|
5
|
+
import com.facebook.react.bridge.ReactContextBaseJavaModule
|
|
6
|
+
import com.facebook.react.bridge.ReactMethod
|
|
7
|
+
import com.tpstream.player.TPStreamsSDK
|
|
8
|
+
|
|
9
|
+
@ReactModule(name = TpstreamsModule.NAME)
|
|
10
|
+
class TpstreamsModule(reactContext: ReactApplicationContext) :
|
|
11
|
+
ReactContextBaseJavaModule(reactContext) {
|
|
12
|
+
|
|
13
|
+
override fun getName(): String {
|
|
14
|
+
return NAME
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
@ReactMethod
|
|
18
|
+
fun initializeTPSPlayer(orgId: String) {
|
|
19
|
+
TPStreamsSDK.initialize(TPStreamsSDK.Provider.TPStreams, orgId)
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
companion object {
|
|
23
|
+
const val NAME = "Tpstreams"
|
|
24
|
+
}
|
|
25
|
+
}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
package com.tpstreams
|
|
2
|
+
|
|
3
|
+
import com.facebook.react.ReactPackage
|
|
4
|
+
import com.facebook.react.bridge.NativeModule
|
|
5
|
+
import com.facebook.react.bridge.ReactApplicationContext
|
|
6
|
+
import com.facebook.react.uimanager.ViewManager
|
|
7
|
+
|
|
8
|
+
class TpstreamsPackage : ReactPackage {
|
|
9
|
+
override fun createNativeModules(reactContext: ReactApplicationContext): List<NativeModule> {
|
|
10
|
+
return listOf(TpstreamsModule(reactContext))
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
override fun createViewManagers(reactContext: ReactApplicationContext): List<ViewManager<*, *>> {
|
|
14
|
+
return listOf(TpStreamsPlayerViewManager())
|
|
15
|
+
}
|
|
16
|
+
}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
|
2
|
+
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
|
3
|
+
xmlns:tools="http://schemas.android.com/tools"
|
|
4
|
+
android:layout_width="match_parent"
|
|
5
|
+
android:layout_height="match_parent"
|
|
6
|
+
android:layout_marginTop="64dp"
|
|
7
|
+
xmlns:app="http://schemas.android.com/apk/res-auto"
|
|
8
|
+
tools:context=".PlayerFragment">
|
|
9
|
+
|
|
10
|
+
<androidx.constraintlayout.widget.ConstraintLayout
|
|
11
|
+
android:layout_width="match_parent"
|
|
12
|
+
android:layout_height="wrap_content">
|
|
13
|
+
|
|
14
|
+
<androidx.fragment.app.FragmentContainerView
|
|
15
|
+
android:id="@+id/tpstream_player_fragment"
|
|
16
|
+
android:name="com.tpstream.player.ui.TpStreamPlayerFragment"
|
|
17
|
+
android:layout_width="match_parent"
|
|
18
|
+
android:layout_height="0dp"
|
|
19
|
+
android:keepScreenOn="true"
|
|
20
|
+
app:layout_constraintDimensionRatio="H,16:9"
|
|
21
|
+
app:layout_constraintBottom_toBottomOf="parent"
|
|
22
|
+
app:layout_constraintEnd_toEndOf="parent"
|
|
23
|
+
app:layout_constraintStart_toStartOf="parent"
|
|
24
|
+
app:layout_constraintTop_toTopOf="parent"
|
|
25
|
+
tools:layout="@layout/fragment_tp_stream_player" />
|
|
26
|
+
|
|
27
|
+
</androidx.constraintlayout.widget.ConstraintLayout>
|
|
28
|
+
|
|
29
|
+
</FrameLayout>
|
package/ios/Tpstreams.h
ADDED
package/ios/Tpstreams.mm
ADDED
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
#import "Tpstreams.h"
|
|
2
|
+
|
|
3
|
+
@implementation Tpstreams
|
|
4
|
+
RCT_EXPORT_MODULE()
|
|
5
|
+
|
|
6
|
+
- (NSNumber *)multiply:(double)a b:(double)b {
|
|
7
|
+
NSNumber *result = @(a * b);
|
|
8
|
+
|
|
9
|
+
return result;
|
|
10
|
+
}
|
|
11
|
+
|
|
12
|
+
- (std::shared_ptr<facebook::react::TurboModule>)getTurboModule:
|
|
13
|
+
(const facebook::react::ObjCTurboModule::InitParams &)params
|
|
14
|
+
{
|
|
15
|
+
return std::make_shared<facebook::react::NativeTpstreamsSpecJSI>(params);
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
@end
|
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleObjCpp
|
|
8
|
+
*
|
|
9
|
+
* We create an umbrella header (and corresponding implementation) here since
|
|
10
|
+
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
|
|
11
|
+
* must have a single output. More files => more genrule()s => slower builds.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#import "RNTpstreamsSpec.h"
|
|
15
|
+
|
|
16
|
+
|
|
17
|
+
@implementation NativeTpstreamsSpecBase
|
|
18
|
+
|
|
19
|
+
|
|
20
|
+
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper
|
|
21
|
+
{
|
|
22
|
+
_eventEmitterCallback = std::move(eventEmitterCallbackWrapper->_eventEmitterCallback);
|
|
23
|
+
}
|
|
24
|
+
@end
|
|
25
|
+
|
|
26
|
+
|
|
27
|
+
namespace facebook::react {
|
|
28
|
+
|
|
29
|
+
static facebook::jsi::Value __hostFunction_NativeTpstreamsSpecJSI_multiply(facebook::jsi::Runtime& rt, TurboModule &turboModule, const facebook::jsi::Value* args, size_t count) {
|
|
30
|
+
return static_cast<ObjCTurboModule&>(turboModule).invokeObjCMethod(rt, NumberKind, "multiply", @selector(multiply:b:), args, count);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
NativeTpstreamsSpecJSI::NativeTpstreamsSpecJSI(const ObjCTurboModule::InitParams ¶ms)
|
|
34
|
+
: ObjCTurboModule(params) {
|
|
35
|
+
|
|
36
|
+
methodMap_["multiply"] = MethodMetadata {2, __hostFunction_NativeTpstreamsSpecJSI_multiply};
|
|
37
|
+
|
|
38
|
+
}
|
|
39
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleObjCpp
|
|
8
|
+
*
|
|
9
|
+
* We create an umbrella header (and corresponding implementation) here since
|
|
10
|
+
* Cxx compilation in BUCK has a limitation: source-code producing genrule()s
|
|
11
|
+
* must have a single output. More files => more genrule()s => slower builds.
|
|
12
|
+
*/
|
|
13
|
+
|
|
14
|
+
#ifndef __cplusplus
|
|
15
|
+
#error This file must be compiled as Obj-C++. If you are importing it, you must change your file extension to .mm.
|
|
16
|
+
#endif
|
|
17
|
+
|
|
18
|
+
// Avoid multiple includes of RNTpstreamsSpec symbols
|
|
19
|
+
#ifndef RNTpstreamsSpec_H
|
|
20
|
+
#define RNTpstreamsSpec_H
|
|
21
|
+
|
|
22
|
+
#import <Foundation/Foundation.h>
|
|
23
|
+
#import <RCTRequired/RCTRequired.h>
|
|
24
|
+
#import <RCTTypeSafety/RCTConvertHelpers.h>
|
|
25
|
+
#import <RCTTypeSafety/RCTTypedModuleConstants.h>
|
|
26
|
+
#import <React/RCTBridgeModule.h>
|
|
27
|
+
#import <React/RCTCxxConvert.h>
|
|
28
|
+
#import <React/RCTManagedPointer.h>
|
|
29
|
+
#import <ReactCommon/RCTTurboModule.h>
|
|
30
|
+
#import <optional>
|
|
31
|
+
#import <vector>
|
|
32
|
+
|
|
33
|
+
|
|
34
|
+
NS_ASSUME_NONNULL_BEGIN
|
|
35
|
+
|
|
36
|
+
@protocol NativeTpstreamsSpec <RCTBridgeModule, RCTTurboModule>
|
|
37
|
+
|
|
38
|
+
- (NSNumber *)multiply:(double)a
|
|
39
|
+
b:(double)b;
|
|
40
|
+
|
|
41
|
+
@end
|
|
42
|
+
|
|
43
|
+
@interface NativeTpstreamsSpecBase : NSObject {
|
|
44
|
+
@protected
|
|
45
|
+
facebook::react::EventEmitterCallback _eventEmitterCallback;
|
|
46
|
+
}
|
|
47
|
+
- (void)setEventEmitterCallback:(EventEmitterCallbackWrapper *)eventEmitterCallbackWrapper;
|
|
48
|
+
|
|
49
|
+
|
|
50
|
+
@end
|
|
51
|
+
|
|
52
|
+
namespace facebook::react {
|
|
53
|
+
/**
|
|
54
|
+
* ObjC++ class for module 'NativeTpstreams'
|
|
55
|
+
*/
|
|
56
|
+
class JSI_EXPORT NativeTpstreamsSpecJSI : public ObjCTurboModule {
|
|
57
|
+
public:
|
|
58
|
+
NativeTpstreamsSpecJSI(const ObjCTurboModule::InitParams ¶ms);
|
|
59
|
+
};
|
|
60
|
+
} // namespace facebook::react
|
|
61
|
+
|
|
62
|
+
NS_ASSUME_NONNULL_END
|
|
63
|
+
#endif // RNTpstreamsSpec_H
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleCpp.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#include "RNTpstreamsSpecJSI.h"
|
|
11
|
+
|
|
12
|
+
namespace facebook::react {
|
|
13
|
+
|
|
14
|
+
static jsi::Value __hostFunction_NativeTpstreamsCxxSpecJSI_multiply(jsi::Runtime &rt, TurboModule &turboModule, const jsi::Value* args, size_t count) {
|
|
15
|
+
return static_cast<NativeTpstreamsCxxSpecJSI *>(&turboModule)->multiply(
|
|
16
|
+
rt,
|
|
17
|
+
count <= 0 ? throw jsi::JSError(rt, "Expected argument in position 0 to be passed") : args[0].asNumber(),
|
|
18
|
+
count <= 1 ? throw jsi::JSError(rt, "Expected argument in position 1 to be passed") : args[1].asNumber()
|
|
19
|
+
);
|
|
20
|
+
}
|
|
21
|
+
|
|
22
|
+
NativeTpstreamsCxxSpecJSI::NativeTpstreamsCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker)
|
|
23
|
+
: TurboModule("Tpstreams", jsInvoker) {
|
|
24
|
+
methodMap_["multiply"] = MethodMetadata {2, __hostFunction_NativeTpstreamsCxxSpecJSI_multiply};
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
|
|
28
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* This code was generated by [react-native-codegen](https://www.npmjs.com/package/react-native-codegen).
|
|
3
|
+
*
|
|
4
|
+
* Do not edit this file as changes may cause incorrect behavior and will be lost
|
|
5
|
+
* once the code is regenerated.
|
|
6
|
+
*
|
|
7
|
+
* @generated by codegen project: GenerateModuleH.js
|
|
8
|
+
*/
|
|
9
|
+
|
|
10
|
+
#pragma once
|
|
11
|
+
|
|
12
|
+
#include <ReactCommon/TurboModule.h>
|
|
13
|
+
#include <react/bridging/Bridging.h>
|
|
14
|
+
|
|
15
|
+
namespace facebook::react {
|
|
16
|
+
|
|
17
|
+
|
|
18
|
+
class JSI_EXPORT NativeTpstreamsCxxSpecJSI : public TurboModule {
|
|
19
|
+
protected:
|
|
20
|
+
NativeTpstreamsCxxSpecJSI(std::shared_ptr<CallInvoker> jsInvoker);
|
|
21
|
+
|
|
22
|
+
public:
|
|
23
|
+
virtual double multiply(jsi::Runtime &rt, double a, double b) = 0;
|
|
24
|
+
|
|
25
|
+
};
|
|
26
|
+
|
|
27
|
+
template <typename T>
|
|
28
|
+
class JSI_EXPORT NativeTpstreamsCxxSpec : public TurboModule {
|
|
29
|
+
public:
|
|
30
|
+
jsi::Value create(jsi::Runtime &rt, const jsi::PropNameID &propName) override {
|
|
31
|
+
return delegate_.create(rt, propName);
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
std::vector<jsi::PropNameID> getPropertyNames(jsi::Runtime& runtime) override {
|
|
35
|
+
return delegate_.getPropertyNames(runtime);
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
static constexpr std::string_view kModuleName = "Tpstreams";
|
|
39
|
+
|
|
40
|
+
protected:
|
|
41
|
+
NativeTpstreamsCxxSpec(std::shared_ptr<CallInvoker> jsInvoker)
|
|
42
|
+
: TurboModule(std::string{NativeTpstreamsCxxSpec::kModuleName}, jsInvoker),
|
|
43
|
+
delegate_(reinterpret_cast<T*>(this), jsInvoker) {}
|
|
44
|
+
|
|
45
|
+
|
|
46
|
+
private:
|
|
47
|
+
class Delegate : public NativeTpstreamsCxxSpecJSI {
|
|
48
|
+
public:
|
|
49
|
+
Delegate(T *instance, std::shared_ptr<CallInvoker> jsInvoker) :
|
|
50
|
+
NativeTpstreamsCxxSpecJSI(std::move(jsInvoker)), instance_(instance) {
|
|
51
|
+
|
|
52
|
+
}
|
|
53
|
+
|
|
54
|
+
double multiply(jsi::Runtime &rt, double a, double b) override {
|
|
55
|
+
static_assert(
|
|
56
|
+
bridging::getParameterCount(&T::multiply) == 3,
|
|
57
|
+
"Expected multiply(...) to have 3 parameters");
|
|
58
|
+
|
|
59
|
+
return bridging::callFromJs<double>(
|
|
60
|
+
rt, &T::multiply, jsInvoker_, instance_, std::move(a), std::move(b));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
private:
|
|
64
|
+
friend class NativeTpstreamsCxxSpec;
|
|
65
|
+
T *instance_;
|
|
66
|
+
};
|
|
67
|
+
|
|
68
|
+
Delegate delegate_;
|
|
69
|
+
};
|
|
70
|
+
|
|
71
|
+
} // namespace facebook::react
|
|
@@ -0,0 +1,9 @@
|
|
|
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
|
+
var _default = exports.default = _reactNative.TurboModuleRegistry.getEnforcing('Tpstreams');
|
|
9
|
+
//# sourceMappingURL=NativeTpstreams.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_default","exports","default","TurboModuleRegistry","getEnforcing"],"sourceRoot":"..\\..\\src","sources":["NativeTpstreams.ts"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAAmD,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAMpCC,gCAAmB,CAACC,YAAY,CAAO,WAAW,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1,10 @@
|
|
|
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
|
+
const TpStreamsPlayerView = (0, _reactNative.requireNativeComponent)('TpStreamsPlayerView');
|
|
9
|
+
var _default = exports.default = TpStreamsPlayerView;
|
|
10
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_reactNative","require","TpStreamsPlayerView","requireNativeComponent","_default","exports","default"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;;;;;AACA,IAAAA,YAAA,GAAAC,OAAA;AAEA,MAAMC,mBAAmB,GAAG,IAAAC,mCAAsB,EAChD,qBACF,CAAC;AAAC,IAAAC,QAAA,GAAAC,OAAA,CAAAC,OAAA,GAEaJ,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["TurboModuleRegistry","getEnforcing"],"sourceRoot":"..\\..\\src","sources":["NativeTpstreams.ts"],"mappings":";;AACA,SAASA,mBAAmB,QAAQ,cAAc;AAMlD,eAAeA,mBAAmB,CAACC,YAAY,CAAO,WAAW,CAAC","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["requireNativeComponent","TpStreamsPlayerView"],"sourceRoot":"..\\..\\src","sources":["index.tsx"],"mappings":";;AACA,SAASA,sBAAsB,QAAQ,cAAc;AAErD,MAAMC,mBAAmB,GAAGD,sBAAsB,CAChD,qBACF,CAAC;AAED,eAAeC,mBAAmB","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":[],"sourceRoot":"..\\..\\src","sources":["types.ts"],"mappings":"","ignoreList":[]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"commonjs"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeTpstreams.d.ts","sourceRoot":"","sources":["../../../../src/NativeTpstreams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;;AAED,wBAAmE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpD,QAAA,MAAM,mBAAmB,4DAExB,CAAC;AAEF,eAAe,mBAAmB,CAAC;AACnC,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,cAAc,EAAE,SAAS,CAAC;CAC1C,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"type":"module"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"NativeTpstreams.d.ts","sourceRoot":"","sources":["../../../../src/NativeTpstreams.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,cAAc,CAAC;AAGhD,MAAM,WAAW,IAAK,SAAQ,WAAW;IACvC,QAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;CACxC;;AAED,wBAAmE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../src/index.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,SAAS,CAAC;AAGpD,QAAA,MAAM,mBAAmB,4DAExB,CAAC;AAEF,eAAe,mBAAmB,CAAC;AACnC,YAAY,EAAE,oBAAoB,EAAE,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../src/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,oBAAoB,GAAG;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,cAAc,EAAE,SAAS,CAAC;CAC1C,CAAC"}
|