@4players/odin-nodejs 0.7.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/.idea/.name +1 -0
- package/.idea/jsLibraryMappings.xml +6 -0
- package/.idea/misc.xml +4 -0
- package/.idea/modules.xml +9 -0
- package/.idea/odin-nodejs.iml +8 -0
- package/.idea/odin_nodejs.iml +2 -0
- package/.idea/php.xml +19 -0
- package/.idea/vcs.xml +6 -0
- package/CMakeLists.txt +25 -0
- package/README.md +53 -0
- package/binding.gyp +61 -0
- package/build/Makefile +352 -0
- package/build/Release/.deps/Release/nothing.a.d +1 -0
- package/build/Release/.deps/Release/obj.target/nothing/node_modules/node-addon-api/nothing.o.d +4 -0
- package/build/Release/.deps/Release/obj.target/odin/cppsrc/binding.o.d +27 -0
- package/build/Release/.deps/Release/obj.target/odin/cppsrc/odinbindings.o.d +24 -0
- package/build/Release/.deps/Release/obj.target/odin/cppsrc/odinclient.o.d +24 -0
- package/build/Release/.deps/Release/obj.target/odin/cppsrc/odinmedia.o.d +24 -0
- package/build/Release/.deps/Release/obj.target/odin/cppsrc/odinroom.o.d +24 -0
- package/build/Release/.deps/Release/obj.target/odin/cppsrc/utilities.o.d +21 -0
- package/build/Release/.deps/Release/odin.node.d +1 -0
- package/build/Release/nothing.a +0 -0
- package/build/Release/obj.target/nothing/node_modules/node-addon-api/nothing.o +0 -0
- package/build/Release/obj.target/odin/cppsrc/binding.o +0 -0
- package/build/Release/obj.target/odin/cppsrc/odinbindings.o +0 -0
- package/build/Release/obj.target/odin/cppsrc/odinclient.o +0 -0
- package/build/Release/obj.target/odin/cppsrc/odinmedia.o +0 -0
- package/build/Release/obj.target/odin/cppsrc/odinroom.o +0 -0
- package/build/Release/obj.target/odin/cppsrc/utilities.o +0 -0
- package/build/binding.Makefile +6 -0
- package/build/gyp-mac-tool +772 -0
- package/build/node_modules/node-addon-api/node_api.Makefile +6 -0
- package/build/node_modules/node-addon-api/nothing.target.mk +186 -0
- package/build/odin.target.mk +201 -0
- package/cmake-build-debug/.cmake/api/v1/query/cache-v2 +0 -0
- package/cmake-build-debug/.cmake/api/v1/query/cmakeFiles-v1 +0 -0
- package/cmake-build-debug/.cmake/api/v1/query/codemodel-v2 +0 -0
- package/cmake-build-debug/.cmake/api/v1/query/toolchains-v1 +0 -0
- package/cmake-build-debug/.cmake/api/v1/reply/cache-v2-912a6d0c3c2c7ebbadf8.json +1183 -0
- package/cmake-build-debug/.cmake/api/v1/reply/cmakeFiles-v1-0825651e80f1fb47890c.json +161 -0
- package/cmake-build-debug/.cmake/api/v1/reply/codemodel-v2-bc24edc239de864eb886.json +60 -0
- package/cmake-build-debug/.cmake/api/v1/reply/directory-.-Debug-f5ebdc15457944623624.json +14 -0
- package/cmake-build-debug/.cmake/api/v1/reply/index-2023-03-18T11-25-22-0179.json +108 -0
- package/cmake-build-debug/.cmake/api/v1/reply/target-odin_nodejs-Debug-1ac16802f252a85492c7.json +322 -0
- package/cmake-build-debug/.cmake/api/v1/reply/toolchains-v1-b57293a485ebf36c82cc.json +88 -0
- package/cmake-build-debug/.ninja_log +1 -0
- package/cmake-build-debug/CMakeCache.txt +367 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CMakeCCompiler.cmake +72 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CMakeCXXCompiler.cmake +83 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CMakeDetermineCompilerABI_C.bin +0 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CMakeDetermineCompilerABI_CXX.bin +0 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CMakeSystem.cmake +15 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CompilerIdC/CMakeCCompilerId.c +838 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CompilerIdC/CMakeCCompilerId.o +0 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CompilerIdCXX/CMakeCXXCompilerId.cpp +826 -0
- package/cmake-build-debug/CMakeFiles/3.24.2/CompilerIdCXX/CMakeCXXCompilerId.o +0 -0
- package/cmake-build-debug/CMakeFiles/CMakeError.log +22 -0
- package/cmake-build-debug/CMakeFiles/CMakeOutput.log +250 -0
- package/cmake-build-debug/CMakeFiles/TargetDirectories.txt +3 -0
- package/cmake-build-debug/CMakeFiles/clion-Debug-log.txt +4 -0
- package/cmake-build-debug/CMakeFiles/clion-environment.txt +3 -0
- package/cmake-build-debug/CMakeFiles/cmake.check_cache +1 -0
- package/cmake-build-debug/CMakeFiles/rules.ninja +74 -0
- package/cmake-build-debug/Testing/Temporary/LastTest.log +3 -0
- package/cmake-build-debug/build.ninja +205 -0
- package/cmake-build-debug/cmake_install.cmake +49 -0
- package/cppsrc/binding.cpp +15 -0
- package/cppsrc/odinbindings.cpp +58 -0
- package/cppsrc/odinbindings.h +9 -0
- package/cppsrc/odinclient.cpp +162 -0
- package/cppsrc/odinclient.h +17 -0
- package/cppsrc/odinmedia.cpp +242 -0
- package/cppsrc/odinmedia.h +35 -0
- package/cppsrc/odinroom.cpp +738 -0
- package/cppsrc/odinroom.h +65 -0
- package/cppsrc/utilities.cpp +102 -0
- package/cppsrc/utilities.h +175 -0
- package/index.cjs +2 -0
- package/index.d.ts +5 -0
- package/libs/bin/linux/arm64/libodin_static.a +0 -0
- package/libs/bin/linux/ia32/libodin_static.a +0 -0
- package/libs/bin/linux/x64/libodin_static.a +0 -0
- package/libs/bin/macos/arm64/libodin_static.a +0 -0
- package/libs/bin/macos/x64/libodin_static.a +0 -0
- package/libs/bin/windows/arm64/odin_static.lib +0 -0
- package/libs/bin/windows/ia32/odin_static.lib +0 -0
- package/libs/bin/windows/x64/odin_static.lib +0 -0
- package/libs/include/odin.h +896 -0
- package/odin.client.d.ts +22 -0
- package/odin.media.d.ts +33 -0
- package/odin.room.d.ts +473 -0
- package/package.json +50 -0
- package/prebuilds/darwin-arm64/node.napi.node +0 -0
- package/test.js +211 -0
- package/tests/audio-recording/README.md +24 -0
- package/tests/audio-recording/index.js +148 -0
- package/tests/sending-audio/README.md +20 -0
- package/tests/sending-audio/index.js +81 -0
- package/tests/sending-audio/santa.mp3 +0 -0
|
@@ -0,0 +1,205 @@
|
|
|
1
|
+
## This file contains all the build statements describing the
|
|
2
|
+
# compilation DAG.
|
|
3
|
+
|
|
4
|
+
# =============================================================================
|
|
5
|
+
# Write statements declared in CMakeLists.txt:
|
|
6
|
+
#
|
|
7
|
+
# Which is the root file.
|
|
8
|
+
# =============================================================================
|
|
9
|
+
|
|
10
|
+
# =============================================================================
|
|
11
|
+
# Project: odin_nodejs
|
|
12
|
+
# Configurations: Debug
|
|
13
|
+
# =============================================================================
|
|
14
|
+
|
|
15
|
+
#############################################
|
|
16
|
+
# Minimal version of Ninja required by this file
|
|
17
|
+
|
|
18
|
+
ninja_required_version = 1.5
|
|
19
|
+
|
|
20
|
+
|
|
21
|
+
#############################################
|
|
22
|
+
# Set configuration variable for custom commands.
|
|
23
|
+
|
|
24
|
+
CONFIGURATION = Debug
|
|
25
|
+
# =============================================================================
|
|
26
|
+
# Include auxiliary files.
|
|
27
|
+
|
|
28
|
+
|
|
29
|
+
#############################################
|
|
30
|
+
# Include rules file.
|
|
31
|
+
|
|
32
|
+
include CMakeFiles/rules.ninja
|
|
33
|
+
|
|
34
|
+
# =============================================================================
|
|
35
|
+
|
|
36
|
+
#############################################
|
|
37
|
+
# Logical path to working directory; prefix for absolute paths.
|
|
38
|
+
|
|
39
|
+
cmake_ninja_workdir = /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cmake-build-debug/
|
|
40
|
+
# =============================================================================
|
|
41
|
+
# Object build statements for EXECUTABLE target odin_nodejs
|
|
42
|
+
|
|
43
|
+
|
|
44
|
+
#############################################
|
|
45
|
+
# Order-only phony target for odin_nodejs
|
|
46
|
+
|
|
47
|
+
build cmake_object_order_depends_target_odin_nodejs: phony || CMakeFiles/odin_nodejs.dir
|
|
48
|
+
|
|
49
|
+
build CMakeFiles/odin_nodejs.dir/cppsrc/odinbindings.cpp.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/odinbindings.cpp || cmake_object_order_depends_target_odin_nodejs
|
|
50
|
+
DEFINES = -DNAPI_VERSION=4
|
|
51
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/cppsrc/odinbindings.cpp.o.d
|
|
52
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
53
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
54
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
55
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/cppsrc
|
|
56
|
+
|
|
57
|
+
build CMakeFiles/odin_nodejs.dir/cppsrc/odinroom.cpp.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/odinroom.cpp || cmake_object_order_depends_target_odin_nodejs
|
|
58
|
+
DEFINES = -DNAPI_VERSION=4
|
|
59
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/cppsrc/odinroom.cpp.o.d
|
|
60
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
61
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
62
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
63
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/cppsrc
|
|
64
|
+
|
|
65
|
+
build CMakeFiles/odin_nodejs.dir/cppsrc/binding.cpp.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/binding.cpp || cmake_object_order_depends_target_odin_nodejs
|
|
66
|
+
DEFINES = -DNAPI_VERSION=4
|
|
67
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/cppsrc/binding.cpp.o.d
|
|
68
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
69
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
70
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
71
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/cppsrc
|
|
72
|
+
|
|
73
|
+
build CMakeFiles/odin_nodejs.dir/node_modules/node-addon-api/nothing.c.o: C_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api/nothing.c || cmake_object_order_depends_target_odin_nodejs
|
|
74
|
+
DEFINES = -DNAPI_VERSION=4
|
|
75
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/node_modules/node-addon-api/nothing.c.o.d
|
|
76
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics
|
|
77
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
78
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
79
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/node_modules/node-addon-api
|
|
80
|
+
|
|
81
|
+
build CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc || cmake_object_order_depends_target_odin_nodejs
|
|
82
|
+
DEFINES = -DNAPI_VERSION=4
|
|
83
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc.o.d
|
|
84
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
85
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
86
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
87
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/gyp/data/win
|
|
88
|
+
|
|
89
|
+
build CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/src/win_delay_load_hook.cc.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-gyp/src/win_delay_load_hook.cc || cmake_object_order_depends_target_odin_nodejs
|
|
90
|
+
DEFINES = -DNAPI_VERSION=4
|
|
91
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/src/win_delay_load_hook.cc.o.d
|
|
92
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
93
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
94
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
95
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/src
|
|
96
|
+
|
|
97
|
+
build CMakeFiles/odin_nodejs.dir/cppsrc/utilities.cpp.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/utilities.cpp || cmake_object_order_depends_target_odin_nodejs
|
|
98
|
+
DEFINES = -DNAPI_VERSION=4
|
|
99
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/cppsrc/utilities.cpp.o.d
|
|
100
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
101
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
102
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
103
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/cppsrc
|
|
104
|
+
|
|
105
|
+
build CMakeFiles/odin_nodejs.dir/cppsrc/odinclient.cpp.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/odinclient.cpp || cmake_object_order_depends_target_odin_nodejs
|
|
106
|
+
DEFINES = -DNAPI_VERSION=4
|
|
107
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/cppsrc/odinclient.cpp.o.d
|
|
108
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
109
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
110
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
111
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/cppsrc
|
|
112
|
+
|
|
113
|
+
build CMakeFiles/odin_nodejs.dir/cppsrc/odinmedia.cpp.o: CXX_COMPILER__odin_nodejs_Debug /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/odinmedia.cpp || cmake_object_order_depends_target_odin_nodejs
|
|
114
|
+
DEFINES = -DNAPI_VERSION=4
|
|
115
|
+
DEP_FILE = CMakeFiles/odin_nodejs.dir/cppsrc/odinmedia.cpp.o.d
|
|
116
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk -fcolor-diagnostics -std=gnu++14
|
|
117
|
+
INCLUDES = -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cppsrc/samples -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/libs/include -I/Users/pschuster/Documents/4Players/Odin/odin-nodejs/node_modules/node-addon-api
|
|
118
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
119
|
+
OBJECT_FILE_DIR = CMakeFiles/odin_nodejs.dir/cppsrc
|
|
120
|
+
|
|
121
|
+
|
|
122
|
+
# =============================================================================
|
|
123
|
+
# Link build statements for EXECUTABLE target odin_nodejs
|
|
124
|
+
|
|
125
|
+
|
|
126
|
+
#############################################
|
|
127
|
+
# Link the executable odin_nodejs
|
|
128
|
+
|
|
129
|
+
build odin_nodejs: CXX_EXECUTABLE_LINKER__odin_nodejs_Debug CMakeFiles/odin_nodejs.dir/cppsrc/odinbindings.cpp.o CMakeFiles/odin_nodejs.dir/cppsrc/odinroom.cpp.o CMakeFiles/odin_nodejs.dir/cppsrc/binding.cpp.o CMakeFiles/odin_nodejs.dir/node_modules/node-addon-api/nothing.c.o CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/gyp/data/win/large-pdb-shim.cc.o CMakeFiles/odin_nodejs.dir/node_modules/node-gyp/src/win_delay_load_hook.cc.o CMakeFiles/odin_nodejs.dir/cppsrc/utilities.cpp.o CMakeFiles/odin_nodejs.dir/cppsrc/odinclient.cpp.o CMakeFiles/odin_nodejs.dir/cppsrc/odinmedia.cpp.o
|
|
130
|
+
FLAGS = -g -arch arm64 -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX13.1.sdk
|
|
131
|
+
OBJECT_DIR = CMakeFiles/odin_nodejs.dir
|
|
132
|
+
POST_BUILD = :
|
|
133
|
+
PRE_LINK = :
|
|
134
|
+
TARGET_FILE = odin_nodejs
|
|
135
|
+
TARGET_PDB = odin_nodejs.dbg
|
|
136
|
+
|
|
137
|
+
|
|
138
|
+
#############################################
|
|
139
|
+
# Utility command for edit_cache
|
|
140
|
+
|
|
141
|
+
build CMakeFiles/edit_cache.util: CUSTOM_COMMAND
|
|
142
|
+
COMMAND = cd /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cmake-build-debug && "/Users/pschuster/Library/Application Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/bin/cmake" -E echo No\ interactive\ CMake\ dialog\ available.
|
|
143
|
+
DESC = No interactive CMake dialog available...
|
|
144
|
+
restat = 1
|
|
145
|
+
|
|
146
|
+
build edit_cache: phony CMakeFiles/edit_cache.util
|
|
147
|
+
|
|
148
|
+
|
|
149
|
+
#############################################
|
|
150
|
+
# Utility command for rebuild_cache
|
|
151
|
+
|
|
152
|
+
build CMakeFiles/rebuild_cache.util: CUSTOM_COMMAND
|
|
153
|
+
COMMAND = cd /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cmake-build-debug && "/Users/pschuster/Library/Application Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/bin/cmake" --regenerate-during-build -S/Users/pschuster/Documents/4Players/Odin/odin-nodejs -B/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cmake-build-debug
|
|
154
|
+
DESC = Running CMake to regenerate build system...
|
|
155
|
+
pool = console
|
|
156
|
+
restat = 1
|
|
157
|
+
|
|
158
|
+
build rebuild_cache: phony CMakeFiles/rebuild_cache.util
|
|
159
|
+
|
|
160
|
+
# =============================================================================
|
|
161
|
+
# Target aliases.
|
|
162
|
+
|
|
163
|
+
# =============================================================================
|
|
164
|
+
# Folder targets.
|
|
165
|
+
|
|
166
|
+
# =============================================================================
|
|
167
|
+
|
|
168
|
+
#############################################
|
|
169
|
+
# Folder: /Users/pschuster/Documents/4Players/Odin/odin-nodejs/cmake-build-debug
|
|
170
|
+
|
|
171
|
+
build all: phony odin_nodejs
|
|
172
|
+
|
|
173
|
+
# =============================================================================
|
|
174
|
+
# Built-in targets
|
|
175
|
+
|
|
176
|
+
|
|
177
|
+
#############################################
|
|
178
|
+
# Re-run CMake if any of its inputs changed.
|
|
179
|
+
|
|
180
|
+
build build.ninja: RERUN_CMAKE | /Users/pschuster/Documents/4Players/Odin/odin-nodejs/CMakeLists.txt /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeCInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeCXXInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeGenericSystem.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/AppleClang-C.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/AppleClang-CXX.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/Clang.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/GNU.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-AppleClang-C.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-AppleClang-CXX.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-Clang-C.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-Clang-CXX.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-Clang.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Darwin-Initialize.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Darwin.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.24.2/CMakeCCompiler.cmake CMakeFiles/3.24.2/CMakeCXXCompiler.cmake CMakeFiles/3.24.2/CMakeSystem.cmake
|
|
181
|
+
pool = console
|
|
182
|
+
|
|
183
|
+
|
|
184
|
+
#############################################
|
|
185
|
+
# A missing CMake input file is not an error.
|
|
186
|
+
|
|
187
|
+
build /Users/pschuster/Documents/4Players/Odin/odin-nodejs/CMakeLists.txt /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeCInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeCXXInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeCommonLanguageInclude.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeGenericSystem.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeInitializeConfigs.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeLanguageInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeSystemSpecificInformation.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/CMakeSystemSpecificInitialize.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/AppleClang-C.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/AppleClang-CXX.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/CMakeCommonCompilerMacros.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/Clang.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Compiler/GNU.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-AppleClang-C.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-AppleClang-CXX.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-Clang-C.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-Clang-CXX.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Apple-Clang.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Darwin-Initialize.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/Darwin.cmake /Users/pschuster/Library/Application$ Support/JetBrains/Toolbox/apps/CLion/ch-0/223.8617.54/CLion.app/Contents/bin/cmake/mac/share/cmake-3.24/Modules/Platform/UnixPaths.cmake CMakeCache.txt CMakeFiles/3.24.2/CMakeCCompiler.cmake CMakeFiles/3.24.2/CMakeCXXCompiler.cmake CMakeFiles/3.24.2/CMakeSystem.cmake: phony
|
|
188
|
+
|
|
189
|
+
|
|
190
|
+
#############################################
|
|
191
|
+
# Clean all the built files.
|
|
192
|
+
|
|
193
|
+
build clean: CLEAN
|
|
194
|
+
|
|
195
|
+
|
|
196
|
+
#############################################
|
|
197
|
+
# Print all primary targets available.
|
|
198
|
+
|
|
199
|
+
build help: HELP
|
|
200
|
+
|
|
201
|
+
|
|
202
|
+
#############################################
|
|
203
|
+
# Make the all target the default.
|
|
204
|
+
|
|
205
|
+
default all
|
|
@@ -0,0 +1,49 @@
|
|
|
1
|
+
# Install script for directory: /Users/pschuster/Documents/4Players/Odin/odin-nodejs
|
|
2
|
+
|
|
3
|
+
# Set the install prefix
|
|
4
|
+
if(NOT DEFINED CMAKE_INSTALL_PREFIX)
|
|
5
|
+
set(CMAKE_INSTALL_PREFIX "/usr/local")
|
|
6
|
+
endif()
|
|
7
|
+
string(REGEX REPLACE "/$" "" CMAKE_INSTALL_PREFIX "${CMAKE_INSTALL_PREFIX}")
|
|
8
|
+
|
|
9
|
+
# Set the install configuration name.
|
|
10
|
+
if(NOT DEFINED CMAKE_INSTALL_CONFIG_NAME)
|
|
11
|
+
if(BUILD_TYPE)
|
|
12
|
+
string(REGEX REPLACE "^[^A-Za-z0-9_]+" ""
|
|
13
|
+
CMAKE_INSTALL_CONFIG_NAME "${BUILD_TYPE}")
|
|
14
|
+
else()
|
|
15
|
+
set(CMAKE_INSTALL_CONFIG_NAME "Debug")
|
|
16
|
+
endif()
|
|
17
|
+
message(STATUS "Install configuration: \"${CMAKE_INSTALL_CONFIG_NAME}\"")
|
|
18
|
+
endif()
|
|
19
|
+
|
|
20
|
+
# Set the component getting installed.
|
|
21
|
+
if(NOT CMAKE_INSTALL_COMPONENT)
|
|
22
|
+
if(COMPONENT)
|
|
23
|
+
message(STATUS "Install component: \"${COMPONENT}\"")
|
|
24
|
+
set(CMAKE_INSTALL_COMPONENT "${COMPONENT}")
|
|
25
|
+
else()
|
|
26
|
+
set(CMAKE_INSTALL_COMPONENT)
|
|
27
|
+
endif()
|
|
28
|
+
endif()
|
|
29
|
+
|
|
30
|
+
# Is this installation the result of a crosscompile?
|
|
31
|
+
if(NOT DEFINED CMAKE_CROSSCOMPILING)
|
|
32
|
+
set(CMAKE_CROSSCOMPILING "FALSE")
|
|
33
|
+
endif()
|
|
34
|
+
|
|
35
|
+
# Set default install directory permissions.
|
|
36
|
+
if(NOT DEFINED CMAKE_OBJDUMP)
|
|
37
|
+
set(CMAKE_OBJDUMP "/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/objdump")
|
|
38
|
+
endif()
|
|
39
|
+
|
|
40
|
+
if(CMAKE_INSTALL_COMPONENT)
|
|
41
|
+
set(CMAKE_INSTALL_MANIFEST "install_manifest_${CMAKE_INSTALL_COMPONENT}.txt")
|
|
42
|
+
else()
|
|
43
|
+
set(CMAKE_INSTALL_MANIFEST "install_manifest.txt")
|
|
44
|
+
endif()
|
|
45
|
+
|
|
46
|
+
string(REPLACE ";" "\n" CMAKE_INSTALL_MANIFEST_CONTENT
|
|
47
|
+
"${CMAKE_INSTALL_MANIFEST_FILES}")
|
|
48
|
+
file(WRITE "/Users/pschuster/Documents/4Players/Odin/odin-nodejs/cmake-build-debug/${CMAKE_INSTALL_MANIFEST}"
|
|
49
|
+
"${CMAKE_INSTALL_MANIFEST_CONTENT}")
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
/* cppsrc/main.cpp */
|
|
2
|
+
#include <napi.h>
|
|
3
|
+
#include "odinbindings.h"
|
|
4
|
+
#include "odinroom.h"
|
|
5
|
+
#include "odinmedia.h"
|
|
6
|
+
#include "odinclient.h"
|
|
7
|
+
|
|
8
|
+
Napi::Object InitAll(Napi::Env env, Napi::Object exports) {
|
|
9
|
+
OdinBindings::Init(env,exports);
|
|
10
|
+
OdinClient::Init(env, exports);
|
|
11
|
+
OdinMedia::Init(env, exports);
|
|
12
|
+
return OdinRoom::Init(env, exports);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
NODE_API_MODULE(NODE_GYP_MODULE_NAME, InitAll)
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
//
|
|
2
|
+
// Created by Phillip Schuster on 08.03.23.
|
|
3
|
+
//
|
|
4
|
+
#include "odinbindings.h"
|
|
5
|
+
|
|
6
|
+
/**
|
|
7
|
+
* Wrapper function to generate an access token with access key, room id and user id
|
|
8
|
+
* @param info
|
|
9
|
+
* @return
|
|
10
|
+
*/
|
|
11
|
+
Napi::String OdinBindings::GenerateAccessToken(const Napi::CallbackInfo &info)
|
|
12
|
+
{
|
|
13
|
+
Napi::Env env = info.Env();
|
|
14
|
+
|
|
15
|
+
if (info.Length() != 3 || !info[0].IsString() || !info[1].IsString() || !info[2].IsString()) {
|
|
16
|
+
Napi::TypeError::New(env, "Room and User Id expected").ThrowAsJavaScriptException();
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
std::string accessKey = info[0].ToString().Utf8Value();
|
|
20
|
+
std::string roomId = info[1].ToString().Utf8Value();
|
|
21
|
+
std::string userId = info[2].ToString().Utf8Value();
|
|
22
|
+
|
|
23
|
+
OdinTokenGenerator *generator = odin_token_generator_create(accessKey.c_str());
|
|
24
|
+
if (!generator)
|
|
25
|
+
{
|
|
26
|
+
Napi::TypeError::New(env, "Failed to initialize token generator, invalid access key").ThrowAsJavaScriptException();
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
/*
|
|
30
|
+
* Generate a new room token to access the ODIN network
|
|
31
|
+
*/
|
|
32
|
+
char room_token[512];
|
|
33
|
+
OdinReturnCode error = odin_token_generator_create_token(generator, roomId.c_str(), userId.c_str(), room_token, sizeof(room_token));
|
|
34
|
+
if (odin_is_error(error))
|
|
35
|
+
{
|
|
36
|
+
Napi::TypeError::New(env, "Creating access token failed").ThrowAsJavaScriptException();
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/*
|
|
40
|
+
* Destroy the token generator as we don't need it anymore
|
|
41
|
+
*/
|
|
42
|
+
odin_token_generator_destroy(generator);
|
|
43
|
+
|
|
44
|
+
return Napi::String::New(env, room_token);
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
/**
|
|
48
|
+
* Initialize the bindings
|
|
49
|
+
* @param env
|
|
50
|
+
* @param exports
|
|
51
|
+
* @return
|
|
52
|
+
*/
|
|
53
|
+
Napi::Object OdinBindings::Init(Napi::Env env, Napi::Object exports)
|
|
54
|
+
{
|
|
55
|
+
exports.Set("generateAccessToken", Napi::Function::New(env, OdinBindings::GenerateAccessToken));
|
|
56
|
+
|
|
57
|
+
return exports;
|
|
58
|
+
}
|
|
@@ -0,0 +1,162 @@
|
|
|
1
|
+
#include "odinclient.h"
|
|
2
|
+
#include <inttypes.h>
|
|
3
|
+
#include "odinroom.h"
|
|
4
|
+
|
|
5
|
+
/**
|
|
6
|
+
* Initialize the OdinClient class
|
|
7
|
+
* @param env
|
|
8
|
+
* @param exports
|
|
9
|
+
* @return
|
|
10
|
+
*/
|
|
11
|
+
Napi::Object OdinClient::Init(Napi::Env env, Napi::Object exports) {
|
|
12
|
+
// This method is used to hook the accessor and method callbacks
|
|
13
|
+
Napi::Function func = DefineClass(env, "OdinClient", {
|
|
14
|
+
InstanceMethod<&OdinClient::GenerateAccessToken>("generateAccessToken", static_cast<napi_property_attributes>(napi_writable | napi_configurable)),
|
|
15
|
+
InstanceMethod<&OdinClient::CreateRoom>("createRoom", static_cast<napi_property_attributes>(napi_writable | napi_configurable))
|
|
16
|
+
});
|
|
17
|
+
|
|
18
|
+
Napi::FunctionReference* constructor = new Napi::FunctionReference();
|
|
19
|
+
|
|
20
|
+
// Create a persistent reference to the class constructor. This will allow
|
|
21
|
+
// a function called on a class prototype and a function
|
|
22
|
+
// called on instance of a class to be distinguished from each other.
|
|
23
|
+
*constructor = Napi::Persistent(func);
|
|
24
|
+
exports.Set("OdinClient", func);
|
|
25
|
+
|
|
26
|
+
// Store the constructor as the add-on instance data. This will allow this
|
|
27
|
+
// add-on to support multiple instances of itself running on multiple worker
|
|
28
|
+
// threads, as well as multiple instances of itself running in different
|
|
29
|
+
// contexts on the same thread.
|
|
30
|
+
//
|
|
31
|
+
// By default, the value set on the environment here will be destroyed when
|
|
32
|
+
// the add-on is unloaded using the `delete` operator, but it is also
|
|
33
|
+
// possible to supply a custom deleter.
|
|
34
|
+
env.SetInstanceData<Napi::FunctionReference>(constructor);
|
|
35
|
+
|
|
36
|
+
return exports;
|
|
37
|
+
}
|
|
38
|
+
|
|
39
|
+
/**
|
|
40
|
+
* OdinClient constructor, requires an access key as string as first parameter
|
|
41
|
+
* @param info
|
|
42
|
+
*/
|
|
43
|
+
OdinClient::OdinClient(const Napi::CallbackInfo& info) : Napi::ObjectWrap<OdinClient>(info) {
|
|
44
|
+
Napi::Env env = info.Env();
|
|
45
|
+
Napi::HandleScope scope(env);
|
|
46
|
+
|
|
47
|
+
if (info.Length() < 1 || !info[0].IsString()) {
|
|
48
|
+
Napi::TypeError::New(env, "Access Key required as first parameter").ThrowAsJavaScriptException();
|
|
49
|
+
}
|
|
50
|
+
|
|
51
|
+
_accessKey = info[0].ToString().Utf8Value();
|
|
52
|
+
_sampleRate = 48000;
|
|
53
|
+
_numChannels = 1;
|
|
54
|
+
|
|
55
|
+
if (info.Length() >= 2) {
|
|
56
|
+
if (info[1].IsNumber()) {
|
|
57
|
+
_sampleRate = info[1].ToNumber();
|
|
58
|
+
} else {
|
|
59
|
+
Napi::TypeError::New(env, "Sample rate must be a number").ThrowAsJavaScriptException();
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
if (info.Length() >= 3) {
|
|
64
|
+
if (info[2].IsNumber()) {
|
|
65
|
+
_numChannels = info[2].ToNumber();
|
|
66
|
+
} else {
|
|
67
|
+
Napi::TypeError::New(env, "Channels must be a number").ThrowAsJavaScriptException();
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
#ifdef DEBUG
|
|
72
|
+
printf("Odin NodeJS Addon: Initializing Odin runtime (%s) with sample rate %f and %d channels\n", ODIN_VERSION, _sampleRate, _numChannels);
|
|
73
|
+
#endif
|
|
74
|
+
|
|
75
|
+
odin_startup_ex(ODIN_VERSION, _sampleRate, _numChannels == 1 ? OdinChannelLayout_Mono : OdinChannelLayout_Stereo);
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* OdinClient destructor
|
|
80
|
+
*/
|
|
81
|
+
void OdinClient::Finalize(Napi::Env env) {
|
|
82
|
+
|
|
83
|
+
}
|
|
84
|
+
|
|
85
|
+
/**
|
|
86
|
+
* Generate an access token for a room, requires a room id and user id as string as first and second parameter, returns the access token as string
|
|
87
|
+
* @param info
|
|
88
|
+
* @return
|
|
89
|
+
*/
|
|
90
|
+
Napi::Value OdinClient::GenerateAccessToken(const Napi::CallbackInfo &info)
|
|
91
|
+
{
|
|
92
|
+
Napi::Env env = info.Env();
|
|
93
|
+
|
|
94
|
+
if (info.Length() != 2 || !info[0].IsString() || !info[1].IsString()) {
|
|
95
|
+
Napi::TypeError::New(env, "Room and User Id expected").ThrowAsJavaScriptException();
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
std::string roomId = info[0].ToString().Utf8Value();
|
|
99
|
+
std::string userId = info[1].ToString().Utf8Value();
|
|
100
|
+
|
|
101
|
+
OdinTokenGenerator *generator = odin_token_generator_create(_accessKey.c_str());
|
|
102
|
+
if (!generator)
|
|
103
|
+
{
|
|
104
|
+
Napi::TypeError::New(env, "Failed to initialize token generator, invalid access key").ThrowAsJavaScriptException();
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
/*
|
|
108
|
+
* Generate a new room token to access the ODIN network
|
|
109
|
+
*/
|
|
110
|
+
char room_token[512];
|
|
111
|
+
OdinReturnCode error = odin_token_generator_create_token(generator, roomId.c_str(), userId.c_str(), room_token, sizeof(room_token));
|
|
112
|
+
if (odin_is_error(error))
|
|
113
|
+
{
|
|
114
|
+
Napi::TypeError::New(env, "Creating access token failed").ThrowAsJavaScriptException();
|
|
115
|
+
}
|
|
116
|
+
|
|
117
|
+
/*
|
|
118
|
+
* Destroy the token generator as we don't need it anymore
|
|
119
|
+
*/
|
|
120
|
+
odin_token_generator_destroy(generator);
|
|
121
|
+
|
|
122
|
+
return Napi::String::New(env, room_token);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/**
|
|
126
|
+
* Create a new room, requires a room id and user id as string as first and second parameter, returns the room instance
|
|
127
|
+
* @param info
|
|
128
|
+
* @return
|
|
129
|
+
*/
|
|
130
|
+
Napi::Value OdinClient::CreateRoom(const Napi::CallbackInfo &info) {
|
|
131
|
+
Napi::Env env = info.Env();
|
|
132
|
+
|
|
133
|
+
if (info.Length() != 2 || !info[0].IsString() || !info[1].IsString()) {
|
|
134
|
+
Napi::TypeError::New(env, "Room and User Id expected").ThrowAsJavaScriptException();
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
std::string roomId = info[0].ToString().Utf8Value();
|
|
138
|
+
std::string userId = info[1].ToString().Utf8Value();
|
|
139
|
+
|
|
140
|
+
OdinTokenGenerator *generator = odin_token_generator_create(_accessKey.c_str());
|
|
141
|
+
if (!generator)
|
|
142
|
+
{
|
|
143
|
+
Napi::TypeError::New(env, "Failed to initialize token generator, invalid access key").ThrowAsJavaScriptException();
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
/*
|
|
147
|
+
* Generate a new room token to access the ODIN network
|
|
148
|
+
*/
|
|
149
|
+
char room_token[512];
|
|
150
|
+
OdinReturnCode error = odin_token_generator_create_token(generator, roomId.c_str(), userId.c_str(), room_token, sizeof(room_token));
|
|
151
|
+
if (odin_is_error(error))
|
|
152
|
+
{
|
|
153
|
+
Napi::TypeError::New(env, "Creating access token failed").ThrowAsJavaScriptException();
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
/*
|
|
157
|
+
* Destroy the token generator as we don't need it anymore
|
|
158
|
+
*/
|
|
159
|
+
odin_token_generator_destroy(generator);
|
|
160
|
+
|
|
161
|
+
return OdinRoom::NewInstance(Napi::String::New(env, room_token));
|
|
162
|
+
}
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
#include <napi.h>
|
|
2
|
+
#include <odin.h>
|
|
3
|
+
|
|
4
|
+
class OdinClient : public Napi::ObjectWrap<OdinClient> {
|
|
5
|
+
public:
|
|
6
|
+
static Napi::Object Init(Napi::Env env, Napi::Object exports); //Init function for setting the export key to JS
|
|
7
|
+
OdinClient(const Napi::CallbackInfo& info); //Constructor to initialise
|
|
8
|
+
void Finalize(Napi::Env env) override;
|
|
9
|
+
private:
|
|
10
|
+
Napi::Value GenerateAccessToken(const Napi::CallbackInfo& info);
|
|
11
|
+
Napi::Value CreateRoom(const Napi::CallbackInfo& info);
|
|
12
|
+
|
|
13
|
+
float _sampleRate;
|
|
14
|
+
uint32_t _numChannels;
|
|
15
|
+
|
|
16
|
+
std::string _accessKey;
|
|
17
|
+
};
|