Add option to download vocoder file via http

pull/2/head
Doug McLain 3 years ago
parent f5447aee1c
commit a2ab3b53c1

@ -41,6 +41,7 @@ Item {
"\nPlatform:\t" + droidstar.get_platform() + "\nPlatform:\t" + droidstar.get_platform() +
"\nArchitecture:\t" + droidstar.get_arch() + "\nArchitecture:\t" + droidstar.get_arch() +
"\nBuild ABI:\t" + droidstar.get_build_abi() + "\nBuild ABI:\t" + droidstar.get_build_abi() +
"\n\nProject page: https://github.com/nostar/DroidStar" +
"\n\nCopyright (C) 2019-2021 Doug McLain AD8DP\n" + "\n\nCopyright (C) 2019-2021 Doug McLain AD8DP\n" +
"This program is free software; " + "This program is free software; " +
"you can redistribute it and/or modify it under the terms of the GNU General " + "you can redistribute it and/or modify it under the terms of the GNU General " +

@ -1,6 +1,6 @@
<?xml version="1.0" encoding="UTF-8"?> <?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE QtCreatorProject> <!DOCTYPE QtCreatorProject>
<!-- Written by QtCreator 5.0.2, 2021-11-02T16:12:08. --> <!-- Written by QtCreator 5.0.2, 2021-11-03T13:32:41. -->
<qtcreator> <qtcreator>
<data> <data>
<variable>EnvironmentId</variable> <variable>EnvironmentId</variable>
@ -88,29 +88,44 @@
<data> <data>
<variable>ProjectExplorer.Project.Target.0</variable> <variable>ProjectExplorer.Project.Target.0</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Desktop</value> <value type="QString" key="DeviceType">Android.Device.Type</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.2 GCC 64bit</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Android Qt 5.15.2 Clang Multi-Abi</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.2 GCC 64bit</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Android Qt 5.15.2 Clang Multi-Abi</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5152.gcc_64_kit</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{955eaf34-57a0-4cce-b8ac-8097bc82fcb9}</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value> <value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Debug</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Debug</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/> <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis">
<value type="QString">armeabi-v7a</value>
</valuelist>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-31</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
@ -135,20 +150,36 @@
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Release</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Release</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/> <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis">
<value type="QString">armeabi-v7a</value>
<value type="QString">arm64-v8a</value>
</valuelist>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-29</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
@ -175,8 +206,8 @@
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value> <value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Profile</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Profile</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -188,7 +219,20 @@
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-31</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
@ -217,7 +261,11 @@
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value> <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidDeployQtStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
@ -225,25 +273,39 @@
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/> <valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value> <value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidDeployConfiguration2</value>
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings">
<valuelist type="QVariantList" key="AndroidDeviceAbis">
<value type="QString">arm64-v8a</value>
<value type="QString">armeabi-v7a</value>
<value type="QString">armeabi</value>
</valuelist>
<value type="QString" key="AndroidDeviceSerialNumber">192.168.1.69:55555</value>
<value type="int" key="AndroidVersion.ApiLevel">30</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="QString" key="Analyzer.Valgrind.SelfModifyingCodeDetection">2</value> <value type="QString" key="Analyzer.Valgrind.SelfModifyingCodeDetection">2</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Android.PostStartShellCmdListKey">
<value type="QString"></value>
</valuelist>
<valuelist type="QVariantList" key="Android.PreStartShellCmdListKey">
<value type="QString"></value>
</valuelist>
<valuelist type="QVariantList" key="CustomOutputParsers"/> <valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">2</value> <value type="int" key="PE.EnvironmentAspect.Base">0</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">DroidStar</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidRunConfiguration:/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value> <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value> <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Debug</value>
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> <value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
</valuemap> </valuemap>
@ -251,44 +313,29 @@
<data> <data>
<variable>ProjectExplorer.Project.Target.1</variable> <variable>ProjectExplorer.Project.Target.1</variable>
<valuemap type="QVariantMap"> <valuemap type="QVariantMap">
<value type="QString" key="DeviceType">Android.Device.Type</value> <value type="QString" key="DeviceType">Desktop</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Android Qt 5.15.2 Clang Multi-Abi</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Android Qt 5.15.2 Clang Multi-Abi</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">{955eaf34-57a0-4cce-b8ac-8097bc82fcb9}</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5152.gcc_64_kit</value>
<value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">1</value> <value type="int" key="ProjectExplorer.Target.ActiveBuildConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveDeployConfiguration">0</value>
<value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value> <value type="int" key="ProjectExplorer.Target.ActiveRunConfiguration">0</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
<value type="int" key="EnableQmlDebugging">0</value> <value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Debug</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Debug</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Debug</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Debug</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"> <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
<value type="QString">armeabi-v7a</value>
</valuelist>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2"> <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-31</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
@ -313,36 +360,20 @@
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value> <value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1">
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Release</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Release</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Release</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Release</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> <value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"> <valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
<value type="QString">armeabi-v7a</value>
<value type="QString">arm64-v8a</value>
</valuelist>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2"> <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-29</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
@ -369,8 +400,8 @@
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
<value type="int" key="EnableQmlDebugging">0</value> <value type="int" key="EnableQmlDebugging">0</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Profile</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Profile</value>
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Android_Qt_5_15_2_Clang_Multi_Abi-Profile</value> <value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory.shadowDir">/mnt/data/src/qt-projects/build-DroidStar-Desktop_Qt_5_15_2_GCC_64bit-Profile</value>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0">
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
@ -382,20 +413,7 @@
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> <value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
</valuemap> </valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.2"> <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Copy application data</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidPackageInstallationStep</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.3">
<value type="QString" key="BuildTargetSdk">android-31</value>
<value type="QString" key="KeystoreLocation"></value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build Android APK</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QmakeProjectManager.AndroidBuildApkStep</value>
<value type="bool" key="VerboseOutput">false</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">4</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Build</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Build</value>
@ -424,11 +442,7 @@
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value> <value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0"> <valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.0"> <value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</value>
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidDeployQtStep</value>
</valuemap>
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Deploy</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value>
@ -436,37 +450,22 @@
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> <value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/> <valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value> <value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidDeployConfiguration2</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
</valuemap> </valuemap>
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value> <value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.PluginSettings">
<valuelist type="QVariantList" key="AndroidDeviceAbis">
<value type="QString">arm64-v8a</value>
<value type="QString">armeabi-v7a</value>
<value type="QString">armeabi</value>
</valuelist>
<value type="QString" key="AndroidDeviceSerialNumber">R38N502YWQJ</value>
<value type="int" key="AndroidVersion.ApiLevel">30</value>
</valuemap>
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> <valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value>
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value>
<value type="QString" key="Analyzer.Valgrind.SelfModifyingCodeDetection">2</value> <value type="QString" key="Analyzer.Valgrind.SelfModifyingCodeDetection">2</value>
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> <value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
<valuelist type="QVariantList" key="Android.PostStartShellCmdListKey">
<value type="QString"></value>
</valuelist>
<valuelist type="QVariantList" key="Android.PreStartShellCmdListKey">
<value type="QString"></value>
</valuelist>
<valuelist type="QVariantList" key="CustomOutputParsers"/> <valuelist type="QVariantList" key="CustomOutputParsers"/>
<value type="int" key="PE.EnvironmentAspect.Base">0</value> <value type="int" key="PE.EnvironmentAspect.Base">2</value>
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> <valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">DroidStar</value> <value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value>
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.AndroidRunConfiguration:/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value>
<value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value> <value type="QString" key="ProjectExplorer.RunConfiguration.BuildKey">/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value>
<value type="bool" key="RunConfiguration.UseCppDebugger">false</value> <value type="bool" key="RunConfiguration.UseCppDebugger">false</value>
<value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseCppDebuggerAuto">true</value>
<value type="bool" key="RunConfiguration.UseLibrarySearchPath">true</value>
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> <value type="bool" key="RunConfiguration.UseQmlDebugger">false</value>
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> <value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value>
</valuemap> </valuemap>

@ -17,16 +17,18 @@ There is a vocoder plugin API available for loading of vocoder software. Any vo
# Loading a vocoder plugin # Loading a vocoder plugin
A vocoder plugin is placed in the standard Download location for the given platform: A vocoder plugin is placed in the standard Download location for the given platform:
Linux: ~/Downloads - Linux: ~/Downloads
MacOS: ~/Downloads - MacOS: ~/Downloads
Windows: C:/Users/<USER>/Documents - Windows: C:/Users/User/Documents
Android: /storage/emulated/0/Download (typically referred to as Internal storage -> Download - Android: /storage/emulated/0/Download (typically referred to as Internal storage -> Download
The vocoder plugin filename must be named vocoder_plugin.<platform>.<arch> where platform and arch can be any of the following: A vocoder can also be downloaded from a URL. Add a full http url, including the filename, to the Vocoder URL option on the settings tab, and click the Download vocoder button.
The vocoder plugin filename must be named vocoder_plugin.platform.arch where platform and arch can be any of the following:
platform: linux, darwin, winnt, android, ios platform: linux, darwin, winnt, android, ios
arch: x86_64, arm, arm64 arch: x86_64, arm, arm64
There are no software vocoder plugins available in this repository. There are no software vocoder plugins available in this repository, and I have no information on obtaining one. DONT ASK!
# Optional FLite Text-to-speech build # Optional FLite Text-to-speech build
I added Flite TTS TX capability so I didn't have to talk to myself all of the time during development and testing. To build DroidStar with Flite TTS support, uncomment the line 'DEFINES += USE_FLITE' from the top of DroidStar.pro (and run/re-run qmake). You will need the Flite library and development header files installed on your system. When built with Flite support, 3 TTS options and a Mic in option will be available at the bottom of the window. TTS1-TTS3 are 3 voice choices, and Mic in turns off TTS and uses the microphone for input. The text to be converted to speech and transmitted goes in the text box under the TTS options. I added Flite TTS TX capability so I didn't have to talk to myself all of the time during development and testing. To build DroidStar with Flite TTS support, uncomment the line 'DEFINES += USE_FLITE' from the top of DroidStar.pro (and run/re-run qmake). You will need the Flite library and development header files installed on your system. When built with Flite support, 3 TTS options and a Mic in option will be available at the bottom of the window. TTS1-TTS3 are 3 voice choices, and Mic in turns off TTS and uses the microphone for input. The text to be converted to speech and transmitted goes in the text box under the TTS options.

@ -73,8 +73,8 @@ Item {
Flickable { Flickable {
anchors.fill: parent anchors.fill: parent
contentWidth: parent.width contentWidth: parent.width
contentHeight: _modemNXDNTXLevelLabel.y + contentHeight: vocoderButton.y +
_modemNXDNTXLevelLabel.height + 10 vocoderButton.height + 10
flickableDirection: Flickable.VerticalFlick flickableDirection: Flickable.VerticalFlick
clip: true clip: true
@ -507,17 +507,6 @@ Item {
updateDialog.open() updateDialog.open()
} }
} }
Button {
id: vocoderButton
x: 10
y: 670
width: 150
height: 30
text: qsTr("Vocoder Plugin")
onClicked: {
//vocoderDialog.open()
}
}
Text { Text {
id: mycallLabel id: mycallLabel
x: 10 x: 10
@ -1026,5 +1015,35 @@ Item {
selectByMouse: true selectByMouse: true
inputMethodHints: "ImhPreferNumbers" inputMethodHints: "ImhPreferNumbers"
} }
Text {
id: _vocoderURLlabel
x: 10
y: 1550
width: 80
height: 25
text: qsTr("Vocoder URL")
color: "white"
verticalAlignment: Text.AlignVCenter
}
TextField {
id: _vocoderURLEdit
x: 100
y: 1550
width: parent.width - 110
height: 25
selectByMouse: true
}
Button {
id: vocoderButton
x: 10
y: 1580
width: 150
height: 30
text: qsTr("Download vocoder")
onClicked: {
droidstar.download_file(_vocoderURLEdit.text, true);
updateDialog.open();
}
}
} }
} }

