Add option to download vocoder file via http
This commit is contained in:
parent
f5447aee1c
commit
a2ab3b53c1
17 changed files with 283 additions and 222 deletions
|
@ -41,6 +41,7 @@ Item {
|
|||
"\nPlatform:\t" + droidstar.get_platform() +
|
||||
"\nArchitecture:\t" + droidstar.get_arch() +
|
||||
"\nBuild ABI:\t" + droidstar.get_build_abi() +
|
||||
"\n\nProject page: https://github.com/nostar/DroidStar" +
|
||||
"\n\nCopyright (C) 2019-2021 Doug McLain AD8DP\n" +
|
||||
"This program is free software; " +
|
||||
"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"?>
|
||||
<!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>
|
||||
<data>
|
||||
<variable>EnvironmentId</variable>
|
||||
|
@ -87,169 +87,6 @@
|
|||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.0</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5152.gcc_64_kit</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.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<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.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.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</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.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<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.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<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.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.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</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.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<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.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<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.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.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</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.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<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.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</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.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.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="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<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.RunConfiguration.BuildKey">/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</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.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>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.1</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Android.Device.Type</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Android Qt 5.15.2 Clang Multi-Abi</value>
|
||||
|
@ -445,7 +282,7 @@
|
|||
<value type="QString">armeabi-v7a</value>
|
||||
<value type="QString">armeabi</value>
|
||||
</valuelist>
|
||||
<value type="QString" key="AndroidDeviceSerialNumber">R38N502YWQJ</value>
|
||||
<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">
|
||||
|
@ -473,6 +310,168 @@
|
|||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.Target.1</variable>
|
||||
<valuemap type="QVariantMap">
|
||||
<value type="QString" key="DeviceType">Desktop</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.15.2 GCC 64bit</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5152.gcc_64_kit</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.ActiveRunConfiguration">0</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.0">
|
||||
<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.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.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</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.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<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.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Debug</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">2</value>
|
||||
</valuemap>
|
||||
<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.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.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</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.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<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.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Release</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2">
|
||||
<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.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.BuildStepList.Step.0">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value>
|
||||
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value>
|
||||
<valuelist type="QVariantList" key="QtProjectManager.QMakeBuildStep.SelectedAbis"/>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1">
|
||||
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">2</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.Id">ProjectExplorer.BuildSteps.Build</value>
|
||||
</valuemap>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.1">
|
||||
<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.MakeStep</value>
|
||||
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">1</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Clean</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Clean</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">2</value>
|
||||
<value type="bool" key="ProjectExplorer.BuildConfiguration.ClearSystemEnvironment">false</value>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.CustomParsers"/>
|
||||
<valuelist type="QVariantList" key="ProjectExplorer.BuildConfiguration.UserEnvironmentChanges"/>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Profile</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4BuildConfiguration</value>
|
||||
<value type="int" key="Qt4ProjectManager.Qt4BuildConfiguration.BuildConfiguration">0</value>
|
||||
<value type="int" key="QtQuickCompiler">0</value>
|
||||
<value type="int" key="SeparateDebugInfo">0</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.BuildConfigurationCount">3</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.DeployConfiguration.0">
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.BuildConfiguration.BuildStepList.0">
|
||||
<value type="int" key="ProjectExplorer.BuildStepList.StepsCount">0</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.Id">ProjectExplorer.BuildSteps.Deploy</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.DeployConfiguration.CustomData"/>
|
||||
<value type="bool" key="ProjectExplorer.DeployConfiguration.CustomDataEnabled">false</value>
|
||||
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.DefaultDeployConfiguration</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.DeployConfigurationCount">1</value>
|
||||
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0">
|
||||
<value type="bool" key="Analyzer.Perf.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="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value>
|
||||
<valuelist type="QVariantList" key="CustomOutputParsers"/>
|
||||
<value type="int" key="PE.EnvironmentAspect.Base">2</value>
|
||||
<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.RunConfiguration.BuildKey">/mnt/data/src/qt-projects/DroidStar/DroidStar.pro</value>
|
||||
<value type="bool" key="RunConfiguration.UseCppDebugger">false</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.UseQmlDebuggerAuto">true</value>
|
||||
</valuemap>
|
||||
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value>
|
||||
</valuemap>
|
||||
</data>
|
||||
<data>
|
||||
<variable>ProjectExplorer.Project.TargetCount</variable>
|
||||
<value type="int">2</value>
|
||||
|
|
14
README.md
14
README.md
|
@ -17,16 +17,18 @@ There is a vocoder plugin API available for loading of vocoder software. Any vo
|
|||
|
||||
# Loading a vocoder plugin
|
||||
A vocoder plugin is placed in the standard Download location for the given platform:
|
||||
Linux: ~/Downloads
|
||||
MacOS: ~/Downloads
|
||||
Windows: C:/Users/<USER>/Documents
|
||||
Android: /storage/emulated/0/Download (typically referred to as Internal storage -> Download
|
||||
- Linux: ~/Downloads
|
||||
- MacOS: ~/Downloads
|
||||
- Windows: C:/Users/User/Documents
|
||||
- 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
|
||||
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
|
||||
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 {
|
||||
anchors.fill: parent
|
||||
contentWidth: parent.width
|
||||
contentHeight: _modemNXDNTXLevelLabel.y +
|
||||
_modemNXDNTXLevelLabel.height + 10
|
||||
contentHeight: vocoderButton.y +
|
||||
vocoderButton.height + 10
|
||||
flickableDirection: Flickable.VerticalFlick
|
||||
clip: true
|
||||
|
||||
|
@ -507,17 +507,6 @@ Item {
|
|||
updateDialog.open()
|
||||
}
|
||||
}
|
||||
Button {
|
||||
id: vocoderButton
|
||||
x: 10
|
||||
y: 670
|
||||
width: 150
|
||||
height: 30
|
||||
text: qsTr("Vocoder Plugin")
|
||||
onClicked: {
|
||||
//vocoderDialog.open()
|
||||
}
|
||||
}
|
||||
Text {
|
||||
id: mycallLabel
|
||||
x: 10
|
||||
|
@ -1026,5 +1015,35 @@ Item {
|
|||
selectByMouse: true
|
||||
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.streamid = 0;
|
||||
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
|
||||
flite_init();
|
||||
voice_slt = register_cmu_us_slt(nullptr);
|
||||
|
|
3
codec.h
3
codec.h
|
@ -80,7 +80,8 @@ public:
|
|||
int count;
|
||||
uint32_t streamid;
|
||||
bool mode;
|
||||
bool vocoder_loaded;
|
||||
bool sw_vocoder_loaded;
|
||||
bool hw_vocoder_loaded;
|
||||
} m_modeinfo;
|
||||
enum{
|
||||
DISCONNECTED,
|
||||
|
|
|
@ -67,10 +67,11 @@ void DCSCodec::process_udp()
|
|||
if( (m_modeinfo.status == CONNECTING) && (size == 14) && (!memcmp(buf.data()+10, "ACK", 3)) ){
|
||||
qDebug() << "Connected to DCS";
|
||||
m_modeinfo.status = CONNECTED_RW;
|
||||
m_modeinfo.vocoder_loaded = load_vocoder_plugin();
|
||||
m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
|
||||
if(m_vocoder != ""){
|
||||
m_hwrx = true;
|
||||
m_hwtx = true;
|
||||
m_modeinfo.hw_vocoder_loaded = true;
|
||||
m_ambedev = new SerialAMBE("DCS");
|
||||
m_ambedev->connect_to_serial(m_vocoder);
|
||||
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
|
||||
|
@ -412,7 +413,7 @@ void DCSCodec::transmit()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->encode_2400x1200(pcm, ambe);
|
||||
}
|
||||
send_frame(ambe);
|
||||
|
@ -588,7 +589,7 @@ void DCSCodec::process_rx_data()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->decode_2400x1200(pcm, ambe);
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -308,7 +308,7 @@ void DMRCodec::setup_connection()
|
|||
{
|
||||
m_modeinfo.status = CONNECTED_RW;
|
||||
//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();
|
||||
connect(m_txtimer, SIGNAL(timeout()), this, SLOT(transmit()));
|
||||
m_rxtimer = new QTimer();
|
||||
|
@ -319,6 +319,7 @@ void DMRCodec::setup_connection()
|
|||
if(m_vocoder != ""){
|
||||
m_hwrx = true;
|
||||
m_hwtx = true;
|
||||
m_modeinfo.hw_vocoder_loaded = true;
|
||||
m_ambedev = new SerialAMBE("DMR");
|
||||
m_ambedev->connect_to_serial(m_vocoder);
|
||||
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
|
||||
|
@ -483,7 +484,7 @@ void DMRCodec::transmit()
|
|||
m_ambedev->encode(pcm);
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->encode_2450x1150(pcm, ambe);
|
||||
}
|
||||
for(int i = 0; i < 9; ++i){
|
||||
|
@ -958,7 +959,7 @@ void DMRCodec::process_rx_data()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->decode_2450x1150(pcm, ambe);
|
||||
}
|
||||
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;
|
||||
http->moveToThread(httpThread);
|
||||
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()));
|
||||
httpThread->start();
|
||||
}
|
||||
|
||||
void DroidStar::url_downloaded(QString url)
|
||||
{
|
||||
qDebug() << "DudeStar::url_downloaded() " << url;
|
||||
emit update_log("Downloaded " + url);
|
||||
}
|
||||
|
||||
void DroidStar::file_downloaded(QString 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);
|
||||
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");
|
||||
}
|
||||
else{
|
||||
|
@ -1404,7 +1416,7 @@ void DroidStar::update_dcs_data(Codec::MODEINFO info)
|
|||
if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module);
|
||||
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");
|
||||
}
|
||||
else{
|
||||
|
@ -1460,7 +1472,7 @@ void DroidStar::update_xrf_data(Codec::MODEINFO info)
|
|||
if(m_rptr1.isEmpty()) set_rptr1(m_callsign + " " + m_module);
|
||||
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");
|
||||
}
|
||||
else{
|
||||
|
@ -1507,7 +1519,7 @@ void DroidStar::update_nxdn_data(Codec::MODEINFO info)
|
|||
emit swrx_state(!m_nxdn->get_hwrx());
|
||||
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");
|
||||
}
|
||||
else{
|
||||
|
@ -1570,7 +1582,7 @@ void DroidStar::update_dmr_data(Codec::MODEINFO info)
|
|||
emit swrx_state(!m_dmr->get_hwrx());
|
||||
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");
|
||||
}
|
||||
else{
|
||||
|
@ -1620,11 +1632,14 @@ void DroidStar::update_ysf_data(Codec::MODEINFO info)
|
|||
emit swrx_state(!m_ysf->get_hwrx());
|
||||
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");
|
||||
}
|
||||
else{
|
||||
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);
|
||||
|
|
|
@ -43,6 +43,7 @@ signals:
|
|||
void module_changed(char);
|
||||
void update_data();
|
||||
void update_log(QString);
|
||||
void open_vocoder_dialog();
|
||||
void update_settings();
|
||||
void connect_status_changed(int c);
|
||||
void in_audio_vol_changed(qreal);
|
||||
|
@ -233,8 +234,9 @@ public slots:
|
|||
QString get_build_abi() { return QSysInfo::buildAbi(); }
|
||||
QString get_software_build() { return VERSION_NUMBER; }
|
||||
|
||||
void download_file(QString);
|
||||
void download_file(QString, bool u = false);
|
||||
void file_downloaded(QString);
|
||||
void url_downloaded(QString);
|
||||
unsigned short get_output_level(){ return m_outlevel; }
|
||||
void set_output_level(unsigned short l){ m_outlevel = l; }
|
||||
private:
|
||||
|
|
|
@ -17,11 +17,12 @@
|
|||
|
||||
#include "httpmanager.h"
|
||||
|
||||
HttpManager::HttpManager(QString f) : QObject(nullptr)
|
||||
HttpManager::HttpManager(QString f, bool u) : QObject(nullptr)
|
||||
{
|
||||
m_qnam = new QNetworkAccessManager(this);
|
||||
QObject::connect(m_qnam, SIGNAL(finished(QNetworkReply*)), this, SLOT(http_finished(QNetworkReply*)));
|
||||
m_config_path = QStandardPaths::writableLocation(QStandardPaths::ConfigLocation);
|
||||
m_url = u;
|
||||
#if !defined(Q_OS_ANDROID) && !defined(Q_OS_WIN)
|
||||
m_config_path += "/dudetronics";
|
||||
#endif
|
||||
|
@ -31,13 +32,16 @@ HttpManager::HttpManager(QString f) : QObject(nullptr)
|
|||
void HttpManager::process()
|
||||
{
|
||||
QMetaObject::invokeMethod(this,"doRequest");
|
||||
//qDebug() << "process() called";
|
||||
//send to the event loop
|
||||
}
|
||||
|
||||
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;
|
||||
}
|
||||
|
||||
|
@ -51,7 +55,13 @@ void HttpManager::http_finished(QNetworkReply *reply)
|
|||
return;
|
||||
}
|
||||
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);
|
||||
qDebug() << "m_config_path + m_filename = " << m_config_path + m_filename;
|
||||
hosts_file->open(QIODevice::WriteOnly);
|
||||
QFileInfo fileInfo(hosts_file->fileName());
|
||||
QString filename(fileInfo.fileName());
|
||||
|
|
|
@ -25,7 +25,7 @@ class HttpManager : public QObject
|
|||
{
|
||||
Q_OBJECT
|
||||
public:
|
||||
explicit HttpManager(QString);
|
||||
explicit HttpManager(QString, bool u = false);
|
||||
//void start_request(QString file);
|
||||
|
||||
signals:
|
||||
|
@ -35,6 +35,7 @@ private:
|
|||
QString m_filename;
|
||||
QString m_config_path;
|
||||
QNetworkAccessManager *m_qnam;
|
||||
bool m_url;
|
||||
|
||||
private slots:
|
||||
void process();
|
||||
|
|
10
main.qml
10
main.qml
|
@ -55,9 +55,9 @@ ApplicationWindow {
|
|||
text: "Check log tab for details"
|
||||
}
|
||||
MessageDialog {
|
||||
id: disclaimerDialog
|
||||
title: "D-Star WARNING"
|
||||
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!"
|
||||
id: vocoderDialog
|
||||
title: "No vocoder found"
|
||||
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 {
|
||||
|
@ -405,6 +405,10 @@ ApplicationWindow {
|
|||
function onUpdate_log(s) {
|
||||
logTab.logText.append(s);
|
||||
}
|
||||
function onOpen_vocoder_dialog() {
|
||||
vocoderDialog.open();
|
||||
}
|
||||
|
||||
function onConnect_status_changed(c) {
|
||||
if(c === 0){
|
||||
if(mainTab.buttonTX.tx){
|
||||
|
|
|
@ -79,10 +79,11 @@ void NXDNCodec::process_udp()
|
|||
m_ping_timer = new QTimer();
|
||||
connect(m_ping_timer, SIGNAL(timeout()), this, SLOT(send_ping()));
|
||||
//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 != ""){
|
||||
m_hwrx = true;
|
||||
m_hwtx = true;
|
||||
m_modeinfo.hw_vocoder_loaded = true;
|
||||
m_ambedev = new SerialAMBE("NXDN");
|
||||
m_ambedev->connect_to_serial(m_vocoder);
|
||||
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
|
||||
|
@ -312,7 +313,7 @@ void NXDNCodec::transmit()
|
|||
m_ambedev->encode(pcm);
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->encode_2450(pcm, ambe_frame);
|
||||
}
|
||||
for(int i = 0; i < 7; ++i){
|
||||
|
@ -692,7 +693,7 @@ void NXDNCodec::process_rx_data()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->decode_2450(pcm, ambe);
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -88,11 +88,12 @@ void REFCodec::process_udp()
|
|||
#endif
|
||||
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)){
|
||||
m_modeinfo.vocoder_loaded = load_vocoder_plugin();
|
||||
m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
|
||||
|
||||
if(m_vocoder != ""){
|
||||
m_hwrx = true;
|
||||
m_hwtx = true;
|
||||
m_modeinfo.hw_vocoder_loaded = true;
|
||||
m_ambedev = new SerialAMBE("REF");
|
||||
m_ambedev->connect_to_serial(m_vocoder);
|
||||
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
|
||||
|
@ -453,7 +454,7 @@ void REFCodec::transmit()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->encode_2400x1200(pcm, ambe);
|
||||
}
|
||||
send_frame(ambe);
|
||||
|
@ -691,7 +692,7 @@ void REFCodec::process_rx_data()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->decode_2400x1200(pcm, ambe);
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -64,10 +64,11 @@ void XRFCodec::process_udp()
|
|||
|
||||
if( (m_modeinfo.status == CONNECTING) && (buf.size() == 14) && (!memcmp(buf.data()+10, "ACK", 3)) ){
|
||||
m_modeinfo.status = CONNECTED_RW;
|
||||
m_modeinfo.vocoder_loaded = load_vocoder_plugin();
|
||||
m_modeinfo.sw_vocoder_loaded = load_vocoder_plugin();
|
||||
if(m_vocoder != ""){
|
||||
m_hwrx = true;
|
||||
m_hwtx = true;
|
||||
m_modeinfo.hw_vocoder_loaded = true;
|
||||
m_ambedev = new SerialAMBE("XRF");
|
||||
m_ambedev->connect_to_serial(m_vocoder);
|
||||
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
|
||||
|
@ -407,7 +408,7 @@ void XRFCodec::transmit()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->encode_2400x1200(pcm, ambe);
|
||||
}
|
||||
send_frame(ambe);
|
||||
|
@ -613,7 +614,7 @@ void XRFCodec::process_rx_data()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->decode_2400x1200(pcm, ambe);
|
||||
}
|
||||
else{
|
||||
|
|
|
@ -137,13 +137,14 @@ void YSFCodec::process_udp()
|
|||
connect(m_ping_timer, SIGNAL(timeout()), this, SLOT(send_ping()));
|
||||
set_fcs_mode(false);
|
||||
//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();
|
||||
connect(m_rxtimer, SIGNAL(timeout()), this, SLOT(process_rx_data()));
|
||||
|
||||
if(m_vocoder != ""){
|
||||
m_hwrx = true;
|
||||
m_hwtx = true;
|
||||
m_modeinfo.hw_vocoder_loaded = true;
|
||||
m_ambedev = new SerialAMBE("YSF");
|
||||
m_ambedev->connect_to_serial(m_vocoder);
|
||||
connect(m_ambedev, SIGNAL(data_ready()), this, SLOT(get_ambe()));
|
||||
|
@ -672,7 +673,7 @@ void YSFCodec::transmit()
|
|||
}
|
||||
else{
|
||||
s = 7;
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->encode_2450(pcm, ambe);
|
||||
}
|
||||
}
|
||||
|
@ -1326,7 +1327,7 @@ void YSFCodec::process_rx_data()
|
|||
}
|
||||
}
|
||||
else{
|
||||
if(m_modeinfo.vocoder_loaded){
|
||||
if(m_modeinfo.sw_vocoder_loaded){
|
||||
m_mbevocoder->decode_2450(pcm, ambe);
|
||||
}
|
||||
else{
|
||||
|
|
Loading…
Add table
Reference in a new issue