diff --git a/.idea/deployment.xml b/.idea/deployment.xml index d516610..17772f2 100644 --- a/.idea/deployment.xml +++ b/.idea/deployment.xml @@ -5,7 +5,7 @@ - + diff --git a/.idea/libraries/slf4j_simple.xml b/.idea/libraries/slf4j_simple.xml new file mode 100644 index 0000000..06b1109 --- /dev/null +++ b/.idea/libraries/slf4j_simple.xml @@ -0,0 +1,11 @@ + + + + + + + + + + + \ No newline at end of file diff --git a/.idea/runConfigurations/nanopi_intercom.xml b/.idea/runConfigurations/nanopi_intercom.xml new file mode 100644 index 0000000..b011c9e --- /dev/null +++ b/.idea/runConfigurations/nanopi_intercom.xml @@ -0,0 +1,20 @@ + + + + \ No newline at end of file diff --git a/Properties/tinylog.properties b/Properties/tinylog.properties new file mode 100644 index 0000000..0c4bb17 --- /dev/null +++ b/Properties/tinylog.properties @@ -0,0 +1,4 @@ +exception = unpack, strip: jdk.internal +writer = console +writer.exception = drop cause +writer.format = {date:dd-MM-yyyy HH:mm:ss} {class}.{method}() \ No newline at end of file diff --git a/SIPIntercom.iml b/SIPIntercom.iml index 44e6f58..0994aef 100644 --- a/SIPIntercom.iml +++ b/SIPIntercom.iml @@ -16,5 +16,6 @@ + \ No newline at end of file diff --git a/libs/linux-aarch64/libbass_aac.so b/libs/linux-aarch64/libbass_aac.so new file mode 100644 index 0000000..722d9eb Binary files /dev/null and b/libs/linux-aarch64/libbass_aac.so differ diff --git a/libs/linux-aarch64/libbass_ac3.so b/libs/linux-aarch64/libbass_ac3.so new file mode 100644 index 0000000..fe7ee0f Binary files /dev/null and b/libs/linux-aarch64/libbass_ac3.so differ diff --git a/libs/linux-aarch64/libbass_fx.so b/libs/linux-aarch64/libbass_fx.so new file mode 100644 index 0000000..45faa93 Binary files /dev/null and b/libs/linux-aarch64/libbass_fx.so differ diff --git a/libs/linux-aarch64/libbass_mpc.so b/libs/linux-aarch64/libbass_mpc.so new file mode 100644 index 0000000..82a22af Binary files /dev/null and b/libs/linux-aarch64/libbass_mpc.so differ diff --git a/libs/linux-aarch64/libbass_spx.so b/libs/linux-aarch64/libbass_spx.so new file mode 100644 index 0000000..d2af193 Binary files /dev/null and b/libs/linux-aarch64/libbass_spx.so differ diff --git a/libs/linux-aarch64/libbass_tta.so b/libs/linux-aarch64/libbass_tta.so new file mode 100644 index 0000000..3468f2c Binary files /dev/null and b/libs/linux-aarch64/libbass_tta.so differ diff --git a/libs/linux-aarch64/libbassalac.so b/libs/linux-aarch64/libbassalac.so new file mode 100644 index 0000000..606b3c9 Binary files /dev/null and b/libs/linux-aarch64/libbassalac.so differ diff --git a/libs/linux-aarch64/libbassape.so b/libs/linux-aarch64/libbassape.so new file mode 100644 index 0000000..d00e380 Binary files /dev/null and b/libs/linux-aarch64/libbassape.so differ diff --git a/libs/linux-aarch64/libbasscd.so b/libs/linux-aarch64/libbasscd.so new file mode 100644 index 0000000..0a8115d Binary files /dev/null and b/libs/linux-aarch64/libbasscd.so differ diff --git a/libs/linux-aarch64/libbassdsd.so b/libs/linux-aarch64/libbassdsd.so new file mode 100644 index 0000000..c61136e Binary files /dev/null and b/libs/linux-aarch64/libbassdsd.so differ diff --git a/libs/linux-aarch64/libbassenc.so b/libs/linux-aarch64/libbassenc.so new file mode 100644 index 0000000..82fb7be Binary files /dev/null and b/libs/linux-aarch64/libbassenc.so differ diff --git a/libs/linux-aarch64/libbassenc_flac.so b/libs/linux-aarch64/libbassenc_flac.so new file mode 100644 index 0000000..f4f344a Binary files /dev/null and b/libs/linux-aarch64/libbassenc_flac.so differ diff --git a/libs/linux-aarch64/libbassenc_mp3.so b/libs/linux-aarch64/libbassenc_mp3.so new file mode 100644 index 0000000..1611982 Binary files /dev/null and b/libs/linux-aarch64/libbassenc_mp3.so differ diff --git a/libs/linux-aarch64/libbassenc_ogg.so b/libs/linux-aarch64/libbassenc_ogg.so new file mode 100644 index 0000000..3c14d69 Binary files /dev/null and b/libs/linux-aarch64/libbassenc_ogg.so differ diff --git a/libs/linux-aarch64/libbassenc_opus.so b/libs/linux-aarch64/libbassenc_opus.so new file mode 100644 index 0000000..9802f2e Binary files /dev/null and b/libs/linux-aarch64/libbassenc_opus.so differ diff --git a/libs/linux-aarch64/libbassflac.so b/libs/linux-aarch64/libbassflac.so new file mode 100644 index 0000000..dbc9738 Binary files /dev/null and b/libs/linux-aarch64/libbassflac.so differ diff --git a/libs/linux-aarch64/libbasshls.so b/libs/linux-aarch64/libbasshls.so new file mode 100644 index 0000000..b02f6d0 Binary files /dev/null and b/libs/linux-aarch64/libbasshls.so differ diff --git a/libs/linux-aarch64/libbassmidi.so b/libs/linux-aarch64/libbassmidi.so new file mode 100644 index 0000000..062b5d7 Binary files /dev/null and b/libs/linux-aarch64/libbassmidi.so differ diff --git a/libs/linux-aarch64/libbassmix.so b/libs/linux-aarch64/libbassmix.so new file mode 100644 index 0000000..af5a600 Binary files /dev/null and b/libs/linux-aarch64/libbassmix.so differ diff --git a/libs/linux-aarch64/libbassopus.so b/libs/linux-aarch64/libbassopus.so new file mode 100644 index 0000000..6cebe42 Binary files /dev/null and b/libs/linux-aarch64/libbassopus.so differ diff --git a/libs/linux-aarch64/libbasswebm.so b/libs/linux-aarch64/libbasswebm.so new file mode 100644 index 0000000..421cf32 Binary files /dev/null and b/libs/linux-aarch64/libbasswebm.so differ diff --git a/libs/linux-aarch64/libbasswv.so b/libs/linux-aarch64/libbasswv.so new file mode 100644 index 0000000..a3b27d2 Binary files /dev/null and b/libs/linux-aarch64/libbasswv.so differ diff --git a/libs/linux-aarch64/libtags.so b/libs/linux-aarch64/libtags.so new file mode 100644 index 0000000..6ab6dec Binary files /dev/null and b/libs/linux-aarch64/libtags.so differ diff --git a/libs/linux-armhf/libbass.so b/libs/linux-arm/libbass.so similarity index 100% rename from libs/linux-armhf/libbass.so rename to libs/linux-arm/libbass.so diff --git a/libs/linux-arm/libbass_aac.so b/libs/linux-arm/libbass_aac.so new file mode 100644 index 0000000..69215c2 Binary files /dev/null and b/libs/linux-arm/libbass_aac.so differ diff --git a/libs/linux-arm/libbass_ac3.so b/libs/linux-arm/libbass_ac3.so new file mode 100644 index 0000000..23deded Binary files /dev/null and b/libs/linux-arm/libbass_ac3.so differ diff --git a/libs/linux-arm/libbass_fx.so b/libs/linux-arm/libbass_fx.so new file mode 100644 index 0000000..0a78d8f Binary files /dev/null and b/libs/linux-arm/libbass_fx.so differ diff --git a/libs/linux-arm/libbass_mpc.so b/libs/linux-arm/libbass_mpc.so new file mode 100644 index 0000000..c2b3a9e Binary files /dev/null and b/libs/linux-arm/libbass_mpc.so differ diff --git a/libs/linux-arm/libbass_spx.so b/libs/linux-arm/libbass_spx.so new file mode 100644 index 0000000..d45bde9 Binary files /dev/null and b/libs/linux-arm/libbass_spx.so differ diff --git a/libs/linux-arm/libbass_tta.so b/libs/linux-arm/libbass_tta.so new file mode 100644 index 0000000..c482e2f Binary files /dev/null and b/libs/linux-arm/libbass_tta.so differ diff --git a/libs/linux-arm/libbassalac.so b/libs/linux-arm/libbassalac.so new file mode 100644 index 0000000..f306078 Binary files /dev/null and b/libs/linux-arm/libbassalac.so differ diff --git a/libs/linux-arm/libbassape.so b/libs/linux-arm/libbassape.so new file mode 100644 index 0000000..37923b3 Binary files /dev/null and b/libs/linux-arm/libbassape.so differ diff --git a/libs/linux-arm/libbasscd.so b/libs/linux-arm/libbasscd.so new file mode 100644 index 0000000..f9e0add Binary files /dev/null and b/libs/linux-arm/libbasscd.so differ diff --git a/libs/linux-arm/libbassdsd.so b/libs/linux-arm/libbassdsd.so new file mode 100644 index 0000000..01179f0 Binary files /dev/null and b/libs/linux-arm/libbassdsd.so differ diff --git a/libs/linux-arm/libbassenc.so b/libs/linux-arm/libbassenc.so new file mode 100644 index 0000000..20016ee Binary files /dev/null and b/libs/linux-arm/libbassenc.so differ diff --git a/libs/linux-arm/libbassenc_flac.so b/libs/linux-arm/libbassenc_flac.so new file mode 100644 index 0000000..58713b4 Binary files /dev/null and b/libs/linux-arm/libbassenc_flac.so differ diff --git a/libs/linux-arm/libbassenc_mp3.so b/libs/linux-arm/libbassenc_mp3.so new file mode 100644 index 0000000..218240d Binary files /dev/null and b/libs/linux-arm/libbassenc_mp3.so differ diff --git a/libs/linux-arm/libbassenc_ogg.so b/libs/linux-arm/libbassenc_ogg.so new file mode 100644 index 0000000..ca7ffac Binary files /dev/null and b/libs/linux-arm/libbassenc_ogg.so differ diff --git a/libs/linux-arm/libbassenc_opus.so b/libs/linux-arm/libbassenc_opus.so new file mode 100644 index 0000000..ae5dc15 Binary files /dev/null and b/libs/linux-arm/libbassenc_opus.so differ diff --git a/libs/linux-arm/libbassflac.so b/libs/linux-arm/libbassflac.so new file mode 100644 index 0000000..bb8c5a9 Binary files /dev/null and b/libs/linux-arm/libbassflac.so differ diff --git a/libs/linux-arm/libbasshls.so b/libs/linux-arm/libbasshls.so new file mode 100644 index 0000000..f6428a7 Binary files /dev/null and b/libs/linux-arm/libbasshls.so differ diff --git a/libs/linux-arm/libbassmidi.so b/libs/linux-arm/libbassmidi.so new file mode 100644 index 0000000..42f3566 Binary files /dev/null and b/libs/linux-arm/libbassmidi.so differ diff --git a/libs/linux-arm/libbassmix.so b/libs/linux-arm/libbassmix.so new file mode 100644 index 0000000..23d9c67 Binary files /dev/null and b/libs/linux-arm/libbassmix.so differ diff --git a/libs/linux-arm/libbassopus.so b/libs/linux-arm/libbassopus.so new file mode 100644 index 0000000..c21b493 Binary files /dev/null and b/libs/linux-arm/libbassopus.so differ diff --git a/libs/linux-arm/libbasswebm.so b/libs/linux-arm/libbasswebm.so new file mode 100644 index 0000000..f6b43ad Binary files /dev/null and b/libs/linux-arm/libbasswebm.so differ diff --git a/libs/linux-arm/libbasswv.so b/libs/linux-arm/libbasswv.so new file mode 100644 index 0000000..45f2fef Binary files /dev/null and b/libs/linux-arm/libbasswv.so differ diff --git a/libs/linux-arm/libtags.so b/libs/linux-arm/libtags.so new file mode 100644 index 0000000..c83f284 Binary files /dev/null and b/libs/linux-arm/libtags.so differ diff --git a/libs/linux-x86-64/libbass_aac.so b/libs/linux-x86-64/libbass_aac.so new file mode 100644 index 0000000..eaa273a Binary files /dev/null and b/libs/linux-x86-64/libbass_aac.so differ diff --git a/libs/linux-x86-64/libbass_ac3.so b/libs/linux-x86-64/libbass_ac3.so new file mode 100644 index 0000000..f1466c4 Binary files /dev/null and b/libs/linux-x86-64/libbass_ac3.so differ diff --git a/libs/linux-x86-64/libbass_fx.so b/libs/linux-x86-64/libbass_fx.so new file mode 100644 index 0000000..bb23051 Binary files /dev/null and b/libs/linux-x86-64/libbass_fx.so differ diff --git a/libs/linux-x86-64/libbass_mpc.so b/libs/linux-x86-64/libbass_mpc.so new file mode 100644 index 0000000..a7418d5 Binary files /dev/null and b/libs/linux-x86-64/libbass_mpc.so differ diff --git a/libs/linux-x86-64/libbass_spx.so b/libs/linux-x86-64/libbass_spx.so new file mode 100644 index 0000000..b309b35 Binary files /dev/null and b/libs/linux-x86-64/libbass_spx.so differ diff --git a/libs/linux-x86-64/libbass_tta.so b/libs/linux-x86-64/libbass_tta.so new file mode 100644 index 0000000..465461c Binary files /dev/null and b/libs/linux-x86-64/libbass_tta.so differ diff --git a/libs/linux-x86-64/libbassalac.so b/libs/linux-x86-64/libbassalac.so new file mode 100644 index 0000000..0cde673 Binary files /dev/null and b/libs/linux-x86-64/libbassalac.so differ diff --git a/libs/linux-x86-64/libbassape.so b/libs/linux-x86-64/libbassape.so new file mode 100644 index 0000000..cd3edf6 Binary files /dev/null and b/libs/linux-x86-64/libbassape.so differ diff --git a/libs/linux-x86-64/libbasscd.so b/libs/linux-x86-64/libbasscd.so new file mode 100644 index 0000000..d3dd2d6 Binary files /dev/null and b/libs/linux-x86-64/libbasscd.so differ diff --git a/libs/linux-x86-64/libbassdsd.so b/libs/linux-x86-64/libbassdsd.so new file mode 100644 index 0000000..28e1ec4 Binary files /dev/null and b/libs/linux-x86-64/libbassdsd.so differ diff --git a/libs/linux-x86-64/libbassenc.so b/libs/linux-x86-64/libbassenc.so new file mode 100644 index 0000000..bb7240b Binary files /dev/null and b/libs/linux-x86-64/libbassenc.so differ diff --git a/libs/linux-x86-64/libbassenc_flac.so b/libs/linux-x86-64/libbassenc_flac.so new file mode 100644 index 0000000..b1d8675 Binary files /dev/null and b/libs/linux-x86-64/libbassenc_flac.so differ diff --git a/libs/linux-x86-64/libbassenc_mp3.so b/libs/linux-x86-64/libbassenc_mp3.so new file mode 100644 index 0000000..33f1248 Binary files /dev/null and b/libs/linux-x86-64/libbassenc_mp3.so differ diff --git a/libs/linux-x86-64/libbassenc_ogg.so b/libs/linux-x86-64/libbassenc_ogg.so new file mode 100644 index 0000000..02dc186 Binary files /dev/null and b/libs/linux-x86-64/libbassenc_ogg.so differ diff --git a/libs/linux-x86-64/libbassenc_opus.so b/libs/linux-x86-64/libbassenc_opus.so new file mode 100644 index 0000000..3a6bdd7 Binary files /dev/null and b/libs/linux-x86-64/libbassenc_opus.so differ diff --git a/libs/linux-x86-64/libbassflac.so b/libs/linux-x86-64/libbassflac.so new file mode 100644 index 0000000..eefff5c Binary files /dev/null and b/libs/linux-x86-64/libbassflac.so differ diff --git a/libs/linux-x86-64/libbasshls.so b/libs/linux-x86-64/libbasshls.so new file mode 100644 index 0000000..0695a83 Binary files /dev/null and b/libs/linux-x86-64/libbasshls.so differ diff --git a/libs/linux-x86-64/libbassmidi.so b/libs/linux-x86-64/libbassmidi.so new file mode 100644 index 0000000..fc78b20 Binary files /dev/null and b/libs/linux-x86-64/libbassmidi.so differ diff --git a/libs/linux-x86-64/libbassmix.so b/libs/linux-x86-64/libbassmix.so new file mode 100644 index 0000000..b90214f Binary files /dev/null and b/libs/linux-x86-64/libbassmix.so differ diff --git a/libs/linux-x86-64/libbassopus.so b/libs/linux-x86-64/libbassopus.so new file mode 100644 index 0000000..20c3b9e Binary files /dev/null and b/libs/linux-x86-64/libbassopus.so differ diff --git a/libs/linux-x86-64/libbasswebm.so b/libs/linux-x86-64/libbasswebm.so new file mode 100644 index 0000000..68d2259 Binary files /dev/null and b/libs/linux-x86-64/libbasswebm.so differ diff --git a/libs/linux-x86-64/libbasswv.so b/libs/linux-x86-64/libbasswv.so new file mode 100644 index 0000000..0d4be94 Binary files /dev/null and b/libs/linux-x86-64/libbasswv.so differ diff --git a/libs/linux-x86-64/libtags.so b/libs/linux-x86-64/libtags.so new file mode 100644 index 0000000..7ab7dc0 Binary files /dev/null and b/libs/linux-x86-64/libtags.so differ diff --git a/libs/linux-x86/libbass_aac.so b/libs/linux-x86/libbass_aac.so new file mode 100644 index 0000000..d286e70 Binary files /dev/null and b/libs/linux-x86/libbass_aac.so differ diff --git a/libs/linux-x86/libbass_ac3.so b/libs/linux-x86/libbass_ac3.so new file mode 100644 index 0000000..b686741 Binary files /dev/null and b/libs/linux-x86/libbass_ac3.so differ diff --git a/libs/linux-x86/libbass_fx.so b/libs/linux-x86/libbass_fx.so new file mode 100644 index 0000000..e325328 Binary files /dev/null and b/libs/linux-x86/libbass_fx.so differ diff --git a/libs/linux-x86/libbass_mpc.so b/libs/linux-x86/libbass_mpc.so new file mode 100644 index 0000000..0060463 Binary files /dev/null and b/libs/linux-x86/libbass_mpc.so differ diff --git a/libs/linux-x86/libbass_spx.so b/libs/linux-x86/libbass_spx.so new file mode 100644 index 0000000..8b9740d Binary files /dev/null and b/libs/linux-x86/libbass_spx.so differ diff --git a/libs/linux-x86/libbass_tta.so b/libs/linux-x86/libbass_tta.so new file mode 100644 index 0000000..e80bdcc Binary files /dev/null and b/libs/linux-x86/libbass_tta.so differ diff --git a/libs/linux-x86/libbassalac.so b/libs/linux-x86/libbassalac.so new file mode 100644 index 0000000..6a7be30 Binary files /dev/null and b/libs/linux-x86/libbassalac.so differ diff --git a/libs/linux-x86/libbassape.so b/libs/linux-x86/libbassape.so new file mode 100644 index 0000000..76e98b8 Binary files /dev/null and b/libs/linux-x86/libbassape.so differ diff --git a/libs/linux-x86/libbasscd.so b/libs/linux-x86/libbasscd.so new file mode 100644 index 0000000..98e2d2b Binary files /dev/null and b/libs/linux-x86/libbasscd.so differ diff --git a/libs/linux-x86/libbassdsd.so b/libs/linux-x86/libbassdsd.so new file mode 100644 index 0000000..10262c9 Binary files /dev/null and b/libs/linux-x86/libbassdsd.so differ diff --git a/libs/linux-x86/libbassenc.so b/libs/linux-x86/libbassenc.so new file mode 100644 index 0000000..874faee Binary files /dev/null and b/libs/linux-x86/libbassenc.so differ diff --git a/libs/linux-x86/libbassenc_flac.so b/libs/linux-x86/libbassenc_flac.so new file mode 100644 index 0000000..a12a436 Binary files /dev/null and b/libs/linux-x86/libbassenc_flac.so differ diff --git a/libs/linux-x86/libbassenc_mp3.so b/libs/linux-x86/libbassenc_mp3.so new file mode 100644 index 0000000..058e6f6 Binary files /dev/null and b/libs/linux-x86/libbassenc_mp3.so differ diff --git a/libs/linux-x86/libbassenc_ogg.so b/libs/linux-x86/libbassenc_ogg.so new file mode 100644 index 0000000..c43f389 Binary files /dev/null and b/libs/linux-x86/libbassenc_ogg.so differ diff --git a/libs/linux-x86/libbassenc_opus.so b/libs/linux-x86/libbassenc_opus.so new file mode 100644 index 0000000..124a1a2 Binary files /dev/null and b/libs/linux-x86/libbassenc_opus.so differ diff --git a/libs/linux-x86/libbassflac.so b/libs/linux-x86/libbassflac.so new file mode 100644 index 0000000..6ebe3aa Binary files /dev/null and b/libs/linux-x86/libbassflac.so differ diff --git a/libs/linux-x86/libbasshls.so b/libs/linux-x86/libbasshls.so new file mode 100644 index 0000000..dad36ae Binary files /dev/null and b/libs/linux-x86/libbasshls.so differ diff --git a/libs/linux-x86/libbassmidi.so b/libs/linux-x86/libbassmidi.so new file mode 100644 index 0000000..5d96ccd Binary files /dev/null and b/libs/linux-x86/libbassmidi.so differ diff --git a/libs/linux-x86/libbassmix.so b/libs/linux-x86/libbassmix.so new file mode 100644 index 0000000..81c8ecb Binary files /dev/null and b/libs/linux-x86/libbassmix.so differ diff --git a/libs/linux-x86/libbassopus.so b/libs/linux-x86/libbassopus.so new file mode 100644 index 0000000..f9906a0 Binary files /dev/null and b/libs/linux-x86/libbassopus.so differ diff --git a/libs/linux-x86/libbasswebm.so b/libs/linux-x86/libbasswebm.so new file mode 100644 index 0000000..2d7001b Binary files /dev/null and b/libs/linux-x86/libbasswebm.so differ diff --git a/libs/linux-x86/libbasswv.so b/libs/linux-x86/libbasswv.so new file mode 100644 index 0000000..2f77286 Binary files /dev/null and b/libs/linux-x86/libbasswv.so differ diff --git a/libs/linux-x86/libtags.so b/libs/linux-x86/libtags.so new file mode 100644 index 0000000..62aab4b Binary files /dev/null and b/libs/linux-x86/libtags.so differ diff --git a/libs/win32-arm64/bassape.dll b/libs/win32-arm64/bassape.dll new file mode 100644 index 0000000..6f57f80 Binary files /dev/null and b/libs/win32-arm64/bassape.dll differ diff --git a/libs/win32-arm64/basscd.dll b/libs/win32-arm64/basscd.dll new file mode 100644 index 0000000..3b1dadc Binary files /dev/null and b/libs/win32-arm64/basscd.dll differ diff --git a/libs/win32-arm64/bassdsd.dll b/libs/win32-arm64/bassdsd.dll new file mode 100644 index 0000000..ae3aa44 Binary files /dev/null and b/libs/win32-arm64/bassdsd.dll differ diff --git a/libs/win32-arm64/bassenc.dll b/libs/win32-arm64/bassenc.dll new file mode 100644 index 0000000..74be787 Binary files /dev/null and b/libs/win32-arm64/bassenc.dll differ diff --git a/libs/win32-arm64/bassenc_flac.dll b/libs/win32-arm64/bassenc_flac.dll new file mode 100644 index 0000000..783cbd2 Binary files /dev/null and b/libs/win32-arm64/bassenc_flac.dll differ diff --git a/libs/win32-arm64/bassenc_mp3.dll b/libs/win32-arm64/bassenc_mp3.dll new file mode 100644 index 0000000..a7425d3 Binary files /dev/null and b/libs/win32-arm64/bassenc_mp3.dll differ diff --git a/libs/win32-arm64/bassenc_ogg.dll b/libs/win32-arm64/bassenc_ogg.dll new file mode 100644 index 0000000..6a91007 Binary files /dev/null and b/libs/win32-arm64/bassenc_ogg.dll differ diff --git a/libs/win32-arm64/bassenc_opus.dll b/libs/win32-arm64/bassenc_opus.dll new file mode 100644 index 0000000..f529184 Binary files /dev/null and b/libs/win32-arm64/bassenc_opus.dll differ diff --git a/libs/win32-arm64/bassflac.dll b/libs/win32-arm64/bassflac.dll new file mode 100644 index 0000000..ffd438a Binary files /dev/null and b/libs/win32-arm64/bassflac.dll differ diff --git a/libs/win32-arm64/basshls.dll b/libs/win32-arm64/basshls.dll new file mode 100644 index 0000000..8d3fb05 Binary files /dev/null and b/libs/win32-arm64/basshls.dll differ diff --git a/libs/win32-arm64/bassloud.dll b/libs/win32-arm64/bassloud.dll new file mode 100644 index 0000000..bb7e345 Binary files /dev/null and b/libs/win32-arm64/bassloud.dll differ diff --git a/libs/win32-arm64/bassmidi.dll b/libs/win32-arm64/bassmidi.dll new file mode 100644 index 0000000..cea9b66 Binary files /dev/null and b/libs/win32-arm64/bassmidi.dll differ diff --git a/libs/win32-arm64/bassmix.dll b/libs/win32-arm64/bassmix.dll new file mode 100644 index 0000000..d78c992 Binary files /dev/null and b/libs/win32-arm64/bassmix.dll differ diff --git a/libs/win32-arm64/bassopus.dll b/libs/win32-arm64/bassopus.dll new file mode 100644 index 0000000..5bcf4fd Binary files /dev/null and b/libs/win32-arm64/bassopus.dll differ diff --git a/libs/win32-arm64/basswasapi.dll b/libs/win32-arm64/basswasapi.dll new file mode 100644 index 0000000..bfb0181 Binary files /dev/null and b/libs/win32-arm64/basswasapi.dll differ diff --git a/libs/win32-arm64/basswebm.dll b/libs/win32-arm64/basswebm.dll new file mode 100644 index 0000000..3ee0b0d Binary files /dev/null and b/libs/win32-arm64/basswebm.dll differ diff --git a/libs/win32-arm64/basswv.dll b/libs/win32-arm64/basswv.dll new file mode 100644 index 0000000..2bfb3da Binary files /dev/null and b/libs/win32-arm64/basswv.dll differ diff --git a/libs/win32-x86-64/bass_aac.dll b/libs/win32-x86-64/bass_aac.dll new file mode 100644 index 0000000..858cfca Binary files /dev/null and b/libs/win32-x86-64/bass_aac.dll differ diff --git a/libs/win32-x86-64/bass_ac3.dll b/libs/win32-x86-64/bass_ac3.dll new file mode 100644 index 0000000..17366e3 Binary files /dev/null and b/libs/win32-x86-64/bass_ac3.dll differ diff --git a/libs/win32-x86-64/bass_fx.dll b/libs/win32-x86-64/bass_fx.dll new file mode 100644 index 0000000..23e3a6e Binary files /dev/null and b/libs/win32-x86-64/bass_fx.dll differ diff --git a/libs/win32-x86-64/bass_mpc.dll b/libs/win32-x86-64/bass_mpc.dll new file mode 100644 index 0000000..68322c0 Binary files /dev/null and b/libs/win32-x86-64/bass_mpc.dll differ diff --git a/libs/win32-x86-64/bass_spx.dll b/libs/win32-x86-64/bass_spx.dll new file mode 100644 index 0000000..28d2a2d Binary files /dev/null and b/libs/win32-x86-64/bass_spx.dll differ diff --git a/libs/win32-x86-64/bass_ssl.dll b/libs/win32-x86-64/bass_ssl.dll new file mode 100644 index 0000000..1eaaa47 Binary files /dev/null and b/libs/win32-x86-64/bass_ssl.dll differ diff --git a/libs/win32-x86-64/bass_tta.dll b/libs/win32-x86-64/bass_tta.dll new file mode 100644 index 0000000..f7aaae5 Binary files /dev/null and b/libs/win32-x86-64/bass_tta.dll differ diff --git a/libs/win32-x86-64/bassalac.dll b/libs/win32-x86-64/bassalac.dll new file mode 100644 index 0000000..a511245 Binary files /dev/null and b/libs/win32-x86-64/bassalac.dll differ diff --git a/libs/win32-x86-64/bassape.dll b/libs/win32-x86-64/bassape.dll new file mode 100644 index 0000000..eb2f7e3 Binary files /dev/null and b/libs/win32-x86-64/bassape.dll differ diff --git a/libs/win32-x86-64/basscd.dll b/libs/win32-x86-64/basscd.dll new file mode 100644 index 0000000..fa61cc6 Binary files /dev/null and b/libs/win32-x86-64/basscd.dll differ diff --git a/libs/win32-x86-64/bassdsd.dll b/libs/win32-x86-64/bassdsd.dll new file mode 100644 index 0000000..50353bb Binary files /dev/null and b/libs/win32-x86-64/bassdsd.dll differ diff --git a/libs/win32-x86-64/bassenc.dll b/libs/win32-x86-64/bassenc.dll new file mode 100644 index 0000000..b8f6960 Binary files /dev/null and b/libs/win32-x86-64/bassenc.dll differ diff --git a/libs/win32-x86-64/bassenc_flac.dll b/libs/win32-x86-64/bassenc_flac.dll new file mode 100644 index 0000000..2a7e949 Binary files /dev/null and b/libs/win32-x86-64/bassenc_flac.dll differ diff --git a/libs/win32-x86-64/bassenc_mp3.dll b/libs/win32-x86-64/bassenc_mp3.dll new file mode 100644 index 0000000..930d490 Binary files /dev/null and b/libs/win32-x86-64/bassenc_mp3.dll differ diff --git a/libs/win32-x86-64/bassenc_ogg.dll b/libs/win32-x86-64/bassenc_ogg.dll new file mode 100644 index 0000000..5f9fb30 Binary files /dev/null and b/libs/win32-x86-64/bassenc_ogg.dll differ diff --git a/libs/win32-x86-64/bassenc_opus.dll b/libs/win32-x86-64/bassenc_opus.dll new file mode 100644 index 0000000..8fc0301 Binary files /dev/null and b/libs/win32-x86-64/bassenc_opus.dll differ diff --git a/libs/win32-x86-64/bassflac.dll b/libs/win32-x86-64/bassflac.dll new file mode 100644 index 0000000..7894024 Binary files /dev/null and b/libs/win32-x86-64/bassflac.dll differ diff --git a/libs/win32-x86-64/basshls.dll b/libs/win32-x86-64/basshls.dll new file mode 100644 index 0000000..16505fe Binary files /dev/null and b/libs/win32-x86-64/basshls.dll differ diff --git a/libs/win32-x86-64/bassmidi.dll b/libs/win32-x86-64/bassmidi.dll new file mode 100644 index 0000000..39206c9 Binary files /dev/null and b/libs/win32-x86-64/bassmidi.dll differ diff --git a/libs/win32-x86-64/bassmix.dll b/libs/win32-x86-64/bassmix.dll new file mode 100644 index 0000000..e19f75f Binary files /dev/null and b/libs/win32-x86-64/bassmix.dll differ diff --git a/libs/win32-x86-64/bassopus.dll b/libs/win32-x86-64/bassopus.dll new file mode 100644 index 0000000..9743836 Binary files /dev/null and b/libs/win32-x86-64/bassopus.dll differ diff --git a/libs/win32-x86-64/basswebm.dll b/libs/win32-x86-64/basswebm.dll new file mode 100644 index 0000000..1f38b42 Binary files /dev/null and b/libs/win32-x86-64/basswebm.dll differ diff --git a/libs/win32-x86-64/basswma.dll b/libs/win32-x86-64/basswma.dll new file mode 100644 index 0000000..4174c04 Binary files /dev/null and b/libs/win32-x86-64/basswma.dll differ diff --git a/libs/win32-x86-64/basswv.dll b/libs/win32-x86-64/basswv.dll new file mode 100644 index 0000000..471caff Binary files /dev/null and b/libs/win32-x86-64/basswv.dll differ diff --git a/libs/win32-x86-64/tags.dll b/libs/win32-x86-64/tags.dll new file mode 100644 index 0000000..4f86a3e Binary files /dev/null and b/libs/win32-x86-64/tags.dll differ diff --git a/libs/win32-x86/bass_aac.dll b/libs/win32-x86/bass_aac.dll new file mode 100644 index 0000000..bfc0813 Binary files /dev/null and b/libs/win32-x86/bass_aac.dll differ diff --git a/libs/win32-x86/bass_ac3.dll b/libs/win32-x86/bass_ac3.dll new file mode 100644 index 0000000..eb32677 Binary files /dev/null and b/libs/win32-x86/bass_ac3.dll differ diff --git a/libs/win32-x86/bass_fx.dll b/libs/win32-x86/bass_fx.dll new file mode 100644 index 0000000..a31f20f Binary files /dev/null and b/libs/win32-x86/bass_fx.dll differ diff --git a/libs/win32-x86/bass_mpc.dll b/libs/win32-x86/bass_mpc.dll new file mode 100644 index 0000000..1a0ad93 Binary files /dev/null and b/libs/win32-x86/bass_mpc.dll differ diff --git a/libs/win32-x86/bass_spx.dll b/libs/win32-x86/bass_spx.dll new file mode 100644 index 0000000..def20d6 Binary files /dev/null and b/libs/win32-x86/bass_spx.dll differ diff --git a/libs/win32-x86/bass_ssl.dll b/libs/win32-x86/bass_ssl.dll new file mode 100644 index 0000000..31ec4bc Binary files /dev/null and b/libs/win32-x86/bass_ssl.dll differ diff --git a/libs/win32-x86/bass_tta.dll b/libs/win32-x86/bass_tta.dll new file mode 100644 index 0000000..0f0c38f Binary files /dev/null and b/libs/win32-x86/bass_tta.dll differ diff --git a/libs/win32-x86/bassalac.dll b/libs/win32-x86/bassalac.dll new file mode 100644 index 0000000..454b838 Binary files /dev/null and b/libs/win32-x86/bassalac.dll differ diff --git a/libs/win32-x86/bassape.dll b/libs/win32-x86/bassape.dll new file mode 100644 index 0000000..5e24a85 Binary files /dev/null and b/libs/win32-x86/bassape.dll differ diff --git a/libs/win32-x86/basscd.dll b/libs/win32-x86/basscd.dll new file mode 100644 index 0000000..5d338e2 Binary files /dev/null and b/libs/win32-x86/basscd.dll differ diff --git a/libs/win32-x86/bassdsd.dll b/libs/win32-x86/bassdsd.dll new file mode 100644 index 0000000..6c646f3 Binary files /dev/null and b/libs/win32-x86/bassdsd.dll differ diff --git a/libs/win32-x86/bassenc.dll b/libs/win32-x86/bassenc.dll new file mode 100644 index 0000000..d61ca83 Binary files /dev/null and b/libs/win32-x86/bassenc.dll differ diff --git a/libs/win32-x86/bassenc_flac.dll b/libs/win32-x86/bassenc_flac.dll new file mode 100644 index 0000000..a22fb57 Binary files /dev/null and b/libs/win32-x86/bassenc_flac.dll differ diff --git a/libs/win32-x86/bassenc_mp3.dll b/libs/win32-x86/bassenc_mp3.dll new file mode 100644 index 0000000..1980b7d Binary files /dev/null and b/libs/win32-x86/bassenc_mp3.dll differ diff --git a/libs/win32-x86/bassenc_ogg.dll b/libs/win32-x86/bassenc_ogg.dll new file mode 100644 index 0000000..64992ea Binary files /dev/null and b/libs/win32-x86/bassenc_ogg.dll differ diff --git a/libs/win32-x86/bassenc_opus.dll b/libs/win32-x86/bassenc_opus.dll new file mode 100644 index 0000000..327c299 Binary files /dev/null and b/libs/win32-x86/bassenc_opus.dll differ diff --git a/libs/win32-x86/bassflac.dll b/libs/win32-x86/bassflac.dll new file mode 100644 index 0000000..d0684c0 Binary files /dev/null and b/libs/win32-x86/bassflac.dll differ diff --git a/libs/win32-x86/basshls.dll b/libs/win32-x86/basshls.dll new file mode 100644 index 0000000..96a403f Binary files /dev/null and b/libs/win32-x86/basshls.dll differ diff --git a/libs/win32-x86/bassmidi.dll b/libs/win32-x86/bassmidi.dll new file mode 100644 index 0000000..2722419 Binary files /dev/null and b/libs/win32-x86/bassmidi.dll differ diff --git a/libs/win32-x86/bassmix.dll b/libs/win32-x86/bassmix.dll new file mode 100644 index 0000000..e413823 Binary files /dev/null and b/libs/win32-x86/bassmix.dll differ diff --git a/libs/win32-x86/bassopus.dll b/libs/win32-x86/bassopus.dll new file mode 100644 index 0000000..6297357 Binary files /dev/null and b/libs/win32-x86/bassopus.dll differ diff --git a/libs/win32-x86/basswebm.dll b/libs/win32-x86/basswebm.dll new file mode 100644 index 0000000..f060e57 Binary files /dev/null and b/libs/win32-x86/basswebm.dll differ diff --git a/libs/win32-x86/basswma.dll b/libs/win32-x86/basswma.dll new file mode 100644 index 0000000..2945c9f Binary files /dev/null and b/libs/win32-x86/basswma.dll differ diff --git a/libs/win32-x86/basswv.dll b/libs/win32-x86/basswv.dll new file mode 100644 index 0000000..2944ff9 Binary files /dev/null and b/libs/win32-x86/basswv.dll differ diff --git a/libs/win32-x86/tags.dll b/libs/win32-x86/tags.dll new file mode 100644 index 0000000..65c7e22 Binary files /dev/null and b/libs/win32-x86/tags.dll differ diff --git a/src/Audio/Bass.java b/src/Audio/Bass.java index f21259e..f4f6ce0 100644 --- a/src/Audio/Bass.java +++ b/src/Audio/Bass.java @@ -5,7 +5,6 @@ import com.sun.jna.*; @SuppressWarnings("unused") public interface Bass extends Library { - Bass Instance = Native.load("bass", Bass.class); int BASSVERSION = 0x204; // API version String BASSVERSIONTEXT = "2.4"; diff --git a/src/Audio/BassFileReader.java b/src/Audio/BassFileReader.java index 5186755..3fcb369 100644 --- a/src/Audio/BassFileReader.java +++ b/src/Audio/BassFileReader.java @@ -13,6 +13,7 @@ import peers.media.SoundSource; * */ public class BassFileReader implements SoundSource { + // Device = 0 --> no sound private final int bassdev = 0; // Device BassInit normal 48khz diff --git a/src/Audio/BassSoundManager.java b/src/Audio/BassSoundManager.java index 2de7b04..35f8be5 100644 --- a/src/Audio/BassSoundManager.java +++ b/src/Audio/BassSoundManager.java @@ -1,10 +1,11 @@ package Audio; - - - import com.sun.jna.Memory; import com.sun.jna.Pointer; import peers.media.AbstractSoundManager; +import org.pmw.tinylog.Logger; + +import java.util.ArrayList; +import java.util.List; /** * Pengganti /AxisAudio/src/net/sourceforge/peers/javaxsound/JavaxSoundManager.java @@ -14,6 +15,7 @@ import peers.media.AbstractSoundManager; */ @SuppressWarnings({"unused", "FieldCanBeLocal", "BusyWait", "ConditionalBreakInInfiniteLoop"}) public class BassSoundManager extends AbstractSoundManager { + private final Bass BASS = Bass.Instance; private BassSoundManagerListener bsml; private final int record_device, play_device; @@ -25,13 +27,71 @@ public class BassSoundManager extends AbstractSoundManager { private final int read_size = 320; private int streamhandle, recordhandle; - - + private List input_devices, output_devices; + + /** + * Create BassSoundManager with specified output and input device + * @param outputdevice output device index, start from 0 + * @param inputdevice input device index, start from 0 + * @param listener BassSoundManagerListener + */ public BassSoundManager(int outputdevice , int inputdevice, BassSoundManagerListener listener) { - this.bsml = listener; + Logger.info("Bass Version : {}", Integer.toHexString(BASS.BASS_GetVersion())); + detect_input(); + detect_output(); + this.bsml = listener; this.record_device = inputdevice; this.play_device = outputdevice; } + + public BassSoundManager(String output_keyword, String input_keyword, BassSoundManagerListener listener){ + Logger.info("Bass Version : {}", Integer.toHexString(BASS.BASS_GetVersion())); + detect_input(); + detect_output(); + this.bsml = listener; + this.record_device = input_devices.stream().filter(s -> s.contains(input_keyword)).map(s -> Integer.parseInt(s.substring(1, s.indexOf(']')))).findFirst().orElse(-1); + this.play_device = output_devices.stream().filter(s -> s.contains(output_keyword)).map(s -> Integer.parseInt(s.substring(1, s.indexOf(']')))).findFirst().orElse(-1); + if (record_device==-1) + Logger.error("Selected Input Device not found"); + else + Logger.info("Selected Input Device : {}", input_devices.get(record_device)); + if (play_device==-1) + Logger.error("Selected Output Device not found"); + else + Logger.info("Selected Output Device : {}", output_devices.get(play_device)); + } + + private void detect_input(){ + input_devices = new ArrayList<>(); + int ii = 0; + while(true){ + Bass.BASS_DEVICEINFO info = new Bass.BASS_DEVICEINFO(); + if (BASS.BASS_RecordGetDeviceInfo(ii, info)) { + input_devices.add("["+ii+"] "+info.name); + ii++; + } else break; + } + if (input_devices.isEmpty()) + Logger.info("No Input Devices"); + else + Logger.info("Input Devices : \n{}", String.join("\n", input_devices)); + } + + private void detect_output(){ + output_devices = new ArrayList<>(); + int ii = 0; + while(true){ + Bass.BASS_DEVICEINFO info = new Bass.BASS_DEVICEINFO(); + if (BASS.BASS_GetDeviceInfo(ii, info)) { + output_devices.add("["+ii+"] "+info.name); + ii++; + } else break; + } + if (output_devices.isEmpty()) + Logger.info("No Output Devices"); + else + Logger.info("Output Devices : \n{}", String.join("\n", output_devices)); + } public void AddListener(BassSoundManagerListener listener) { this.bsml = listener; diff --git a/src/Audio/BassSoundManagerEvent.java b/src/Audio/BassSoundManagerEvent.java new file mode 100644 index 0000000..8dd3a90 --- /dev/null +++ b/src/Audio/BassSoundManagerEvent.java @@ -0,0 +1,11 @@ +package Audio; + +public interface BassSoundManagerEvent { + void SoundChannelOpened(); + void SoundChannelClosed(); + void OutputChannelPCMData(int length, byte[] pcmdata); + void InputChannelPCMData(int length, byte[] pcmdata); + void DeviceFailure(boolean onOutput, String msg); + void BufferingInformation(boolean onOutput, String msg); + void ChannelLevel(boolean onOutput, int level); +} diff --git a/src/Audio/BassSoundManagerListener.java b/src/Audio/BassSoundManagerListener.java index 2b6e815..95ff065 100644 --- a/src/Audio/BassSoundManagerListener.java +++ b/src/Audio/BassSoundManagerListener.java @@ -6,13 +6,13 @@ package Audio; * */ public interface BassSoundManagerListener { - public void Opened(); - public void Closed(); - public void WriteFromRTP(int length, byte[] pcmdata); - public void ReadToRTP(int length, byte[] pcmdata); - public void log_info(String msg); - public void log_error(String msg); - public void DeviceFailure(String msg); - public void BufferingInformation(String msg); - public void ChannelLevel(boolean is_input, int value); + void Opened(); + void Closed(); + void WriteFromRTP(int length, byte[] pcmdata); + void ReadToRTP(int length, byte[] pcmdata); + void log_info(String msg); + void log_error(String msg); + void DeviceFailure(String msg); + void BufferingInformation(String msg); + void ChannelLevel(boolean is_input, int value); } diff --git a/src/Audio/JSIPAudio.java b/src/Audio/JSIPAudio.java index 987dbc8..8e7275b 100644 --- a/src/Audio/JSIPAudio.java +++ b/src/Audio/JSIPAudio.java @@ -22,6 +22,7 @@ import Audio.Bass.BASS_DEVICEINFO; import org.pmw.tinylog.Logger; + /** * SIP Audio Converter * @author rdkartono @@ -29,6 +30,7 @@ import org.pmw.tinylog.Logger; */ @SuppressWarnings({"unused", "ResultOfMethodCallIgnored"}) public class JSIPAudio { + private final Bass BASS = Bass.Instance; private final BassMix BASSMIX = BassMix.Instance; private final BassEnc BASSENC = BassEnc.Instance; diff --git a/src/Audio/basicfunctions.java b/src/Audio/basicfunctions.java index 4b89495..cddfe43 100644 --- a/src/Audio/basicfunctions.java +++ b/src/Audio/basicfunctions.java @@ -10,9 +10,10 @@ import Audio.Bass.BASS_DEVICEINFO; import Audio.Bass.RECORDPROC; import lombok.Getter; + @SuppressWarnings("unused") public abstract class basicfunctions { - + abstract public boolean FileConvert(String sourcefilename, int targetsamplingrate, String targetfilename); abstract public int OpenFileForStreaming(int playdevice, String sourcefilename, int targetsamplingrate); abstract public int OpenInputForStreaming(int recdevice, int targetsamplingrate); diff --git a/src/Main.java b/src/Main.java index afaf54c..51de754 100644 --- a/src/Main.java +++ b/src/Main.java @@ -1,3 +1,4 @@ +import Audio.BassSoundManagerEvent; import SBC.*; import SIP.SIP_Request; import SIP.SIP_Response; @@ -50,6 +51,44 @@ public class Main { // SIP Section client = new jSIPClient(config); + // event dari sisi Bass Sound Manager + client.SetBassSoundManagerEvent(new BassSoundManagerEvent() { + @Override + public void SoundChannelOpened() { + + } + + @Override + public void SoundChannelClosed() { + + } + + @Override + public void OutputChannelPCMData(int length, byte[] pcmdata) { + + } + + @Override + public void InputChannelPCMData(int length, byte[] pcmdata) { + + } + + @Override + public void DeviceFailure(boolean onOutput, String msg) { + + } + + @Override + public void BufferingInformation(boolean onOutput, String msg) { + + } + + @Override + public void ChannelLevel(boolean onOutput, int level) { + + } + }); + // event dari sisi protocol SIP client.SetJavaSipEvent(new javaSipEvents() { @Override public void Registering(SIP_Request req) { @@ -64,9 +103,8 @@ public class Main { Logger.info("Registered to SIP Server, Response: {}",resp); Buzzer_Off(); callLight_Idle(); - Logger.info("Calling callLight idle from RegisterSuccesful"); SipStatus = "Idle"; - CallTest("100"); + } @Override @@ -74,6 +112,7 @@ public class Main { Logger.info("Failed to register to SIP Server, Response: {}",resp); Buzzer_Off(); SipStatus = "Register Failed"; + } @Override @@ -93,7 +132,6 @@ public class Main { public void RemoteHangUp(SIP_Request req) { Logger.info("Remote Hangup, Request: {}",req); callLight_Idle(); - Logger.info("Calling callLight idle from RemoteHangUp"); Buzzer_Off(); client.HangUp(); @@ -175,10 +213,10 @@ public class Main { resp = new SocketioResponse("success", SipStatus); break; case "hangup": - if (incomingRequest!=null){ + if (incomingRequest!=null || incomingResponse!=null){ resp = new SocketioResponse("success", "Reject Incoming Call from "+incomingRequest.CallID); hangupCall(); - } else if (oncallRequest!=null){ + } else if (oncallRequest!=null || oncallResponse!=null){ resp = new SocketioResponse("success", "Hangup Call to "+oncallRequest.CallID); hangupCall(); } else { @@ -226,13 +264,14 @@ public class Main { if (callButton.isInitialized()){ callButton.setOnLongPress(vv->{ Logger.info("Call Button Long Pressed"); - pickupCall(); + //pickupCall(); + CallTest("100"); }); callButton.setOnShortPress(vv->{ Logger.info("Call Button Short Pressed"); pickupCall(); }); - } + } else Logger.error("Failed to initialize Call Button"); hangupButton = new GpioInput(NanopiDuo2.Pin14.gpionumber, true); if (hangupButton.isInitialized()){ hangupButton.setOnShortPress(vv->{ @@ -243,7 +282,7 @@ public class Main { Logger.info("Hangup Button Long Pressed"); hangupCall(); }); - } + } else Logger.error("Failed to initialize Hangup Button"); // belum ada pinout nya di PCB demo (04/12/2024) pilotLight = new GpioOutput(NanopiDuo2.Pin16.gpionumber, true); diff --git a/src/SBC/GpioInput.java b/src/SBC/GpioInput.java index 3499c8a..9225bf7 100644 --- a/src/SBC/GpioInput.java +++ b/src/SBC/GpioInput.java @@ -46,38 +46,52 @@ public class GpioInput { public GpioInput(int gpionumber, final boolean activeLow){ if (gpionumber>0){ if (HaveGPIO()){ - if (WriteFile(gpioExportPath,gpionumber)){ - valuePath = gpioPath.resolve("gpio"+gpionumber).resolve("value"); - directionPath = gpioPath.resolve("gpio"+gpionumber).resolve("direction"); - if (Files.exists(valuePath) && Files.exists(directionPath)){ - if (WriteFile(directionPath,"in")){ - this.gpionumber = gpionumber; - initialized = true; - new Thread(()->{ - while(initialized){ - try{ - Thread.sleep(10); - } catch (Exception ignored) {} - String value = ReadFile(valuePath); - if (Objects.equals(value,activeLow?"0":"1")){ - OnCounter.incrementAndGet(); - } else { - int vv = OnCounter.getAndSet(0); - if (vv>= shortPressTime){ - if (vv < longPressTime){ - updateShortPressed(); - } else { - updateLongPressed(); - } + if (!GpioExists(gpionumber)) { + // belum ada + if (!WriteFile(gpioExportPath, gpionumber)){ + // gak bisa export + Logger.info("Failed to export GPIO: {}",gpionumber); + return; + } + // sampe sini bisa export + } + // sampe sini folder gpio ada + + valuePath = gpioPath.resolve("gpio"+gpionumber).resolve("value"); + directionPath = gpioPath.resolve("gpio"+gpionumber).resolve("direction"); + if (Files.exists(valuePath) && Files.exists(directionPath)){ + if (WriteFile(directionPath,"in")){ + this.gpionumber = gpionumber; + initialized = true; + new Thread(()->{ + while(initialized){ + try{ + Thread.sleep(10); + } catch (Exception ignored) {} + String value = ReadFile(valuePath); + + if (value.trim().equals(activeLow?"0":"1")){ + OnCounter.incrementAndGet(); + //Logger.info("GPIO Input Activated : {} - {}",gpionumber,oc); + } else { + int vv = OnCounter.getAndSet(0); + if (vv>= shortPressTime){ + //Logger.info("GPIO Input: {} - {}",gpionumber,vv); + if (vv < longPressTime){ + //Logger.info("Short Pressed: {}",gpionumber); + updateShortPressed(); + } else { + //Logger.info("Long Pressed: {}",gpionumber); + updateLongPressed(); } - // di bawah shortPressTime, diabaikan } + // di bawah shortPressTime, diabaikan } - }).start(); - Logger.info("GPIO Input created: {}",gpionumber); - } else Logger.info("Failed to set direction to in: {}",gpionumber); - } else Logger.info("Failed to export GPIO: {}",gpionumber); - } else Logger.info("Failed to write export GPIO: {}",gpionumber); + } + }).start(); + Logger.info("GPIO Input created: {}",gpionumber); + } else Logger.info("Failed to set direction to in: {}",gpionumber); + } else Logger.info("Failed to export GPIO: {}",gpionumber); } else Logger.info("Dont have GPIO path"); } else Logger.info("Platform is not Linux"); } diff --git a/src/SBC/GpioOutput.java b/src/SBC/GpioOutput.java index 65082b8..e94e9fa 100644 --- a/src/SBC/GpioOutput.java +++ b/src/SBC/GpioOutput.java @@ -26,19 +26,28 @@ public class GpioOutput { public GpioOutput(int gpionumber,boolean activeHigh){ if (gpionumber>0){ if (HaveGPIO()){ - if (WriteFile(gpioExportPath,gpionumber)){ - valuePath = gpioPath.resolve("gpio"+gpionumber).resolve("value"); - directionPath = gpioPath.resolve("gpio"+gpionumber).resolve("direction"); - if (Files.exists(valuePath) && Files.exists(directionPath)){ - if (WriteFile(directionPath,"out")){ - this.activeHigh = activeHigh; - this.gpionumber = gpionumber; - initialized = true; - SetValue(false); - Logger.info("GPIO Output created: {}",gpionumber); - } else Logger.info("Failed to set direction to in: {}",gpionumber); - } else Logger.info("Failed to export GPIO: {}",gpionumber); - } else Logger.info("Failed to write export GPIO: {}",gpionumber); + if (!GpioExists(gpionumber)){ + // belum ada + if (!WriteFile(gpioExportPath,gpionumber)){ + // gak bisa export + Logger.info("Failed to export GPIO: {}",gpionumber); + return; + } + // sampe sini bisa export + } + // sampe sini folder gpio ada + valuePath = gpioPath.resolve("gpio"+gpionumber).resolve("value"); + directionPath = gpioPath.resolve("gpio"+gpionumber).resolve("direction"); + if (Files.exists(valuePath) && Files.exists(directionPath)){ + if (WriteFile(directionPath,"out")){ + this.activeHigh = activeHigh; + this.gpionumber = gpionumber; + initialized = true; + SetValue(false); + Logger.info("GPIO Output created: {}",gpionumber); + } else Logger.info("Failed to set direction to in: {}",gpionumber); + } else Logger.info("Failed to export GPIO: {}",gpionumber); + } else Logger.info("Dont have GPIO path"); } else Logger.info("Platform is not Linux"); } diff --git a/src/SIP/jSIPClient.java b/src/SIP/jSIPClient.java index 3090b11..2f69c23 100644 --- a/src/SIP/jSIPClient.java +++ b/src/SIP/jSIPClient.java @@ -5,10 +5,7 @@ import java.util.Properties; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; -import Audio.BassFileReader; -import Audio.BassFileReaderListener; -import Audio.BassSoundManager; -import Audio.BassSoundManagerListener; +import Audio.*; import code.common; import lombok.Getter; @@ -42,17 +39,16 @@ public class jSIPClient { @Getter private String Username; @Getter private String Password; - public CustomConfig cc = new CustomConfig(); private EventManager em; - - private javaSipEvents jse; + private BassSoundManagerEvent bsme; private BassFileReaderListener bfrl; private final ExecutorService exec = Executors.newSingleThreadExecutor(); - + + /** * Connect to SIP Server @@ -60,15 +56,12 @@ public class jSIPClient { */ public boolean Connect() { Disconnect(); - if (cc==null) { - System.out.println("Creating Custom Config"); - cc = new CustomConfig(); - } else System.out.println("Custom Config already created"); + if (cc==null) cc = new CustomConfig(); cc.setDomain(serverAddress); cc.setUserPart(Username); cc.setPassword(Password); cc.SetLocalInetAddress("0.0.0.0"); - em = new EventManager(cc); + em = new EventManager(cc,bsme); return false; } @@ -76,6 +69,10 @@ public class jSIPClient { public void SetJavaSipEvent(javaSipEvents xx) { this.jse = xx; } + + public void SetBassSoundManagerEvent(BassSoundManagerEvent xx) { + this.bsme = xx; + } public void SetBassFileReaderListener(BassFileReaderListener xx) { this.bfrl = xx; @@ -244,76 +241,64 @@ public class jSIPClient { private boolean all_success; //JavaxSoundManager jsm; BassSoundManager jsm; - - public EventManager(final CustomConfig xx) { + BassSoundManagerEvent bsme; + public EventManager(final CustomConfig xx, final BassSoundManagerEvent bsme) { + this.bsme = bsme; all_success = false; //Logger lg = new FileLogger(null); - Logger lg = null; +// Logger lg = null; // jsm = new JavaxSoundManager(false, lg, null); - jsm = new BassSoundManager(1,0, new BassSoundManagerListener() { + jsm = new BassSoundManager("H3 Audio","H3 Audio", new BassSoundManagerListener() { @Override public void Opened() { raise_log_event("BassSoundManager Opened"); - raise_soundchannelopened_event(); + if (bsme!=null) bsme.SoundChannelOpened(); } @Override public void Closed() { raise_log_event("BassSoundManager Closed"); - raise_soundchannelclosed_event(); + if (bsme!=null) bsme.SoundChannelClosed(); } @Override public void log_info(String msg) { - raise_log_event("BassSoundManager info : "+msg); + Logger.info("BassSoundManager info : "+msg); } @Override public void log_error(String msg) { - raise_log_event("BassSoundManager error : "+msg); - + Logger.error("BassSoundManager error : "+msg); } @Override public void WriteFromRTP(int length, byte[] pcmdata) { // buat debugging aja, kalau dikeluarin, spamming log //raise_log_event("BassSoundmanager WriteFromRTP "+length+" bytes"); - raise_outputchannelpcmdata_event(length, pcmdata); + if (bsme!=null) bsme.OutputChannelPCMData(length, pcmdata); } @Override public void ReadToRTP(int length, byte[] pcmdata) { // buat debugging aja, kalau dikeluarin, spamming log //raise_log_event("BassSoundManager ReadToRTP "+length+" bytes"); - raise_inputchannelpcmdata_event(length, pcmdata); + if (bsme!=null) bsme.InputChannelPCMData(length, pcmdata); } @Override public void DeviceFailure(String msg) { - raise_log_event("BassSondManager DeviceFailure : "+msg); - if (msg.contains("OutputChannel")) - raise_outputchanneldevicefailure_event(); - else if (msg.contains("InputChannel")) - raise_inputchanneldevicefailure_event(); + if (bsme!=null) bsme.DeviceFailure(msg.contains("OutputChannel"), msg); } @Override public void BufferingInformation(String msg) { - raise_log_event("BassSoundManager BufferingInformation : "+msg); - if (msg.contains("OutputChannel")) - raise_outputchannelbuffering_event(msg); - else if (msg.contains("InputChannel")) - raise_inputchannelbuffering_event(msg); + if (bsme!=null) bsme.BufferingInformation(msg.contains("OutputChannel"), msg); } @Override public void ChannelLevel(boolean is_input, int value) { - if (is_input) - raise_inputchannellevel_event(value); - else - raise_outputchannellevel_event(value); - + if (bsme!=null) bsme.ChannelLevel(!is_input, value); } }); @@ -573,46 +558,7 @@ public class jSIPClient { if (jse!=null) jse.CalleePickup(resp); } - private void raise_inputchanneldevicefailure_event(){ - //if (need_inputchanneldevicefailure_event) ba.raiseEventFromDifferentThread(Me, null, 0,event+"_inputchanneldevicefailure", false,null ); - } - - private void raise_inputchannelbuffering_event(String msg) { - //if (need_inputchannelbuffering_event) ba.raiseEventFromDifferentThread(Me, null, 0, event+"_inputchannelbuffering", false, new Object[] {msg}); - } - - private void raise_inputchannelpcmdata_event(int length, byte[] bb) { - //if (need_inputchannelpcmdata_event) ba.raiseEventFromDifferentThread(Me, null, 0, event+"_inputchannelpcmdata", false, new Object[] {length, bb}); - } - - private void raise_outputchanneldevicefailure_event(){ - //if (need_outputchanneldevicefailure_event) ba.raiseEventFromDifferentThread(Me, null, 0,event+"_outputchanneldevicefailure", false,null ); - } - - private void raise_outputchannelbuffering_event(String msg) { - //if (need_outputchannelbuffering_event) ba.raiseEventFromDifferentThread(Me, null, 0, event+"_outputchannelbuffering", false, new Object[] {msg}); - } - - private void raise_outputchannelpcmdata_event(int length, byte[] bb) { - //if (need_outputchannelpcmdata_event) ba.raiseEventFromDifferentThread(Me, null, 0, event+"_outputchannelpcmdata", false, new Object[] {length, bb}); - } - - private void raise_soundchannelclosed_event() { - //if (need_soundchannelclosed_event) ba.raiseEventFromDifferentThread(Me, null, 0, event+"_soundchannelclosed", false, null); - } - - private void raise_soundchannelopened_event() { - //if (need_soundchannelopened_event) ba.raiseEventFromDifferentThread(Me, null, 0,event+"_soundchannelopened", false, null); - } - - private void raise_inputchannellevel_event(int value) { - //if (need_inputchannellevel_event) ba.raiseEventFromDifferentThread(Me, null, 0, event+"_inputchannellevel", false, new Object[] {value}); - } - - private void raise_outputchannellevel_event(int value) { - //if (need_outputchannellevel_event) ba.raiseEventFromDifferentThread(Me, null, 0, event+"_outputchannellevel", false, new Object[] {value}); - } @@ -620,8 +566,6 @@ public class jSIPClient { serverAddress = GetProperties_StringValue(prop,"SipServer","rdkartono.ddns.me"); Username = GetProperties_StringValue(prop,"SipUsername","101"); Password = GetProperties_StringValue(prop,"SipPassword","password101"); - Logger.info("SipServer: "+serverAddress); - Logger.info("SipUsername: "+Username); - Logger.info("SipPassword: "+Password); + Logger.info("SIP Server={}, Username={}, Password={}", serverAddress, Username, Password); } } diff --git a/src/Webpage/WebServer.java b/src/Webpage/WebServer.java index 12ed838..adb084a 100644 --- a/src/Webpage/WebServer.java +++ b/src/Webpage/WebServer.java @@ -18,7 +18,7 @@ public class WebServer { webusername = GetProperties_StringValue(prop,"WebUsername", "admin"); webpassword = GetProperties_StringValue(prop,"WebPassword", "admin"); - app = Javalin.create(config -> config.addStaticFiles("/public", Location.CLASSPATH)).start(listenport); + app = Javalin.create(config -> config.addStaticFiles("/public", Location.CLASSPATH)); app.get("/", ctx ->{ if (Objects.equals(ctx.sessionAttribute("username"), webusername)){ ctx.redirect("/index.html"); diff --git a/src/code/common.java b/src/code/common.java index 6885c6f..12ea4dc 100644 --- a/src/code/common.java +++ b/src/code/common.java @@ -1,7 +1,6 @@ package code; import com.google.gson.Gson; -import com.sun.jna.Native; import com.sun.jna.Platform; import org.jetbrains.annotations.NotNull; import org.pmw.tinylog.Logger; @@ -13,6 +12,7 @@ import java.io.File; import java.io.FileInputStream; import java.io.InputStream; import java.nio.file.Files; +import java.nio.file.LinkOption; import java.nio.file.Path; import java.nio.file.Paths; import java.util.Properties; @@ -27,6 +27,16 @@ public class common { public static final double MB_threshold = 1024.0 * 1024.0; public static final double GB_threshold = 1024.0 * 1024.0 * 1024.0; + public static boolean GpioExists(int gpionumber){ + Path xx = gpioPath.resolve("gpio"+gpionumber); + if (Files.isDirectory(xx)){ + if (Files.isRegularFile(xx.resolve("value"))){ + return Files.isRegularFile(xx.resolve("direction")); + } + } + return false; + } + public static String GetProperties_StringValue(Properties prop, String key, String defaultavalue){ if (prop!=null){ if (ValidString(key)){ @@ -61,6 +71,7 @@ public class common { } } + /** * Extract properties file from resource path * @param directory destination directory @@ -74,14 +85,16 @@ public class common { Logger.info("Properties file already exists: {}",filename); return; } - File source = Native.extractFromResourcePath(filename); + // delete existing file + if (dest.isFile()) Logger.info("Delete old {} : {}",filename,dest.delete()); + + InputStream source = common.class.getResourceAsStream("/"+filename); if (source==null){ Logger.error("Failed to extract properties file: {}",filename); return; } - if (source.renameTo(dest)) - Logger.info("Extracted properties file: {}",filename); - else Logger.error("Failed to rename properties file: {}",filename); + Files.copy(source,dest.toPath()); + Logger.info("Extracted properties file: {}",filename); } catch (Exception e) { Logger.error("Failed to extract properties file: {}",filename); } @@ -114,7 +127,6 @@ public class common { public static boolean SaveProperties(String directory, String filename, Properties prop){ try { File file = new File(directory,filename); - file.createNewFile(); prop.store(Files.newOutputStream(file.toPath()),""); Logger.info("Saved properties file: {}",filename); return true; diff --git a/src/peers/media/MediaManager.java b/src/peers/media/MediaManager.java index a2c8737..baa4c6d 100644 --- a/src/peers/media/MediaManager.java +++ b/src/peers/media/MediaManager.java @@ -241,13 +241,16 @@ public class MediaManager { switch (userAgent.getMediaMode()) { case file: case captureAndPlayback: - try { - InetAddress inetAddress = InetAddress.getByName(destAddress); - rtpSession.setRemoteAddress(inetAddress); - } catch (UnknownHostException e) { - Logger.error("unknown host: " + destAddress, e); + if (rtpSession!=null){ + try { + InetAddress inetAddress = InetAddress.getByName(destAddress); + rtpSession.setRemoteAddress(inetAddress); + rtpSession.setRemotePort(destPort); + } catch (UnknownHostException e) { + Logger.error("unknown host: " + destAddress, e); + } } - rtpSession.setRemotePort(destPort); + break; case echo: //TODO update echo socket