@ -59,7 +59,8 @@ Codec::Codec(QString callsign, char module, QString hostname, QString host, int
m_modeinfo.frame_total = 0; m_modeinfo.frame_total = 0;
m_modeinfo.streamid = 0; m_modeinfo.streamid = 0;
m_modeinfo.stream_state = STREAM_IDLE; m_modeinfo.stream_state = STREAM_IDLE;
m_modeinfo.vocoder_loaded = false; m_modeinfo.sw_vocoder_loaded = false;
m_modeinfo.hw_vocoder_loaded = false;
#ifdef USE_FLITE #ifdef USE_FLITE
flite_init(); flite_init();
voice_slt = register_cmu_us_slt(nullptr); voice_slt = register_cmu_us_slt(nullptr);

@ -80,7 +80,8 @@ public:
int count; int count;
uint32_t streamid; uint32_t streamid;
bool mode; bool mode;
bool vocoder_loaded; bool sw_vocoder_loaded;
bool hw_vocoder_loaded;
} m_modeinfo; } m_modeinfo;
enum{ enum{
DISCONNECTED, DISCONNECTED,

@ -67,10 +67,11 @@ void DCSCodec::process_udp()
if( (m_modeinfo.status == CONNECTING) && (size == 14) && (!memcmp(buf.data()+10, "ACK", 3)) ){ if( (m_modeinfo.status == CONNECTING) && (size == 14) && (!memcmp(buf.data()+10, "ACK", 3)) ){
qDebug() << "Connected to DCS"; qDebug() << "Connected to DCS";
m_modeinfo.status = CONNECTED_RW; m_modeinfo.status = CONNECTED_RW;
m_modeinfo.vocoder_loaded = load_vocoder_plugin(); m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
if(m_vocoder != ""){ if(m_vocoder != ""){
m_hwrx = true; m_hwrx = true;
m_hwtx = true; m_hwtx = true;
m_modeinfo.hw_vocoder_loaded = true;
m_ambedev = new SerialAMBE("DCS"); m_ambedev = new SerialAMBE("DCS");
m_ambedev->connect_to_serial(m_vocoder); m_ambedev->connect_to_serial(m_vocoder);
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe())); connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
@ -412,7 +413,7 @@ void DCSCodec::transmit()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->encode_2400x1200(pcm, ambe); m_mbevocoder->encode_2400x1200(pcm, ambe);
} }
send_frame(ambe); send_frame(ambe);
@ -588,7 +589,7 @@ void DCSCodec::process_rx_data()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->decode_2400x1200(pcm, ambe); m_mbevocoder->decode_2400x1200(pcm, ambe);
} }
else{ else{

@ -308,7 +308,7 @@ void DMRCodec::setup_connection()
{ {
m_modeinfo.status = CONNECTED_RW; m_modeinfo.status = CONNECTED_RW;
//m_mbeenc->set_gain_adjust(2.5); //m_mbeenc->set_gain_adjust(2.5);
m_modeinfo.vocoder_loaded = load_vocoder_plugin(); m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
m_txtimer = new QTimer(); m_txtimer = new QTimer();
connect(m_txtimer, SIGNAL(timeout()), this, SLOT(transmit())); connect(m_txtimer, SIGNAL(timeout()), this, SLOT(transmit()));
m_rxtimer = new QTimer(); m_rxtimer = new QTimer();
@ -319,6 +319,7 @@ void DMRCodec::setup_connection()
if(m_vocoder != ""){ if(m_vocoder != ""){
m_hwrx = true; m_hwrx = true;
m_hwtx = true; m_hwtx = true;
m_modeinfo.hw_vocoder_loaded = true;
m_ambedev = new SerialAMBE("DMR"); m_ambedev = new SerialAMBE("DMR");
m_ambedev->connect_to_serial(m_vocoder); m_ambedev->connect_to_serial(m_vocoder);
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe())); connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
@ -483,7 +484,7 @@ void DMRCodec::transmit()
m_ambedev->encode(pcm); m_ambedev->encode(pcm);
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->encode_2450x1150(pcm, ambe); m_mbevocoder->encode_2450x1150(pcm, ambe);
} }
for(int i = 0; i < 9; ++i){ for(int i = 0; i < 9; ++i){
@ -958,7 +959,7 @@ void DMRCodec::process_rx_data()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->decode_2450x1150(pcm, ambe); m_mbevocoder->decode_2450x1150(pcm, ambe);
} }
else{ else{

@ -124,17 +124,29 @@ void DroidStar::discover_devices()
} }
} }
void DroidStar::download_file(QString f) void DroidStar::download_file(QString f, bool u)
{ {
HttpManager *http = new HttpManager(f); qDebug() << "download_file() " << f << ":" << u;
HttpManager *http = new HttpManager(f, u);
QThread *httpThread = new QThread; QThread *httpThread = new QThread;
http->moveToThread(httpThread); http->moveToThread(httpThread);
connect(httpThread, SIGNAL(started()), http, SLOT(process())); connect(httpThread, SIGNAL(started()), http, SLOT(process()));
connect(http, SIGNAL(file_downloaded(QString)), this, SLOT(file_downloaded(QString))); if(u){
connect(http, SIGNAL(file_downloaded(QString)), this, SLOT(url_downloaded(QString)));
}
else{
connect(http, SIGNAL(file_downloaded(QString)), this, SLOT(file_downloaded(QString)));
}
connect(httpThread, SIGNAL(finished()), http, SLOT(deleteLater())); connect(httpThread, SIGNAL(finished()), http, SLOT(deleteLater()));
httpThread->start(); httpThread->start();
} }
void DroidStar::url_downloaded(QString url)
{
qDebug() << "DudeStar::url_downloaded() " << url;
emit update_log("Downloaded " + url);
}
void DroidStar::file_downloaded(QString filename) void DroidStar::file_downloaded(QString filename)
{ {
qDebug() << "DudeStar::file_downloaded() " << filename; qDebug() << "DudeStar::file_downloaded() " << filename;
@ -1349,7 +1361,7 @@ void DroidStar::update_ref_data(Codec::MODEINFO info)
if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module); if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module);
emit update_log("Connected to DStar " + m_host + " " + m_hostname + ":" + QString::number(m_port)); emit update_log("Connected to DStar " + m_host + " " + m_hostname + ":" + QString::number(m_port));
if(info.vocoder_loaded){ if(info.sw_vocoder_loaded){
emit update_log("Vocoder plugin loaded"); emit update_log("Vocoder plugin loaded");
} }
else{ else{
@ -1404,7 +1416,7 @@ void DroidStar::update_dcs_data(Codec::MODEINFO info)
if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module); if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module);
emit update_log("Connected to DStar " + m_host + " " + m_hostname + ":" + QString::number(m_port)); emit update_log("Connected to DStar " + m_host + " " + m_hostname + ":" + QString::number(m_port));
if(info.vocoder_loaded){ if(info.sw_vocoder_loaded){
emit update_log("Vocoder plugin loaded"); emit update_log("Vocoder plugin loaded");
} }
else{ else{
@ -1460,7 +1472,7 @@ void DroidStar::update_xrf_data(Codec::MODEINFO info)
if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module); if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module);
emit update_log("Connected to DStar " + m_host + " " + m_hostname + ":" + QString::number(m_port)); emit update_log("Connected to DStar " + m_host + " " + m_hostname + ":" + QString::number(m_port));
if(info.vocoder_loaded){ if(info.sw_vocoder_loaded){
emit update_log("Vocoder plugin loaded"); emit update_log("Vocoder plugin loaded");
} }
else{ else{
@ -1507,7 +1519,7 @@ void DroidStar::update_nxdn_data(Codec::MODEINFO info)
emit swrx_state(!m_nxdn->get_hwrx()); emit swrx_state(!m_nxdn->get_hwrx());
emit update_log("Connected to " + m_protocol + " " + m_host + " " + m_hostname + ":" + QString::number(m_port)); emit update_log("Connected to " + m_protocol + " " + m_host + " " + m_hostname + ":" + QString::number(m_port));
if(info.vocoder_loaded){ if(info.sw_vocoder_loaded){
emit update_log("Vocoder plugin loaded"); emit update_log("Vocoder plugin loaded");
} }
else{ else{
@ -1570,7 +1582,7 @@ void DroidStar::update_dmr_data(Codec::MODEINFO info)
emit swrx_state(!m_dmr->get_hwrx()); emit swrx_state(!m_dmr->get_hwrx());
emit update_log("Connected to " + m_protocol + " " + m_host + " " + m_hostname + ":" + QString::number(m_port)); emit update_log("Connected to " + m_protocol + " " + m_host + " " + m_hostname + ":" + QString::number(m_port));
if(info.vocoder_loaded){ if(info.sw_vocoder_loaded){
emit update_log("Vocoder plugin loaded"); emit update_log("Vocoder plugin loaded");
} }
else{ else{
@ -1620,11 +1632,14 @@ void DroidStar::update_ysf_data(Codec::MODEINFO info)
emit swrx_state(!m_ysf->get_hwrx()); emit swrx_state(!m_ysf->get_hwrx());
emit update_log("Connected to " + m_protocol + " " + m_host + " " + m_hostname + ":" + QString::number(m_port)); emit update_log("Connected to " + m_protocol + " " + m_host + " " + m_hostname + ":" + QString::number(m_port));
if(info.vocoder_loaded){ if(info.sw_vocoder_loaded){
emit update_log("Vocoder plugin loaded"); emit update_log("Vocoder plugin loaded");
} }
else{ else{
emit update_log("No vocoder plugin found"); emit update_log("No vocoder plugin found");
if(!info.hw_vocoder_loaded) {
emit open_vocoder_dialog();
}
} }
} }
m_statustxt = "Host: " + m_hostname + ":" + QString::number(m_port) + " Cnt: " + QString::number(info.count); m_statustxt = "Host: " + m_hostname + ":" + QString::number(m_port) + " Cnt: " + QString::number(info.count);

@ -43,6 +43,7 @@ signals:
void module_changed(char); void module_changed(char);
void update_data(); void update_data();
void update_log(QString); void update_log(QString);
void open_vocoder_dialog();
void update_settings(); void update_settings();
void connect_status_changed(int c); void connect_status_changed(int c);
void in_audio_vol_changed(qreal); void in_audio_vol_changed(qreal);
@ -233,8 +234,9 @@ public slots:
QString get_build_abi() { return QSysInfo::buildAbi(); } QString get_build_abi() { return QSysInfo::buildAbi(); }
QString get_software_build() { return VERSION_NUMBER; } QString get_software_build() { return VERSION_NUMBER; }
void download_file(QString); void download_file(QString, bool u = false);
void file_downloaded(QString); void file_downloaded(QString);
void url_downloaded(QString);
unsigned short get_output_level(){ return m_outlevel; } unsigned short get_output_level(){ return m_outlevel; }
void set_output_level(unsigned short l){ m_outlevel = l; } void set_output_level(unsigned short l){ m_outlevel = l; }
private: private:

@ -17,11 +17,12 @@
#include "httpmanager.h" #include "httpmanager.h"
HttpManager::HttpManager(QString f) : QObject(nullptr) HttpManager::HttpManager(QString f, bool u) : QObject(nullptr)
{ {
m_qnam = new QNetworkAccessManager(this); m_qnam = new QNetworkAccessManager(this);
QObject::connect(m_qnam, SIGNAL(finished(QNetworkReply*)), this, SLOT(http_finished(QNetworkReply*))); QObject::connect(m_qnam, SIGNAL(finished(QNetworkReply*)), this, SLOT(http_finished(QNetworkReply*)));
m_config_path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation); m_config_path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
m_url = u;
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_WIN) #if !defined(Q_OS_ANDROID) && !defined(Q_OS_WIN)
m_config_path += "/dudetronics"; m_config_path += "/dudetronics";
#endif #endif
@ -31,13 +32,16 @@ HttpManager::HttpManager(QString f) : QObject(nullptr)
void HttpManager::process() void HttpManager::process()
{ {
QMetaObject::invokeMethod(this,"doRequest"); QMetaObject::invokeMethod(this,"doRequest");
//qDebug() << "process() called";
//send to the event loop
} }
void HttpManager::doRequest() void HttpManager::doRequest()
{ {
m_qnam->get(QNetworkRequest(QUrl("http://www.dudetronics.com/ar-dns" + m_filename))); if(m_url){
m_qnam->get(QNetworkRequest(QUrl(m_filename)));
}
else{
m_qnam->get(QNetworkRequest(QUrl("http://www.dudetronics.com/ar-dns" + m_filename)));
}
//qDebug() << "doRequest() called m_filename == " << m_filename; //qDebug() << "doRequest() called m_filename == " << m_filename;
} }
@ -51,7 +55,13 @@ void HttpManager::http_finished(QNetworkReply *reply)
return; return;
} }
else{ else{
if(m_url){
QStringList l = m_filename.split('/');
m_filename = "/" + l.at(l.size() - 1);
}
qDebug() << "m_filename = " << m_filename;
QFile *hosts_file = new QFile(m_config_path + m_filename); QFile *hosts_file = new QFile(m_config_path + m_filename);
qDebug() << "m_config_path + m_filename = " << m_config_path + m_filename;
hosts_file->open(QIODevice::WriteOnly); hosts_file->open(QIODevice::WriteOnly);
QFileInfo fileInfo(hosts_file->fileName()); QFileInfo fileInfo(hosts_file->fileName());
QString filename(fileInfo.fileName()); QString filename(fileInfo.fileName());

@ -25,7 +25,7 @@ class HttpManager : public QObject
{ {
Q_OBJECT Q_OBJECT
public: public:
explicit HttpManager(QString); explicit HttpManager(QString, bool u = false);
//void start_request(QString file); //void start_request(QString file);
signals: signals:
@ -35,6 +35,7 @@ private:
QString m_filename; QString m_filename;
QString m_config_path; QString m_config_path;
QNetworkAccessManager *m_qnam; QNetworkAccessManager *m_qnam;
bool m_url;
private slots: private slots:
void process(); void process();

@ -55,9 +55,9 @@ ApplicationWindow {
text: "Check log tab for details" text: "Check log tab for details"
} }
MessageDialog { MessageDialog {
id: disclaimerDialog id: vocoderDialog
title: "D-Star WARNING" title: "No vocoder found"
text: "DroidStar should only be used to monitor D-Star reflectors.\nDO NOT USE DROIDSTAR FOR GENERAL DSTAR TX.\nListening to D-Star reflectors is fine.\nD-Star vocoder quality is not very good, so transmitting should\nonly be done for experimentation and development purposes.\n\nYOU HAVE BEEN WARNED!" text: "No hardware or software vocoder found for this mode. You can still connect, but you will not RX or TX any audio. See the project website (url on the About tab) for info on loading a sw vocoder, or use a USB AMBE dongle (and an OTG adapter on Android devices)"
} }
TabBar { TabBar {
@ -405,6 +405,10 @@ ApplicationWindow {
function onUpdate_log(s) { function onUpdate_log(s) {
logTab.logText.append(s); logTab.logText.append(s);
} }
function onOpen_vocoder_dialog() {
vocoderDialog.open();
}
function onConnect_status_changed(c) { function onConnect_status_changed(c) {
if(c === 0){ if(c === 0){
if(mainTab.buttonTX.tx){ if(mainTab.buttonTX.tx){

@ -79,10 +79,11 @@ void NXDNCodec::process_udp()
m_ping_timer = new QTimer(); m_ping_timer = new QTimer();
connect(m_ping_timer, SIGNAL(timeout()), this, SLOT(send_ping())); connect(m_ping_timer, SIGNAL(timeout()), this, SLOT(send_ping()));
//m_mbeenc->set_gain_adjust(2.5); //m_mbeenc->set_gain_adjust(2.5);
m_modeinfo.vocoder_loaded = load_vocoder_plugin(); m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
if(m_vocoder != ""){ if(m_vocoder != ""){
m_hwrx = true; m_hwrx = true;
m_hwtx = true; m_hwtx = true;
m_modeinfo.hw_vocoder_loaded = true;
m_ambedev = new SerialAMBE("NXDN"); m_ambedev = new SerialAMBE("NXDN");
m_ambedev->connect_to_serial(m_vocoder); m_ambedev->connect_to_serial(m_vocoder);
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe())); connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
@ -312,7 +313,7 @@ void NXDNCodec::transmit()
m_ambedev->encode(pcm); m_ambedev->encode(pcm);
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->encode_2450(pcm, ambe_frame); m_mbevocoder->encode_2450(pcm, ambe_frame);
} }
for(int i = 0; i < 7; ++i){ for(int i = 0; i < 7; ++i){
@ -692,7 +693,7 @@ void NXDNCodec::process_rx_data()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->decode_2450(pcm, ambe); m_mbevocoder->decode_2450(pcm, ambe);
} }
else{ else{

@ -88,11 +88,12 @@ void REFCodec::process_udp()
#endif #endif
if((m_modeinfo.status == CONNECTING) && (buf.size() == 0x08)){ if((m_modeinfo.status == CONNECTING) && (buf.size() == 0x08)){
if((memcmp(&buf.data()[4], "OKRW", 4) == 0) || (memcmp(&buf.data()[4], "OKRO", 4) == 0) || (memcmp(&buf.data()[4], "BUSY", 4) == 0)){ if((memcmp(&buf.data()[4], "OKRW", 4) == 0) || (memcmp(&buf.data()[4], "OKRO", 4) == 0) || (memcmp(&buf.data()[4], "BUSY", 4) == 0)){
m_modeinfo.vocoder_loaded = load_vocoder_plugin(); m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
if(m_vocoder != ""){ if(m_vocoder != ""){
m_hwrx = true; m_hwrx = true;
m_hwtx = true; m_hwtx = true;
m_modeinfo.hw_vocoder_loaded = true;
m_ambedev = new SerialAMBE("REF"); m_ambedev = new SerialAMBE("REF");
m_ambedev->connect_to_serial(m_vocoder); m_ambedev->connect_to_serial(m_vocoder);
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe())); connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
@ -453,7 +454,7 @@ void REFCodec::transmit()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->encode_2400x1200(pcm, ambe); m_mbevocoder->encode_2400x1200(pcm, ambe);
} }
send_frame(ambe); send_frame(ambe);
@ -691,7 +692,7 @@ void REFCodec::process_rx_data()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->decode_2400x1200(pcm, ambe); m_mbevocoder->decode_2400x1200(pcm, ambe);
} }
else{ else{

@ -64,10 +64,11 @@ void XRFCodec::process_udp()
if( (m_modeinfo.status == CONNECTING) && (buf.size() == 14) && (!memcmp(buf.data()+10, "ACK", 3)) ){ if( (m_modeinfo.status == CONNECTING) && (buf.size() == 14) && (!memcmp(buf.data()+10, "ACK", 3)) ){
m_modeinfo.status = CONNECTED_RW; m_modeinfo.status = CONNECTED_RW;
m_modeinfo.vocoder_loaded = load_vocoder_plugin(); m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
if(m_vocoder != ""){ if(m_vocoder != ""){
m_hwrx = true; m_hwrx = true;
m_hwtx = true; m_hwtx = true;
m_modeinfo.hw_vocoder_loaded = true;
m_ambedev = new SerialAMBE("XRF"); m_ambedev = new SerialAMBE("XRF");
m_ambedev->connect_to_serial(m_vocoder); m_ambedev->connect_to_serial(m_vocoder);
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe())); connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
@ -407,7 +408,7 @@ void XRFCodec::transmit()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->encode_2400x1200(pcm, ambe); m_mbevocoder->encode_2400x1200(pcm, ambe);
} }
send_frame(ambe); send_frame(ambe);
@ -613,7 +614,7 @@ void XRFCodec::process_rx_data()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->decode_2400x1200(pcm, ambe); m_mbevocoder->decode_2400x1200(pcm, ambe);
} }
else{ else{

@ -137,13 +137,14 @@ void YSFCodec::process_udp()
connect(m_ping_timer, SIGNAL(timeout()), this, SLOT(send_ping())); connect(m_ping_timer, SIGNAL(timeout()), this, SLOT(send_ping()));
set_fcs_mode(false); set_fcs_mode(false);
//m_mbeenc->set_gain_adjust(2.5); //m_mbeenc->set_gain_adjust(2.5);
m_modeinfo.vocoder_loaded = load_vocoder_plugin(); m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
m_rxtimer = new QTimer(); m_rxtimer = new QTimer();
connect(m_rxtimer, SIGNAL(timeout()), this, SLOT(process_rx_data())); connect(m_rxtimer, SIGNAL(timeout()), this, SLOT(process_rx_data()));
if(m_vocoder != ""){ if(m_vocoder != ""){
m_hwrx = true; m_hwrx = true;
m_hwtx = true; m_hwtx = true;
m_modeinfo.hw_vocoder_loaded = true;
m_ambedev = new SerialAMBE("YSF"); m_ambedev = new SerialAMBE("YSF");
m_ambedev->connect_to_serial(m_vocoder); m_ambedev->connect_to_serial(m_vocoder);
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe())); connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
@ -672,7 +673,7 @@ void YSFCodec::transmit()
} }
else{ else{
s = 7; s = 7;
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->encode_2450(pcm, ambe); m_mbevocoder->encode_2450(pcm, ambe);
} }
} }
@ -1326,7 +1327,7 @@ void YSFCodec::process_rx_data()
} }
} }
else{ else{
if(m_modeinfo.vocoder_loaded){ if(m_modeinfo.sw_vocoder_loaded){
m_mbevocoder->decode_2450(pcm, ambe); m_mbevocoder->decode_2450(pcm, ambe);
} }
else{ else{

Loading…
Cancel
Save