252 changed files with 40921 additions and 39639 deletions
@ -0,0 +1,336 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE QtCreatorProject> |
||||
|
<!-- Written by QtCreator 4.10.0, 2021-05-22T16:16:54. --> |
||||
|
<qtcreator> |
||||
|
<data> |
||||
|
<variable>EnvironmentId</variable> |
||||
|
<value type="QByteArray">{78e1b4e9-45e9-48b6-8eb1-81a1a4312d47}</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.ActiveTarget</variable> |
||||
|
<value type="int">0</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.EditorSettings</variable> |
||||
|
<valuemap type="QVariantMap"> |
||||
|
<value type="bool" key="EditorConfiguration.AutoIndent">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> |
||||
|
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> |
||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> |
||||
|
<value type="QString" key="language">Cpp</value> |
||||
|
<valuemap type="QVariantMap" key="value"> |
||||
|
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value> |
||||
|
</valuemap> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> |
||||
|
<value type="QString" key="language">QmlJS</value> |
||||
|
<valuemap type="QVariantMap" key="value"> |
||||
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> |
||||
|
</valuemap> |
||||
|
</valuemap> |
||||
|
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> |
||||
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> |
||||
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> |
||||
|
<value type="int" key="EditorConfiguration.IndentSize">4</value> |
||||
|
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> |
||||
|
<value type="int" key="EditorConfiguration.MarginColumn">80</value> |
||||
|
<value type="bool" key="EditorConfiguration.MouseHiding">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value> |
||||
|
<value type="int" key="EditorConfiguration.PaddingMode">1</value> |
||||
|
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.ShowMargin">false</value> |
||||
|
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> |
||||
|
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> |
||||
|
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> |
||||
|
<value type="int" key="EditorConfiguration.TabSize">8</value> |
||||
|
<value type="bool" key="EditorConfiguration.UseGlobal">true</value> |
||||
|
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> |
||||
|
<value type="bool" key="EditorConfiguration.addFinalNewLine">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value> |
||||
|
</valuemap> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.PluginSettings</variable> |
||||
|
<valuemap type="QVariantMap"> |
||||
|
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/> |
||||
|
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value> |
||||
|
</valuemap> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.Target.0</variable> |
||||
|
<valuemap type="QVariantMap"> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.13.1 GCC 64bit</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.13.1 GCC 64bit</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5131.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="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/hasis/Desktop/Develop_HardwareTest/build-developHw-Desktop_Qt_5_13_1_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.DefaultDisplayName">qmake</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value> |
||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> |
||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.UserEnvironmentChanges"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value> |
||||
|
<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> |
||||
|
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> |
||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/hasis/Desktop/Develop_HardwareTest/build-developHw-Desktop_Qt_5_13_1_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.DefaultDisplayName">qmake</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> |
||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> |
||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.UserEnvironmentChanges"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> |
||||
|
<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="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2"> |
||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/hasis/Desktop/Develop_HardwareTest/build-developHw-Desktop_Qt_5_13_1_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.DefaultDisplayName">qmake</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value> |
||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> |
||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.UserEnvironmentChanges"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value> |
||||
|
<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="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</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"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> |
||||
|
</valuemap> |
||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></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.PluginSettings"/> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> |
||||
|
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Perf.Events"> |
||||
|
<value type="QString">cpu-cycles</value> |
||||
|
</valuelist> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/> |
||||
|
<value type="int" key="Analyzer.Perf.Frequency">250</value> |
||||
|
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value> |
||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value> |
||||
|
<value type="int" key="Analyzer.Perf.StackSize">4096</value> |
||||
|
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value> |
||||
|
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value> |
||||
|
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value> |
||||
|
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value> |
||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> |
||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> |
||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> |
||||
|
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value> |
||||
|
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> |
||||
|
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> |
||||
|
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> |
||||
|
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> |
||||
|
<value type="int">0</value> |
||||
|
<value type="int">1</value> |
||||
|
<value type="int">2</value> |
||||
|
<value type="int">3</value> |
||||
|
<value type="int">4</value> |
||||
|
<value type="int">5</value> |
||||
|
<value type="int">6</value> |
||||
|
<value type="int">7</value> |
||||
|
<value type="int">8</value> |
||||
|
<value type="int">9</value> |
||||
|
<value type="int">10</value> |
||||
|
<value type="int">11</value> |
||||
|
<value type="int">12</value> |
||||
|
<value type="int">13</value> |
||||
|
<value type="int">14</value> |
||||
|
</valuelist> |
||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value> |
||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">developHw</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/hasis/Desktop/Develop_HardwareTest/developHw/developHw.pro</value> |
||||
|
<value type="QString" key="RunConfiguration.Arguments"></value> |
||||
|
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</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.UseMultiProcess">false</value> |
||||
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> |
||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> |
||||
|
<value type="bool" key="RunConfiguration.UseTerminal">true</value> |
||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory"></value> |
||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/hasis/Desktop/Develop_HardwareTest/build-developHw-Desktop_Qt_5_13_1_GCC_64bit-Debug</value> |
||||
|
</valuemap> |
||||
|
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> |
||||
|
</valuemap> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.TargetCount</variable> |
||||
|
<value type="int">1</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.Updater.FileVersion</variable> |
||||
|
<value type="int">22</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>Version</variable> |
||||
|
<value type="int">22</value> |
||||
|
</data> |
||||
|
</qtcreator> |
@ -0,0 +1,335 @@ |
|||||
|
<?xml version="1.0" encoding="UTF-8"?> |
||||
|
<!DOCTYPE QtCreatorProject> |
||||
|
<!-- Written by QtCreator 4.10.0, 2021-05-22T17:00:06. --> |
||||
|
<qtcreator> |
||||
|
<data> |
||||
|
<variable>EnvironmentId</variable> |
||||
|
<value type="QByteArray">{c192e638-4eee-4c29-adef-5cfa3bcff92b}</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.ActiveTarget</variable> |
||||
|
<value type="int">0</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.EditorSettings</variable> |
||||
|
<valuemap type="QVariantMap"> |
||||
|
<value type="bool" key="EditorConfiguration.AutoIndent">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.AutoSpacesForTabs">false</value> |
||||
|
<value type="bool" key="EditorConfiguration.CamelCaseNavigation">true</value> |
||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.0"> |
||||
|
<value type="QString" key="language">Cpp</value> |
||||
|
<valuemap type="QVariantMap" key="value"> |
||||
|
<value type="QByteArray" key="CurrentPreferences">CppGlobal</value> |
||||
|
</valuemap> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="EditorConfiguration.CodeStyle.1"> |
||||
|
<value type="QString" key="language">QmlJS</value> |
||||
|
<valuemap type="QVariantMap" key="value"> |
||||
|
<value type="QByteArray" key="CurrentPreferences">QmlJSGlobal</value> |
||||
|
</valuemap> |
||||
|
</valuemap> |
||||
|
<value type="int" key="EditorConfiguration.CodeStyle.Count">2</value> |
||||
|
<value type="QByteArray" key="EditorConfiguration.Codec">UTF-8</value> |
||||
|
<value type="bool" key="EditorConfiguration.ConstrainTooltips">false</value> |
||||
|
<value type="int" key="EditorConfiguration.IndentSize">4</value> |
||||
|
<value type="bool" key="EditorConfiguration.KeyboardTooltips">false</value> |
||||
|
<value type="int" key="EditorConfiguration.MarginColumn">80</value> |
||||
|
<value type="bool" key="EditorConfiguration.MouseHiding">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.MouseNavigation">true</value> |
||||
|
<value type="int" key="EditorConfiguration.PaddingMode">1</value> |
||||
|
<value type="bool" key="EditorConfiguration.ScrollWheelZooming">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.ShowMargin">false</value> |
||||
|
<value type="int" key="EditorConfiguration.SmartBackspaceBehavior">0</value> |
||||
|
<value type="bool" key="EditorConfiguration.SmartSelectionChanging">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.SpacesForTabs">true</value> |
||||
|
<value type="int" key="EditorConfiguration.TabKeyBehavior">0</value> |
||||
|
<value type="int" key="EditorConfiguration.TabSize">8</value> |
||||
|
<value type="bool" key="EditorConfiguration.UseGlobal">true</value> |
||||
|
<value type="int" key="EditorConfiguration.Utf8BomBehavior">1</value> |
||||
|
<value type="bool" key="EditorConfiguration.addFinalNewLine">false</value> |
||||
|
<value type="bool" key="EditorConfiguration.cleanIndentation">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.cleanWhitespace">true</value> |
||||
|
<value type="bool" key="EditorConfiguration.inEntireDocument">false</value> |
||||
|
</valuemap> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.PluginSettings</variable> |
||||
|
<valuemap type="QVariantMap"> |
||||
|
<valuelist type="QVariantList" key="ClangCodeModel.CustomCommandLineKey"/> |
||||
|
<value type="bool" key="ClangCodeModel.UseGlobalConfig">true</value> |
||||
|
</valuemap> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.Target.0</variable> |
||||
|
<valuemap type="QVariantMap"> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Desktop Qt 5.13.1 GCC 64bit</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName">Desktop Qt 5.13.1 GCC 64bit</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">qt.qt5.5131.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="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/hasis/Desktop/Hardware/build-developHw-Desktop_Qt_5_13_1_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.DefaultDisplayName">qmake</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value> |
||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">false</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> |
||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.UserEnvironmentChanges"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Debug</value> |
||||
|
<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> |
||||
|
<value type="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.1"> |
||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/hasis/Desktop/Hardware/build-developHw-Desktop_Qt_5_13_1_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.DefaultDisplayName">qmake</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">false</value> |
||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> |
||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.UserEnvironmentChanges"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Release</value> |
||||
|
<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="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.BuildConfiguration.2"> |
||||
|
<value type="QString" key="ProjectExplorer.BuildConfiguration.BuildDirectory">/home/hasis/Desktop/Hardware/build-developHw-Desktop_Qt_5_13_1_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.DefaultDisplayName">qmake</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">QtProjectManager.QMakeBuildStep</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.LinkQmlDebuggingLibrary">true</value> |
||||
|
<value type="QString" key="QtProjectManager.QMakeBuildStep.QMakeArguments"></value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.QMakeForced">false</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.SeparateDebugInfo">true</value> |
||||
|
<value type="bool" key="QtProjectManager.QMakeBuildStep.UseQtQuickCompiler">true</value> |
||||
|
</valuemap> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.BuildStepList.Step.1"> |
||||
|
<value type="bool" key="ProjectExplorer.BuildStep.Enabled">true</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">false</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments"></value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.DefaultDisplayName">Make</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.MakeStep</value> |
||||
|
<valuelist type="QVariantList" key="Qt4ProjectManager.MakeStep.BuildTargets"/> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.Clean">true</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeArguments">clean</value> |
||||
|
<value type="QString" key="Qt4ProjectManager.MakeStep.MakeCommand"></value> |
||||
|
<value type="bool" key="Qt4ProjectManager.MakeStep.OverrideMakeflags">false</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"></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.UserEnvironmentChanges"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Profile</value> |
||||
|
<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="bool" key="Qt4ProjectManager.Qt4BuildConfiguration.UseShadowBuild">true</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"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">ProjectExplorer.BuildSteps.Deploy</value> |
||||
|
</valuemap> |
||||
|
<value type="int" key="ProjectExplorer.BuildConfiguration.BuildStepListCount">1</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">Deploy Configuration</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></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.PluginSettings"/> |
||||
|
<valuemap type="QVariantMap" key="ProjectExplorer.Target.RunConfiguration.0"> |
||||
|
<value type="QString" key="Analyzer.Perf.CallgraphMode">dwarf</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Perf.Events"> |
||||
|
<value type="QString">cpu-cycles</value> |
||||
|
</valuelist> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Perf.ExtraArguments"/> |
||||
|
<value type="int" key="Analyzer.Perf.Frequency">250</value> |
||||
|
<value type="QString" key="Analyzer.Perf.SampleMode">-F</value> |
||||
|
<value type="bool" key="Analyzer.Perf.Settings.UseGlobalSettings">true</value> |
||||
|
<value type="int" key="Analyzer.Perf.StackSize">4096</value> |
||||
|
<value type="bool" key="Analyzer.QmlProfiler.AggregateTraces">false</value> |
||||
|
<value type="bool" key="Analyzer.QmlProfiler.FlushEnabled">false</value> |
||||
|
<value type="uint" key="Analyzer.QmlProfiler.FlushInterval">1000</value> |
||||
|
<value type="QString" key="Analyzer.QmlProfiler.LastTraceFile"></value> |
||||
|
<value type="bool" key="Analyzer.QmlProfiler.Settings.UseGlobalSettings">true</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.AddedSuppressionFiles"/> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectBusEvents">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.CollectSystime">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableBranchSim">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableCacheSim">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Callgrind.EnableEventToolTips">true</value> |
||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.MinimumCostRatio">0.01</value> |
||||
|
<value type="double" key="Analyzer.Valgrind.Callgrind.VisualisationMinimumCostRatio">10</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.FilterExternalIssues">true</value> |
||||
|
<value type="QString" key="Analyzer.Valgrind.KCachegrindExecutable">kcachegrind</value> |
||||
|
<value type="int" key="Analyzer.Valgrind.LeakCheckOnFinish">1</value> |
||||
|
<value type="int" key="Analyzer.Valgrind.NumCallers">25</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.RemovedSuppressionFiles"/> |
||||
|
<value type="int" key="Analyzer.Valgrind.SelfModifyingCodeDetection">1</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.Settings.UseGlobalSettings">true</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.ShowReachable">false</value> |
||||
|
<value type="bool" key="Analyzer.Valgrind.TrackOrigins">true</value> |
||||
|
<value type="QString" key="Analyzer.Valgrind.ValgrindExecutable">valgrind</value> |
||||
|
<valuelist type="QVariantList" key="Analyzer.Valgrind.VisibleErrorKinds"> |
||||
|
<value type="int">0</value> |
||||
|
<value type="int">1</value> |
||||
|
<value type="int">2</value> |
||||
|
<value type="int">3</value> |
||||
|
<value type="int">4</value> |
||||
|
<value type="int">5</value> |
||||
|
<value type="int">6</value> |
||||
|
<value type="int">7</value> |
||||
|
<value type="int">8</value> |
||||
|
<value type="int">9</value> |
||||
|
<value type="int">10</value> |
||||
|
<value type="int">11</value> |
||||
|
<value type="int">12</value> |
||||
|
<value type="int">13</value> |
||||
|
<value type="int">14</value> |
||||
|
</valuelist> |
||||
|
<value type="int" key="PE.EnvironmentAspect.Base">2</value> |
||||
|
<valuelist type="QVariantList" key="PE.EnvironmentAspect.Changes"/> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DefaultDisplayName">developHw</value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.DisplayName"></value> |
||||
|
<value type="QString" key="ProjectExplorer.ProjectConfiguration.Id">Qt4ProjectManager.Qt4RunConfiguration:/home/hasis/Desktop/Hardware/developHw/developHw.pro</value> |
||||
|
<value type="QString" key="RunConfiguration.Arguments"></value> |
||||
|
<value type="uint" key="RunConfiguration.QmlDebugServerPort">3768</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.UseMultiProcess">false</value> |
||||
|
<value type="bool" key="RunConfiguration.UseQmlDebugger">false</value> |
||||
|
<value type="bool" key="RunConfiguration.UseQmlDebuggerAuto">true</value> |
||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory"></value> |
||||
|
<value type="QString" key="RunConfiguration.WorkingDirectory.default">/home/hasis/Desktop/Hardware/build-developHw-Desktop_Qt_5_13_1_GCC_64bit-Debug</value> |
||||
|
</valuemap> |
||||
|
<value type="int" key="ProjectExplorer.Target.RunConfigurationCount">1</value> |
||||
|
</valuemap> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.TargetCount</variable> |
||||
|
<value type="int">1</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>ProjectExplorer.Project.Updater.FileVersion</variable> |
||||
|
<value type="int">22</value> |
||||
|
</data> |
||||
|
<data> |
||||
|
<variable>Version</variable> |
||||
|
<value type="int">22</value> |
||||
|
</data> |
||||
|
</qtcreator> |
Binary file not shown.
File diff suppressed because it is too large
File diff suppressed because it is too large
File diff suppressed because it is too large
@ -1,126 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_D3D10_H |
|
||||
#define __OPENCL_CL_D3D10_H |
|
||||
|
|
||||
#include <d3d10.h> |
|
||||
#include <CL/cl.h> |
|
||||
#include <CL/cl_platform.h> |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************
|
|
||||
* cl_khr_d3d10_sharing */ |
|
||||
#define cl_khr_d3d10_sharing 1 |
|
||||
|
|
||||
typedef cl_uint cl_d3d10_device_source_khr; |
|
||||
typedef cl_uint cl_d3d10_device_set_khr; |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
/* Error Codes */ |
|
||||
#define CL_INVALID_D3D10_DEVICE_KHR -1002 |
|
||||
#define CL_INVALID_D3D10_RESOURCE_KHR -1003 |
|
||||
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_KHR -1004 |
|
||||
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_KHR -1005 |
|
||||
|
|
||||
/* cl_d3d10_device_source_nv */ |
|
||||
#define CL_D3D10_DEVICE_KHR 0x4010 |
|
||||
#define CL_D3D10_DXGI_ADAPTER_KHR 0x4011 |
|
||||
|
|
||||
/* cl_d3d10_device_set_nv */ |
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D10_KHR 0x4012 |
|
||||
#define CL_ALL_DEVICES_FOR_D3D10_KHR 0x4013 |
|
||||
|
|
||||
/* cl_context_info */ |
|
||||
#define CL_CONTEXT_D3D10_DEVICE_KHR 0x4014 |
|
||||
#define CL_CONTEXT_D3D10_PREFER_SHARED_RESOURCES_KHR 0x402C |
|
||||
|
|
||||
/* cl_mem_info */ |
|
||||
#define CL_MEM_D3D10_RESOURCE_KHR 0x4015 |
|
||||
|
|
||||
/* cl_image_info */ |
|
||||
#define CL_IMAGE_D3D10_SUBRESOURCE_KHR 0x4016 |
|
||||
|
|
||||
/* cl_command_type */ |
|
||||
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_KHR 0x4017 |
|
||||
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_KHR 0x4018 |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10KHR_fn)( |
|
||||
cl_platform_id platform, |
|
||||
cl_d3d10_device_source_khr d3d_device_source, |
|
||||
void * d3d_object, |
|
||||
cl_d3d10_device_set_khr d3d_device_set, |
|
||||
cl_uint num_entries, |
|
||||
cl_device_id * devices, |
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferKHR_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D10Buffer * resource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DKHR_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D10Texture2D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DKHR_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D10Texture3D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif /* __OPENCL_CL_D3D10_H */ |
|
||||
|
|
@ -1,122 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008-2009 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_D3D10_EXT_H |
|
||||
#define __OPENCL_CL_D3D10_EXT_H |
|
||||
|
|
||||
#include <d3d10.h> |
|
||||
#include <CL/cl.h> |
|
||||
#include <CL/cl_platform.h> |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************
|
|
||||
* cl_nv_d3d10_sharing */ |
|
||||
|
|
||||
typedef cl_uint cl_d3d10_device_source_nv; |
|
||||
typedef cl_uint cl_d3d10_device_set_nv; |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
// Error Codes
|
|
||||
#define CL_INVALID_D3D10_DEVICE_NV -1002 |
|
||||
#define CL_INVALID_D3D10_RESOURCE_NV -1003 |
|
||||
#define CL_D3D10_RESOURCE_ALREADY_ACQUIRED_NV -1004 |
|
||||
#define CL_D3D10_RESOURCE_NOT_ACQUIRED_NV -1005 |
|
||||
|
|
||||
// cl_d3d10_device_source_nv
|
|
||||
#define CL_D3D10_DEVICE_NV 0x4010 |
|
||||
#define CL_D3D10_DXGI_ADAPTER_NV 0x4011 |
|
||||
|
|
||||
// cl_d3d10_device_set_nv
|
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D10_NV 0x4012 |
|
||||
#define CL_ALL_DEVICES_FOR_D3D10_NV 0x4013 |
|
||||
|
|
||||
// cl_context_info
|
|
||||
#define CL_CONTEXT_D3D10_DEVICE_NV 0x4014 |
|
||||
|
|
||||
// cl_mem_info
|
|
||||
#define CL_MEM_D3D10_RESOURCE_NV 0x4015 |
|
||||
|
|
||||
// cl_image_info
|
|
||||
#define CL_IMAGE_D3D10_SUBRESOURCE_NV 0x4016 |
|
||||
|
|
||||
// cl_command_type
|
|
||||
#define CL_COMMAND_ACQUIRE_D3D10_OBJECTS_NV 0x4017 |
|
||||
#define CL_COMMAND_RELEASE_D3D10_OBJECTS_NV 0x4018 |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D10NV_fn)( |
|
||||
cl_platform_id platform, |
|
||||
cl_d3d10_device_source_nv d3d_device_source, |
|
||||
void * d3d_object, |
|
||||
cl_d3d10_device_set_nv d3d_device_set, |
|
||||
cl_uint num_entries, |
|
||||
cl_device_id * devices, |
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10BufferNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D10Buffer * resource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture2DNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D10Texture2D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D10Texture3DNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D10Texture3D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D10ObjectsNV_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D10ObjectsNV_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif // __OPENCL_CL_D3D10_H
|
|
||||
|
|
@ -1,126 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_D3D11_H |
|
||||
#define __OPENCL_CL_D3D11_H |
|
||||
|
|
||||
#include <d3d11.h> |
|
||||
#include <CL/cl.h> |
|
||||
#include <CL/cl_platform.h> |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************
|
|
||||
* cl_khr_d3d11_sharing */ |
|
||||
#define cl_khr_d3d11_sharing 1 |
|
||||
|
|
||||
typedef cl_uint cl_d3d11_device_source_khr; |
|
||||
typedef cl_uint cl_d3d11_device_set_khr; |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
/* Error Codes */ |
|
||||
#define CL_INVALID_D3D11_DEVICE_KHR -1006 |
|
||||
#define CL_INVALID_D3D11_RESOURCE_KHR -1007 |
|
||||
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_KHR -1008 |
|
||||
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_KHR -1009 |
|
||||
|
|
||||
/* cl_d3d11_device_source */ |
|
||||
#define CL_D3D11_DEVICE_KHR 0x4019 |
|
||||
#define CL_D3D11_DXGI_ADAPTER_KHR 0x401A |
|
||||
|
|
||||
/* cl_d3d11_device_set */ |
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D11_KHR 0x401B |
|
||||
#define CL_ALL_DEVICES_FOR_D3D11_KHR 0x401C |
|
||||
|
|
||||
/* cl_context_info */ |
|
||||
#define CL_CONTEXT_D3D11_DEVICE_KHR 0x401D |
|
||||
#define CL_CONTEXT_D3D11_PREFER_SHARED_RESOURCES_KHR 0x402D |
|
||||
|
|
||||
/* cl_mem_info */ |
|
||||
#define CL_MEM_D3D11_RESOURCE_KHR 0x401E |
|
||||
|
|
||||
/* cl_image_info */ |
|
||||
#define CL_IMAGE_D3D11_SUBRESOURCE_KHR 0x401F |
|
||||
|
|
||||
/* cl_command_type */ |
|
||||
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_KHR 0x4020 |
|
||||
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_KHR 0x4021 |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11KHR_fn)( |
|
||||
cl_platform_id platform, |
|
||||
cl_d3d11_device_source_khr d3d_device_source, |
|
||||
void * d3d_object, |
|
||||
cl_d3d11_device_set_khr d3d_device_set, |
|
||||
cl_uint num_entries, |
|
||||
cl_device_id * devices, |
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferKHR_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D11Buffer * resource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DKHR_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D11Texture2D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DKHR_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D11Texture3D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif /* __OPENCL_CL_D3D11_H */ |
|
||||
|
|
@ -1,122 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008-2009 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_D3D11_EXT_H |
|
||||
#define __OPENCL_CL_D3D11_EXT_H |
|
||||
|
|
||||
#include <d3d11.h> |
|
||||
#include <CL/cl.h> |
|
||||
#include <CL/cl_platform.h> |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************
|
|
||||
* cl_nv_d3d11_sharing */ |
|
||||
|
|
||||
typedef cl_uint cl_d3d11_device_source_nv; |
|
||||
typedef cl_uint cl_d3d11_device_set_nv; |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
// Error Codes
|
|
||||
#define CL_INVALID_D3D11_DEVICE_NV -1006 |
|
||||
#define CL_INVALID_D3D11_RESOURCE_NV -1007 |
|
||||
#define CL_D3D11_RESOURCE_ALREADY_ACQUIRED_NV -1008 |
|
||||
#define CL_D3D11_RESOURCE_NOT_ACQUIRED_NV -1009 |
|
||||
|
|
||||
// cl_d3d11_device_source_nv
|
|
||||
#define CL_D3D11_DEVICE_NV 0x4019 |
|
||||
#define CL_D3D11_DXGI_ADAPTER_NV 0x401A |
|
||||
|
|
||||
// cl_d3d11_device_set_nv
|
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D11_NV 0x401B |
|
||||
#define CL_ALL_DEVICES_FOR_D3D11_NV 0x401C |
|
||||
|
|
||||
// cl_context_info
|
|
||||
#define CL_CONTEXT_D3D11_DEVICE_NV 0x401D |
|
||||
|
|
||||
// cl_mem_info
|
|
||||
#define CL_MEM_D3D11_RESOURCE_NV 0x401E |
|
||||
|
|
||||
// cl_image_info
|
|
||||
#define CL_IMAGE_D3D11_SUBRESOURCE_NV 0x401F |
|
||||
|
|
||||
// cl_command_type
|
|
||||
#define CL_COMMAND_ACQUIRE_D3D11_OBJECTS_NV 0x4020 |
|
||||
#define CL_COMMAND_RELEASE_D3D11_OBJECTS_NV 0x4021 |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D11NV_fn)( |
|
||||
cl_platform_id platform, |
|
||||
cl_d3d11_device_source_nv d3d_device_source, |
|
||||
void * d3d_object, |
|
||||
cl_d3d11_device_set_nv d3d_device_set, |
|
||||
cl_uint num_entries, |
|
||||
cl_device_id * devices, |
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11BufferNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D11Buffer * resource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture2DNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D11Texture2D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D11Texture3DNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
ID3D11Texture3D * resource, |
|
||||
UINT subresource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D11ObjectsNV_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D11ObjectsNV_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif // __OPENCL_CL_D3D11_H
|
|
||||
|
|
@ -1,143 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008-2009 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_D3D9_EXT_H |
|
||||
#define __OPENCL_CL_D3D9_EXT_H |
|
||||
|
|
||||
#include <d3d9.h> |
|
||||
#include <CL/cl.h> |
|
||||
#include <CL/cl_platform.h> |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************
|
|
||||
* cl_nv_d3d9_sharing */ |
|
||||
|
|
||||
typedef cl_uint cl_d3d9_device_source_nv; |
|
||||
typedef cl_uint cl_d3d9_device_set_nv; |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
// Error Codes
|
|
||||
#define CL_INVALID_D3D9_DEVICE_NV -1010 |
|
||||
#define CL_INVALID_D3D9_RESOURCE_NV -1011 |
|
||||
#define CL_D3D9_RESOURCE_ALREADY_ACQUIRED_NV -1012 |
|
||||
#define CL_D3D9_RESOURCE_NOT_ACQUIRED_NV -1013 |
|
||||
|
|
||||
// cl_d3d9_device_source_nv
|
|
||||
#define CL_D3D9_DEVICE_NV 0x4022 |
|
||||
#define CL_D3D9_ADAPTER_NAME_NV 0x4023 |
|
||||
|
|
||||
// cl_d3d9_device_set_nv
|
|
||||
#define CL_PREFERRED_DEVICES_FOR_D3D9_NV 0x4024 |
|
||||
#define CL_ALL_DEVICES_FOR_D3D9_NV 0x4025 |
|
||||
|
|
||||
// cl_context_info
|
|
||||
#define CL_CONTEXT_D3D9_DEVICE_NV 0x4026 |
|
||||
|
|
||||
// cl_mem_info
|
|
||||
#define CL_MEM_D3D9_RESOURCE_NV 0x4027 |
|
||||
|
|
||||
// cl_image_info
|
|
||||
#define CL_IMAGE_D3D9_FACE_NV 0x4028 |
|
||||
#define CL_IMAGE_D3D9_LEVEL_NV 0x4029 |
|
||||
|
|
||||
// cl_command_type
|
|
||||
#define CL_COMMAND_ACQUIRE_D3D9_OBJECTS_NV 0x402A |
|
||||
#define CL_COMMAND_RELEASE_D3D9_OBJECTS_NV 0x402B |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromD3D9NV_fn)( |
|
||||
cl_platform_id platform, |
|
||||
cl_d3d9_device_source_nv d3d_device_source, |
|
||||
void * d3d_object, |
|
||||
cl_d3d9_device_set_nv d3d_device_set, |
|
||||
cl_uint num_entries, |
|
||||
cl_device_id * devices, |
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9VertexBufferNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
IDirect3DVertexBuffer9 * resource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9IndexBufferNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
IDirect3DIndexBuffer9 * resource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9SurfaceNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
IDirect3DSurface9 * resource, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9TextureNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
IDirect3DTexture9 *resource, |
|
||||
UINT miplevel, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9CubeTextureNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
IDirect3DCubeTexture9 * resource, |
|
||||
D3DCUBEMAP_FACES facetype, |
|
||||
UINT miplevel, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromD3D9VolumeTextureNV_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
IDirect3DVolumeTexture9 * resource, |
|
||||
UINT miplevel, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireD3D9ObjectsNV_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem *mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event *event_wait_list, |
|
||||
cl_event *event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseD3D9ObjectsNV_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
cl_mem *mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event *event_wait_list, |
|
||||
cl_event *event) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif // __OPENCL_CL_D3D9_H
|
|
||||
|
|
@ -1,127 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_DX9_MEDIA_SHARING_H |
|
||||
#define __OPENCL_CL_DX9_MEDIA_SHARING_H |
|
||||
|
|
||||
#include <CL/cl.h> |
|
||||
#include <CL/cl_platform.h> |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
/******************************************************************************
|
|
||||
/* cl_khr_dx9_media_sharing */ |
|
||||
#define cl_khr_dx9_media_sharing 1 |
|
||||
|
|
||||
typedef cl_uint cl_dx9_media_adapter_type_khr; |
|
||||
typedef cl_uint cl_dx9_media_adapter_set_khr; |
|
||||
|
|
||||
#if defined(_WIN32) |
|
||||
#include <d3d9.h> |
|
||||
typedef struct _cl_dx9_surface_info_khr |
|
||||
{ |
|
||||
IDirect3DSurface9 *resource; |
|
||||
HANDLE shared_handle; |
|
||||
} cl_dx9_surface_info_khr; |
|
||||
#endif |
|
||||
|
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
/* Error Codes */ |
|
||||
#define CL_INVALID_DX9_MEDIA_ADAPTER_KHR -1010 |
|
||||
#define CL_INVALID_DX9_MEDIA_SURFACE_KHR -1011 |
|
||||
#define CL_DX9_MEDIA_SURFACE_ALREADY_ACQUIRED_KHR -1012 |
|
||||
#define CL_DX9_MEDIA_SURFACE_NOT_ACQUIRED_KHR -1013 |
|
||||
|
|
||||
/* cl_media_adapter_type_khr */ |
|
||||
#define CL_ADAPTER_D3D9_KHR 0x2020 |
|
||||
#define CL_ADAPTER_D3D9EX_KHR 0x2021 |
|
||||
#define CL_ADAPTER_DXVA_KHR 0x2022 |
|
||||
|
|
||||
/* cl_media_adapter_set_khr */ |
|
||||
#define CL_PREFERRED_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2023 |
|
||||
#define CL_ALL_DEVICES_FOR_DX9_MEDIA_ADAPTER_KHR 0x2024 |
|
||||
|
|
||||
/* cl_context_info */ |
|
||||
#define CL_CONTEXT_ADAPTER_D3D9_KHR 0x2025 |
|
||||
#define CL_CONTEXT_ADAPTER_D3D9EX_KHR 0x2026 |
|
||||
#define CL_CONTEXT_ADAPTER_DXVA_KHR 0x2027 |
|
||||
|
|
||||
/* cl_mem_info */ |
|
||||
#define CL_MEM_DX9_MEDIA_ADAPTER_TYPE_KHR 0x2028 |
|
||||
#define CL_MEM_DX9_MEDIA_SURFACE_INFO_KHR 0x2029 |
|
||||
|
|
||||
/* cl_image_info */ |
|
||||
#define CL_IMAGE_DX9_MEDIA_PLANE_KHR 0x202A |
|
||||
|
|
||||
/* cl_command_type */ |
|
||||
#define CL_COMMAND_ACQUIRE_DX9_MEDIA_SURFACES_KHR 0x202B |
|
||||
#define CL_COMMAND_RELEASE_DX9_MEDIA_SURFACES_KHR 0x202C |
|
||||
|
|
||||
/******************************************************************************/ |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetDeviceIDsFromDX9MediaAdapterKHR_fn)( |
|
||||
cl_platform_id platform, |
|
||||
cl_uint num_media_adapters, |
|
||||
cl_dx9_media_adapter_type_khr * media_adapter_type, |
|
||||
void * media_adapters, |
|
||||
cl_dx9_media_adapter_set_khr media_adapter_set, |
|
||||
cl_uint num_entries, |
|
||||
cl_device_id * devices, |
|
||||
cl_uint * num_devices) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromDX9MediaSurfaceKHR_fn)( |
|
||||
cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
cl_dx9_media_adapter_type_khr adapter_type, |
|
||||
void * surface_info, |
|
||||
cl_uint plane, |
|
||||
cl_int * errcode_ret) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireDX9MediaSurfacesKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseDX9MediaSurfacesKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif /* __OPENCL_CL_DX9_MEDIA_SHARING_H */ |
|
||||
|
|
@ -1,133 +0,0 @@ |
|||||
/*******************************************************************************
|
|
||||
* Copyright (c) 2008-2010 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
******************************************************************************/ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_EGL_H |
|
||||
#define __OPENCL_CL_EGL_H |
|
||||
|
|
||||
#ifdef __APPLE__ |
|
||||
|
|
||||
#else |
|
||||
#include <CL/cl.h> |
|
||||
#include <EGL/egl.h> |
|
||||
#include <EGL/eglext.h> |
|
||||
#endif |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
|
|
||||
/* Command type for events created with clEnqueueAcquireEGLObjectsKHR */ |
|
||||
#define CL_COMMAND_EGL_FENCE_SYNC_OBJECT_KHR 0x202F |
|
||||
#define CL_COMMAND_ACQUIRE_EGL_OBJECTS_KHR 0x202D |
|
||||
#define CL_COMMAND_RELEASE_EGL_OBJECTS_KHR 0x202E |
|
||||
|
|
||||
/* Error type for clCreateFromEGLImageKHR */ |
|
||||
#define CL_INVALID_EGL_OBJECT_KHR -1093 |
|
||||
#define CL_EGL_RESOURCE_NOT_ACQUIRED_KHR -1092 |
|
||||
|
|
||||
/* CLeglImageKHR is an opaque handle to an EGLImage */ |
|
||||
typedef void* CLeglImageKHR; |
|
||||
|
|
||||
/* CLeglDisplayKHR is an opaque handle to an EGLDisplay */ |
|
||||
typedef void* CLeglDisplayKHR; |
|
||||
|
|
||||
/* CLeglSyncKHR is an opaque handle to an EGLSync object */ |
|
||||
typedef void* CLeglSyncKHR; |
|
||||
|
|
||||
/* properties passed to clCreateFromEGLImageKHR */ |
|
||||
typedef intptr_t cl_egl_image_properties_khr; |
|
||||
|
|
||||
|
|
||||
#define cl_khr_egl_image 1 |
|
||||
|
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL |
|
||||
clCreateFromEGLImageKHR(cl_context /* context */, |
|
||||
CLeglDisplayKHR /* egldisplay */, |
|
||||
CLeglImageKHR /* eglimage */, |
|
||||
cl_mem_flags /* flags */, |
|
||||
const cl_egl_image_properties_khr * /* properties */, |
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_mem (CL_API_CALL *clCreateFromEGLImageKHR_fn)( |
|
||||
cl_context context, |
|
||||
CLeglDisplayKHR egldisplay, |
|
||||
CLeglImageKHR eglimage, |
|
||||
cl_mem_flags flags, |
|
||||
const cl_egl_image_properties_khr * properties, |
|
||||
cl_int * errcode_ret); |
|
||||
|
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clEnqueueAcquireEGLObjectsKHR(cl_command_queue /* command_queue */, |
|
||||
cl_uint /* num_objects */, |
|
||||
const cl_mem * /* mem_objects */, |
|
||||
cl_uint /* num_events_in_wait_list */, |
|
||||
const cl_event * /* event_wait_list */, |
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueAcquireEGLObjectsKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event); |
|
||||
|
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clEnqueueReleaseEGLObjectsKHR(cl_command_queue /* command_queue */, |
|
||||
cl_uint /* num_objects */, |
|
||||
const cl_mem * /* mem_objects */, |
|
||||
cl_uint /* num_events_in_wait_list */, |
|
||||
const cl_event * /* event_wait_list */, |
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clEnqueueReleaseEGLObjectsKHR_fn)( |
|
||||
cl_command_queue command_queue, |
|
||||
cl_uint num_objects, |
|
||||
const cl_mem * mem_objects, |
|
||||
cl_uint num_events_in_wait_list, |
|
||||
const cl_event * event_wait_list, |
|
||||
cl_event * event); |
|
||||
|
|
||||
|
|
||||
#define cl_khr_egl_event 1 |
|
||||
|
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL |
|
||||
clCreateEventFromEGLSyncKHR(cl_context /* context */, |
|
||||
CLeglSyncKHR /* sync */, |
|
||||
CLeglDisplayKHR /* display */, |
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_event (CL_API_CALL *clCreateEventFromEGLSyncKHR_fn)( |
|
||||
cl_context context, |
|
||||
CLeglSyncKHR sync, |
|
||||
CLeglDisplayKHR display, |
|
||||
cl_int * errcode_ret); |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif /* __OPENCL_CL_EGL_H */ |
|
@ -1,334 +0,0 @@ |
|||||
/*******************************************************************************
|
|
||||
* Copyright (c) 2008-2013 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
******************************************************************************/ |
|
||||
|
|
||||
/* $Revision: 11928 $ on $Date: 2010-07-13 09:04:56 -0700 (Tue, 13 Jul 2010) $ */ |
|
||||
|
|
||||
/* cl_ext.h contains OpenCL extensions which don't have external */ |
|
||||
/* (OpenGL, D3D) dependencies. */ |
|
||||
|
|
||||
#ifndef __CL_EXT_H |
|
||||
#define __CL_EXT_H |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
#ifdef __APPLE__ |
|
||||
#include <OpenCL/cl.h> |
|
||||
#include <AvailabilityMacros.h> |
|
||||
#else |
|
||||
#include <CL/cl.h> |
|
||||
#endif |
|
||||
|
|
||||
/* cl_khr_fp16 extension - no extension #define since it has no functions */ |
|
||||
#define CL_DEVICE_HALF_FP_CONFIG 0x1033 |
|
||||
|
|
||||
/* Memory object destruction
|
|
||||
* |
|
||||
* Apple extension for use to manage externally allocated buffers used with cl_mem objects with CL_MEM_USE_HOST_PTR |
|
||||
* |
|
||||
* Registers a user callback function that will be called when the memory object is deleted and its resources |
|
||||
* freed. Each call to clSetMemObjectCallbackFn registers the specified user callback function on a callback |
|
||||
* stack associated with memobj. The registered user callback functions are called in the reverse order in |
|
||||
* which they were registered. The user callback functions are called and then the memory object is deleted |
|
||||
* and its resources freed. This provides a mechanism for the application (and libraries) using memobj to be |
|
||||
* notified when the memory referenced by host_ptr, specified when the memory object is created and used as |
|
||||
* the storage bits for the memory object, can be reused or freed. |
|
||||
* |
|
||||
* The application may not call CL api's with the cl_mem object passed to the pfn_notify. |
|
||||
* |
|
||||
* Please check for the "cl_APPLE_SetMemObjectDestructor" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) |
|
||||
* before using. |
|
||||
*/ |
|
||||
#define cl_APPLE_SetMemObjectDestructor 1 |
|
||||
cl_int CL_API_ENTRY clSetMemObjectDestructorAPPLE( cl_mem /* memobj */, |
|
||||
void (* /*pfn_notify*/)( cl_mem /* memobj */, void* /*user_data*/), |
|
||||
void * /*user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
|
|
||||
/* Context Logging Functions
|
|
||||
* |
|
||||
* The next three convenience functions are intended to be used as the pfn_notify parameter to clCreateContext(). |
|
||||
* Please check for the "cl_APPLE_ContextLoggingFunctions" extension using clGetDeviceInfo(CL_DEVICE_EXTENSIONS) |
|
||||
* before using. |
|
||||
* |
|
||||
* clLogMessagesToSystemLog fowards on all log messages to the Apple System Logger |
|
||||
*/ |
|
||||
#define cl_APPLE_ContextLoggingFunctions 1 |
|
||||
extern void CL_API_ENTRY clLogMessagesToSystemLogAPPLE( const char * /* errstr */, |
|
||||
const void * /* private_info */, |
|
||||
size_t /* cb */, |
|
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
/* clLogMessagesToStdout sends all log messages to the file descriptor stdout */ |
|
||||
extern void CL_API_ENTRY clLogMessagesToStdoutAPPLE( const char * /* errstr */, |
|
||||
const void * /* private_info */, |
|
||||
size_t /* cb */, |
|
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
/* clLogMessagesToStderr sends all log messages to the file descriptor stderr */ |
|
||||
extern void CL_API_ENTRY clLogMessagesToStderrAPPLE( const char * /* errstr */, |
|
||||
const void * /* private_info */, |
|
||||
size_t /* cb */, |
|
||||
void * /* user_data */ ) CL_EXT_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
|
|
||||
/************************
|
|
||||
* cl_khr_icd extension * |
|
||||
************************/ |
|
||||
#define cl_khr_icd 1 |
|
||||
|
|
||||
/* cl_platform_info */ |
|
||||
#define CL_PLATFORM_ICD_SUFFIX_KHR 0x0920 |
|
||||
|
|
||||
/* Additional Error Codes */ |
|
||||
#define CL_PLATFORM_NOT_FOUND_KHR -1001 |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clIcdGetPlatformIDsKHR(cl_uint /* num_entries */, |
|
||||
cl_platform_id * /* platforms */, |
|
||||
cl_uint * /* num_platforms */); |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clIcdGetPlatformIDsKHR_fn)( |
|
||||
cl_uint /* num_entries */, |
|
||||
cl_platform_id * /* platforms */, |
|
||||
cl_uint * /* num_platforms */); |
|
||||
|
|
||||
|
|
||||
/* Extension: cl_khr_image2D_buffer
|
|
||||
* |
|
||||
* This extension allows a 2D image to be created from a cl_mem buffer without a copy. |
|
||||
* The type associated with a 2D image created from a buffer in an OpenCL program is image2d_t. |
|
||||
* Both the sampler and sampler-less read_image built-in functions are supported for 2D images |
|
||||
* and 2D images created from a buffer. Similarly, the write_image built-ins are also supported |
|
||||
* for 2D images created from a buffer. |
|
||||
* |
|
||||
* When the 2D image from buffer is created, the client must specify the width, |
|
||||
* height, image format (i.e. channel order and channel data type) and optionally the row pitch |
|
||||
* |
|
||||
* The pitch specified must be a multiple of CL_DEVICE_IMAGE_PITCH_ALIGNMENT pixels. |
|
||||
* The base address of the buffer must be aligned to CL_DEVICE_IMAGE_BASE_ADDRESS_ALIGNMENT pixels. |
|
||||
*/ |
|
||||
|
|
||||
/*************************************
|
|
||||
* cl_khr_initalize_memory extension * |
|
||||
*************************************/ |
|
||||
|
|
||||
#define CL_CONTEXT_MEMORY_INITIALIZE_KHR 0x200E |
|
||||
|
|
||||
|
|
||||
/**************************************
|
|
||||
* cl_khr_terminate_context extension * |
|
||||
**************************************/ |
|
||||
|
|
||||
#define CL_DEVICE_TERMINATE_CAPABILITY_KHR 0x200F |
|
||||
#define CL_CONTEXT_TERMINATE_KHR 0x2010 |
|
||||
|
|
||||
#define cl_khr_terminate_context 1 |
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL clTerminateContextKHR(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clTerminateContextKHR_fn)(cl_context /* context */) CL_EXT_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
|
|
||||
/*
|
|
||||
* Extension: cl_khr_spir |
|
||||
* |
|
||||
* This extension adds support to create an OpenCL program object from a |
|
||||
* Standard Portable Intermediate Representation (SPIR) instance |
|
||||
*/ |
|
||||
|
|
||||
#define CL_DEVICE_SPIR_VERSIONS 0x40E0 |
|
||||
#define CL_PROGRAM_BINARY_TYPE_INTERMEDIATE 0x40E1 |
|
||||
|
|
||||
|
|
||||
/******************************************
|
|
||||
* cl_nv_device_attribute_query extension * |
|
||||
******************************************/ |
|
||||
/* cl_nv_device_attribute_query extension - no extension #define since it has no functions */ |
|
||||
#define CL_DEVICE_COMPUTE_CAPABILITY_MAJOR_NV 0x4000 |
|
||||
#define CL_DEVICE_COMPUTE_CAPABILITY_MINOR_NV 0x4001 |
|
||||
#define CL_DEVICE_REGISTERS_PER_BLOCK_NV 0x4002 |
|
||||
#define CL_DEVICE_WARP_SIZE_NV 0x4003 |
|
||||
#define CL_DEVICE_GPU_OVERLAP_NV 0x4004 |
|
||||
#define CL_DEVICE_KERNEL_EXEC_TIMEOUT_NV 0x4005 |
|
||||
#define CL_DEVICE_INTEGRATED_MEMORY_NV 0x4006 |
|
||||
#define CL_DEVICE_ATTRIBUTE_ASYNC_ENGINE_COUNT_NV 0x4007 |
|
||||
#define CL_DEVICE_PCI_BUS_ID_NV 0x4008 |
|
||||
#define CL_DEVICE_PCI_SLOT_ID_NV 0x4009 |
|
||||
|
|
||||
/******************************************
|
|
||||
* cl_nv_create_buffer extension * |
|
||||
******************************************/ |
|
||||
typedef cl_bitfield cl_mem_flags_NV; |
|
||||
|
|
||||
CL_API_ENTRY cl_mem CL_API_CALL |
|
||||
clCreateBufferNV(cl_context context, |
|
||||
cl_mem_flags flags, |
|
||||
cl_mem_flags_NV flags_NV, |
|
||||
size_t size, |
|
||||
void *host_ptr, |
|
||||
cl_int *errcode_ret); |
|
||||
#define CL_MEM_LOCATION_HOST_NV (1 << 0) |
|
||||
#define CL_MEM_PINNED_NV (1 << 1) |
|
||||
|
|
||||
/*********************************
|
|
||||
* cl_amd_device_attribute_query * |
|
||||
*********************************/ |
|
||||
#define CL_DEVICE_PROFILING_TIMER_OFFSET_AMD 0x4036 |
|
||||
|
|
||||
/*********************************
|
|
||||
* cl_arm_printf extension |
|
||||
*********************************/ |
|
||||
#define CL_PRINTF_CALLBACK_ARM 0x40B0 |
|
||||
#define CL_PRINTF_BUFFERSIZE_ARM 0x40B1 |
|
||||
|
|
||||
#ifdef CL_VERSION_1_1 |
|
||||
/***********************************
|
|
||||
* cl_ext_device_fission extension * |
|
||||
***********************************/ |
|
||||
#define cl_ext_device_fission 1 |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clReleaseDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int |
|
||||
(CL_API_CALL *clReleaseDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clRetainDeviceEXT( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int |
|
||||
(CL_API_CALL *clRetainDeviceEXT_fn)( cl_device_id /*device*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
|
||||
|
|
||||
typedef cl_ulong cl_device_partition_property_ext; |
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clCreateSubDevicesEXT( cl_device_id /*in_device*/, |
|
||||
const cl_device_partition_property_ext * /* properties */, |
|
||||
cl_uint /*num_entries*/, |
|
||||
cl_device_id * /*out_devices*/, |
|
||||
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int |
|
||||
( CL_API_CALL * clCreateSubDevicesEXT_fn)( cl_device_id /*in_device*/, |
|
||||
const cl_device_partition_property_ext * /* properties */, |
|
||||
cl_uint /*num_entries*/, |
|
||||
cl_device_id * /*out_devices*/, |
|
||||
cl_uint * /*num_devices*/ ) CL_EXT_SUFFIX__VERSION_1_1; |
|
||||
|
|
||||
/* cl_device_partition_property_ext */ |
|
||||
#define CL_DEVICE_PARTITION_EQUALLY_EXT 0x4050 |
|
||||
#define CL_DEVICE_PARTITION_BY_COUNTS_EXT 0x4051 |
|
||||
#define CL_DEVICE_PARTITION_BY_NAMES_EXT 0x4052 |
|
||||
#define CL_DEVICE_PARTITION_BY_AFFINITY_DOMAIN_EXT 0x4053 |
|
||||
|
|
||||
/* clDeviceGetInfo selectors */ |
|
||||
#define CL_DEVICE_PARENT_DEVICE_EXT 0x4054 |
|
||||
#define CL_DEVICE_PARTITION_TYPES_EXT 0x4055 |
|
||||
#define CL_DEVICE_AFFINITY_DOMAINS_EXT 0x4056 |
|
||||
#define CL_DEVICE_REFERENCE_COUNT_EXT 0x4057 |
|
||||
#define CL_DEVICE_PARTITION_STYLE_EXT 0x4058 |
|
||||
|
|
||||
/* error codes */ |
|
||||
#define CL_DEVICE_PARTITION_FAILED_EXT -1057 |
|
||||
#define CL_INVALID_PARTITION_COUNT_EXT -1058 |
|
||||
#define CL_INVALID_PARTITION_NAME_EXT -1059 |
|
||||
|
|
||||
/* CL_AFFINITY_DOMAINs */ |
|
||||
#define CL_AFFINITY_DOMAIN_L1_CACHE_EXT 0x1 |
|
||||
#define CL_AFFINITY_DOMAIN_L2_CACHE_EXT 0x2 |
|
||||
#define CL_AFFINITY_DOMAIN_L3_CACHE_EXT 0x3 |
|
||||
#define CL_AFFINITY_DOMAIN_L4_CACHE_EXT 0x4 |
|
||||
#define CL_AFFINITY_DOMAIN_NUMA_EXT 0x10 |
|
||||
#define CL_AFFINITY_DOMAIN_NEXT_FISSIONABLE_EXT 0x100 |
|
||||
|
|
||||
/* cl_device_partition_property_ext list terminators */ |
|
||||
#define CL_PROPERTIES_LIST_END_EXT ((cl_device_partition_property_ext) 0) |
|
||||
#define CL_PARTITION_BY_COUNTS_LIST_END_EXT ((cl_device_partition_property_ext) 0) |
|
||||
#define CL_PARTITION_BY_NAMES_LIST_END_EXT ((cl_device_partition_property_ext) 0 - 1) |
|
||||
|
|
||||
/*********************************
|
|
||||
* cl_qcom_ext_host_ptr extension |
|
||||
*********************************/ |
|
||||
|
|
||||
#define CL_MEM_EXT_HOST_PTR_QCOM (1 << 29) |
|
||||
|
|
||||
#define CL_DEVICE_EXT_MEM_PADDING_IN_BYTES_QCOM 0x40A0 |
|
||||
#define CL_DEVICE_PAGE_SIZE_QCOM 0x40A1 |
|
||||
#define CL_IMAGE_ROW_ALIGNMENT_QCOM 0x40A2 |
|
||||
#define CL_IMAGE_SLICE_ALIGNMENT_QCOM 0x40A3 |
|
||||
#define CL_MEM_HOST_UNCACHED_QCOM 0x40A4 |
|
||||
#define CL_MEM_HOST_WRITEBACK_QCOM 0x40A5 |
|
||||
#define CL_MEM_HOST_WRITETHROUGH_QCOM 0x40A6 |
|
||||
#define CL_MEM_HOST_WRITE_COMBINING_QCOM 0x40A7 |
|
||||
|
|
||||
typedef cl_uint cl_image_pitch_info_qcom; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clGetDeviceImageInfoQCOM(cl_device_id device, |
|
||||
size_t image_width, |
|
||||
size_t image_height, |
|
||||
const cl_image_format *image_format, |
|
||||
cl_image_pitch_info_qcom param_name, |
|
||||
size_t param_value_size, |
|
||||
void *param_value, |
|
||||
size_t *param_value_size_ret); |
|
||||
|
|
||||
typedef struct _cl_mem_ext_host_ptr |
|
||||
{ |
|
||||
/* Type of external memory allocation. */ |
|
||||
/* Legal values will be defined in layered extensions. */ |
|
||||
cl_uint allocation_type; |
|
||||
|
|
||||
/* Host cache policy for this external memory allocation. */ |
|
||||
cl_uint host_cache_policy; |
|
||||
|
|
||||
} cl_mem_ext_host_ptr; |
|
||||
|
|
||||
/*********************************
|
|
||||
* cl_qcom_ion_host_ptr extension |
|
||||
*********************************/ |
|
||||
|
|
||||
#define CL_MEM_ION_HOST_PTR_QCOM 0x40A8 |
|
||||
|
|
||||
typedef struct _cl_mem_ion_host_ptr |
|
||||
{ |
|
||||
/* Type of external memory allocation. */ |
|
||||
/* Must be CL_MEM_ION_HOST_PTR_QCOM for ION allocations. */ |
|
||||
cl_mem_ext_host_ptr ext_host_ptr; |
|
||||
|
|
||||
/* ION file descriptor */ |
|
||||
int ion_filedesc; |
|
||||
|
|
||||
/* Host pointer to the ION allocated memory */ |
|
||||
void* ion_hostptr; |
|
||||
|
|
||||
} cl_mem_ion_host_ptr; |
|
||||
|
|
||||
#endif /* CL_VERSION_1_1 */ |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
|
|
||||
#endif /* __CL_EXT_H */ |
|
@ -1,162 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008 - 2012 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_GL_H |
|
||||
#define __OPENCL_CL_GL_H |
|
||||
|
|
||||
#ifdef __APPLE__ |
|
||||
#include <OpenCL/cl.h> |
|
||||
#else |
|
||||
#include <CL/cl.h> |
|
||||
#endif |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
typedef cl_uint cl_gl_object_type; |
|
||||
typedef cl_uint cl_gl_texture_info; |
|
||||
typedef cl_uint cl_gl_platform_info; |
|
||||
typedef struct __GLsync *cl_GLsync; |
|
||||
|
|
||||
/* cl_gl_object_type = 0x2000 - 0x200F enum values are currently taken */ |
|
||||
#define CL_GL_OBJECT_BUFFER 0x2000 |
|
||||
#define CL_GL_OBJECT_TEXTURE2D 0x2001 |
|
||||
#define CL_GL_OBJECT_TEXTURE3D 0x2002 |
|
||||
#define CL_GL_OBJECT_RENDERBUFFER 0x2003 |
|
||||
#define CL_GL_OBJECT_TEXTURE2D_ARRAY 0x200E |
|
||||
#define CL_GL_OBJECT_TEXTURE1D 0x200F |
|
||||
#define CL_GL_OBJECT_TEXTURE1D_ARRAY 0x2010 |
|
||||
#define CL_GL_OBJECT_TEXTURE_BUFFER 0x2011 |
|
||||
|
|
||||
/* cl_gl_texture_info */ |
|
||||
#define CL_GL_TEXTURE_TARGET 0x2004 |
|
||||
#define CL_GL_MIPMAP_LEVEL 0x2005 |
|
||||
#define CL_GL_NUM_SAMPLES 0x2012 |
|
||||
|
|
||||
|
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL |
|
||||
clCreateFromGLBuffer(cl_context /* context */, |
|
||||
cl_mem_flags /* flags */, |
|
||||
cl_GLuint /* bufobj */, |
|
||||
int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL |
|
||||
clCreateFromGLTexture(cl_context /* context */, |
|
||||
cl_mem_flags /* flags */, |
|
||||
cl_GLenum /* target */, |
|
||||
cl_GLint /* miplevel */, |
|
||||
cl_GLuint /* texture */, |
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_2; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_mem CL_API_CALL |
|
||||
clCreateFromGLRenderbuffer(cl_context /* context */, |
|
||||
cl_mem_flags /* flags */, |
|
||||
cl_GLuint /* renderbuffer */, |
|
||||
cl_int * /* errcode_ret */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clGetGLObjectInfo(cl_mem /* memobj */, |
|
||||
cl_gl_object_type * /* gl_object_type */, |
|
||||
cl_GLuint * /* gl_object_name */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clGetGLTextureInfo(cl_mem /* memobj */, |
|
||||
cl_gl_texture_info /* param_name */, |
|
||||
size_t /* param_value_size */, |
|
||||
void * /* param_value */, |
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clEnqueueAcquireGLObjects(cl_command_queue /* command_queue */, |
|
||||
cl_uint /* num_objects */, |
|
||||
const cl_mem * /* mem_objects */, |
|
||||
cl_uint /* num_events_in_wait_list */, |
|
||||
const cl_event * /* event_wait_list */, |
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clEnqueueReleaseGLObjects(cl_command_queue /* command_queue */, |
|
||||
cl_uint /* num_objects */, |
|
||||
const cl_mem * /* mem_objects */, |
|
||||
cl_uint /* num_events_in_wait_list */, |
|
||||
const cl_event * /* event_wait_list */, |
|
||||
cl_event * /* event */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
|
|
||||
/* Deprecated OpenCL 1.1 APIs */ |
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL |
|
||||
clCreateFromGLTexture2D(cl_context /* context */, |
|
||||
cl_mem_flags /* flags */, |
|
||||
cl_GLenum /* target */, |
|
||||
cl_GLint /* miplevel */, |
|
||||
cl_GLuint /* texture */, |
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; |
|
||||
|
|
||||
extern CL_API_ENTRY CL_EXT_PREFIX__VERSION_1_1_DEPRECATED cl_mem CL_API_CALL |
|
||||
clCreateFromGLTexture3D(cl_context /* context */, |
|
||||
cl_mem_flags /* flags */, |
|
||||
cl_GLenum /* target */, |
|
||||
cl_GLint /* miplevel */, |
|
||||
cl_GLuint /* texture */, |
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1_DEPRECATED; |
|
||||
|
|
||||
/* cl_khr_gl_sharing extension */ |
|
||||
|
|
||||
#define cl_khr_gl_sharing 1 |
|
||||
|
|
||||
typedef cl_uint cl_gl_context_info; |
|
||||
|
|
||||
/* Additional Error Codes */ |
|
||||
#define CL_INVALID_GL_SHAREGROUP_REFERENCE_KHR -1000 |
|
||||
|
|
||||
/* cl_gl_context_info */ |
|
||||
#define CL_CURRENT_DEVICE_FOR_GL_CONTEXT_KHR 0x2006 |
|
||||
#define CL_DEVICES_FOR_GL_CONTEXT_KHR 0x2007 |
|
||||
|
|
||||
/* Additional cl_context_properties */ |
|
||||
#define CL_GL_CONTEXT_KHR 0x2008 |
|
||||
#define CL_EGL_DISPLAY_KHR 0x2009 |
|
||||
#define CL_GLX_DISPLAY_KHR 0x200A |
|
||||
#define CL_WGL_HDC_KHR 0x200B |
|
||||
#define CL_CGL_SHAREGROUP_KHR 0x200C |
|
||||
|
|
||||
extern CL_API_ENTRY cl_int CL_API_CALL |
|
||||
clGetGLContextInfoKHR(const cl_context_properties * /* properties */, |
|
||||
cl_gl_context_info /* param_name */, |
|
||||
size_t /* param_value_size */, |
|
||||
void * /* param_value */, |
|
||||
size_t * /* param_value_size_ret */) CL_API_SUFFIX__VERSION_1_0; |
|
||||
|
|
||||
typedef CL_API_ENTRY cl_int (CL_API_CALL *clGetGLContextInfoKHR_fn)( |
|
||||
const cl_context_properties * properties, |
|
||||
cl_gl_context_info param_name, |
|
||||
size_t param_value_size, |
|
||||
void * param_value, |
|
||||
size_t * param_value_size_ret); |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif /* __OPENCL_CL_GL_H */ |
|
@ -1,69 +0,0 @@ |
|||||
/**********************************************************************************
|
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
**********************************************************************************/ |
|
||||
|
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
|
||||
|
|
||||
/* cl_gl_ext.h contains vendor (non-KHR) OpenCL extensions which have */ |
|
||||
/* OpenGL dependencies. */ |
|
||||
|
|
||||
#ifndef __OPENCL_CL_GL_EXT_H |
|
||||
#define __OPENCL_CL_GL_EXT_H |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
#ifdef __APPLE__ |
|
||||
#include <OpenCL/cl_gl.h> |
|
||||
#else |
|
||||
#include <CL/cl_gl.h> |
|
||||
#endif |
|
||||
|
|
||||
/*
|
|
||||
* For each extension, follow this template |
|
||||
* cl_VEN_extname extension */ |
|
||||
/* #define cl_VEN_extname 1
|
|
||||
* ... define new types, if any |
|
||||
* ... define new tokens, if any |
|
||||
* ... define new APIs, if any |
|
||||
* |
|
||||
* If you need GLtypes here, mirror them with a cl_GLtype, rather than including a GL header |
|
||||
* This allows us to avoid having to decide whether to include GL headers or GLES here. |
|
||||
*/ |
|
||||
|
|
||||
/*
|
|
||||
* cl_khr_gl_event extension |
|
||||
* See section 9.9 in the OpenCL 1.1 spec for more information |
|
||||
*/ |
|
||||
#define CL_COMMAND_GL_FENCE_SYNC_OBJECT_KHR 0x200D |
|
||||
|
|
||||
extern CL_API_ENTRY cl_event CL_API_CALL |
|
||||
clCreateEventFromGLsyncKHR(cl_context /* context */, |
|
||||
cl_GLsync /* cl_GLsync */, |
|
||||
cl_int * /* errcode_ret */) CL_EXT_SUFFIX__VERSION_1_1; |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif /* __OPENCL_CL_GL_EXT_H */ |
|
File diff suppressed because it is too large
@ -1,54 +0,0 @@ |
|||||
/*******************************************************************************
|
|
||||
* Copyright (c) 2008-2012 The Khronos Group Inc. |
|
||||
* |
|
||||
* Permission is hereby granted, free of charge, to any person obtaining a |
|
||||
* copy of this software and/or associated documentation files (the |
|
||||
* "Materials"), to deal in the Materials without restriction, including |
|
||||
* without limitation the rights to use, copy, modify, merge, publish, |
|
||||
* distribute, sublicense, and/or sell copies of the Materials, and to |
|
||||
* permit persons to whom the Materials are furnished to do so, subject to |
|
||||
* the following conditions: |
|
||||
* |
|
||||
* The above copyright notice and this permission notice shall be included |
|
||||
* in all copies or substantial portions of the Materials. |
|
||||
* |
|
||||
* THE MATERIALS ARE PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, |
|
||||
* EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF |
|
||||
* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. |
|
||||
* IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY |
|
||||
* CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, |
|
||||
* TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE |
|
||||
* MATERIALS OR THE USE OR OTHER DEALINGS IN THE MATERIALS. |
|
||||
******************************************************************************/ |
|
||||
|
|
||||
/* $Revision: 11708 $ on $Date: 2010-06-13 23:36:24 -0700 (Sun, 13 Jun 2010) $ */ |
|
||||
|
|
||||
#ifndef __OPENCL_H |
|
||||
#define __OPENCL_H |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
extern "C" { |
|
||||
#endif |
|
||||
|
|
||||
#ifdef __APPLE__ |
|
||||
|
|
||||
#include <OpenCL/cl.h> |
|
||||
#include <OpenCL/cl_gl.h> |
|
||||
#include <OpenCL/cl_gl_ext.h> |
|
||||
#include <OpenCL/cl_ext.h> |
|
||||
|
|
||||
#else |
|
||||
|
|
||||
#include <CL/cl.h> |
|
||||
#include <CL/cl_gl.h> |
|
||||
#include <CL/cl_gl_ext.h> |
|
||||
#include <CL/cl_ext.h> |
|
||||
|
|
||||
#endif |
|
||||
|
|
||||
#ifdef __cplusplus |
|
||||
} |
|
||||
#endif |
|
||||
|
|
||||
#endif /* __OPENCL_H */ |
|
||||
|
|
@ -1,53 +0,0 @@ |
|||||
#ifndef BIP_H |
|
||||
#define BIP_H |
|
||||
|
|
||||
#include <QMutex> |
|
||||
|
|
||||
#include "model/ultrasoundModule/UsModule.h" |
|
||||
#include "model/backendImageProcessor/core/BipCore.h" |
|
||||
#include "model/scenarioGenerator/dto/software/SoftwareOutput.h" |
|
||||
#include "model/backendImageProcessor/dto/BipImage.h" |
|
||||
#include "model/databaseManager/type/EDatabaseRequest.h" |
|
||||
#include "model/backendImageProcessor/utils/KernelInputFetcher.h" |
|
||||
#include "model/backendImageProcessor/dtoInternal/BipInput.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible for processing frames with GPU's aid |
|
||||
* @author Mohsen Emami - revised by h-4nd-h |
|
||||
* @date 2019/8/5(1398/5/14) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class Bip : public UsModule |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
US_MODULE |
|
||||
SINGLETON(Bip) |
|
||||
|
|
||||
private: |
|
||||
BipCore* _core; |
|
||||
|
|
||||
KernelInputFetcher* _kernelInput; |
|
||||
|
|
||||
Bip(); |
|
||||
|
|
||||
void sendDataToEvocator(const UsPacket& packet); |
|
||||
void sendDataToViewModel(const BipImage_t& outputImage); |
|
||||
|
|
||||
public: |
|
||||
~Bip() override |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
signals: |
|
||||
void sendOutputImageToViewModel(QVariant outputImage); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void newOuput(const UsPacket& evocData, const BipImage_t& outputImage); |
|
||||
void requestDataFromDatabase(EDatabaseRequest::eDatabaseRequest request, |
|
||||
const QList<QVariant> args); |
|
||||
}; |
|
||||
|
|
||||
#endif //BIP_H
|
|
@ -1,52 +0,0 @@ |
|||||
#ifndef BASESTRATEGY_H |
|
||||
#define BASESTRATEGY_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
#include "model/ultrasoundModule/metadata/UsMetadataBag.h" |
|
||||
#include "model/backendImageProcessor/dtoInternal/KernelInput.h" |
|
||||
|
|
||||
class BaseStrategy : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
void saveOuput(cl::Image* inputFrame, UsMetadataBag& metadata); |
|
||||
|
|
||||
protected: |
|
||||
cl::Kernel _clKernel; |
|
||||
cl::Context _clContext; |
|
||||
cl::CommandQueue _clQueue; |
|
||||
OpenClHelper _openClHelper; |
|
||||
|
|
||||
cl::Device getDefaultDevice(const cl::Context& context); |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* inputFrame, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* scrathPad) = 0; |
|
||||
virtual void finalize() = 0; |
|
||||
|
|
||||
public: |
|
||||
BaseStrategy(const cl::Context context, |
|
||||
const cl::CommandQueue queue, |
|
||||
const QString kernelPath, |
|
||||
const QString kernelName); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) = 0; |
|
||||
|
|
||||
signals: |
|
||||
void gpuDataReady(cl::Image* frames, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* scrathPad); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void newGpuData(cl::Image* frames, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* scrathPad); |
|
||||
void newCpuData(KernelInput_t parameters); |
|
||||
}; |
|
||||
|
|
||||
#endif //BASESTRATEGY_H
|
|
@ -1,90 +0,0 @@ |
|||||
#ifndef BIPCORE_H |
|
||||
#define BIPCORE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/process/ProcessQueue.h" |
|
||||
#include "model/backendImageProcessor/core/process/ProcessQueueFactory.h" |
|
||||
#include "model/backendImageProcessor/type/EImageMode.h" |
|
||||
#include "model/backendImageProcessor/dtoInternal/BipInput.h" |
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
#include "config/Configuration.h" |
|
||||
#include "model/hardware/Hardware.h" |
|
||||
#include "model/backendImageProcessor/dto/BipImage.h" |
|
||||
#include "model/ultrasoundModule/metadata/HardwareMetadata.h" |
|
||||
#include "model/ultrasoundModule/metadata/BMetadata.h" |
|
||||
|
|
||||
//helper macros
|
|
||||
#define REGISTER_STRATEGY(c) qRegisterMetaType<c*>(#c) |
|
||||
|
|
||||
//defines
|
|
||||
#define SCRATCH_PAD_SIZE 2000 |
|
||||
|
|
||||
#define KERNEL_PATH_POSTFIX "/lib/Kernels" |
|
||||
#define SCENARIO_PATH_POSTFIX "/config/Scenarios" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Does the actual work of BIP module |
|
||||
* @author Hessamoddin Hediyehloo(H-4nd-H) |
|
||||
* @date 2020/08/22(1399/6/1) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class BipCore : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
QList<ProcessQueue*> _queues; |
|
||||
|
|
||||
cl::CommandQueue _clQueue; |
|
||||
cl::Context _clContext; |
|
||||
cl::Buffer* _scratchPad; |
|
||||
|
|
||||
OpenClHelper _openCLHelper; |
|
||||
|
|
||||
QString _kernelsFolder; |
|
||||
QString _scenariosFolder; |
|
||||
|
|
||||
UsPacket _dataStorage; |
|
||||
BipImage_t _outputImage; |
|
||||
|
|
||||
QString getApplicationHomePath(); |
|
||||
QString getStrategyPath(EImageMode::eImageMode imageMode); |
|
||||
void createStrategyQueues(ProcessQueueFactory* queueFactory, QString inputPath); |
|
||||
QStringList getQueueDestinations(QString line); |
|
||||
bool queueIsNull(ProcessQueue* queue); |
|
||||
bool shouldSendImageToOutside(QString destination); |
|
||||
void process(cl::Image* clFrames, const UsMetadataBag& metaData, cl::Buffer* _scratchPad); |
|
||||
void dispatcher(cl::Image* frame, UsMetadataBag metadata, EDataType::eDataType dataType); |
|
||||
void connectQueuesStrategyParam(ProcessQueue* queue); |
|
||||
void connectQueuesTransientData(ProcessQueue* queue); |
|
||||
ProcessQueue* selectQueueByName(QString name); |
|
||||
void connectQueueOutputToAnotherQueue(ProcessQueue* source, QString destinationName); |
|
||||
void connectQueueOutputToCore(ProcessQueue* source); |
|
||||
void registerStrategies(); |
|
||||
|
|
||||
public: |
|
||||
BipCore(); |
|
||||
~BipCore(); |
|
||||
|
|
||||
void init(); |
|
||||
void changeMode(const EImageMode::eImageMode& imageMode); |
|
||||
void changeStrategyParam(KernelInput_t scenarioParams); |
|
||||
void newData(const UsPacket& data); |
|
||||
|
|
||||
signals: |
|
||||
void strategyParamReady(KernelInput_t parameters); |
|
||||
void outputReady(const UsPacket cineData, const BipImage_t outputImage); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
|
|
||||
void newQueueTransientData(const QByteArray transienData, UsMetadataBag& metadata); |
|
||||
void newQueueOutputData(cl::Image* frames, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* _scratchPad); |
|
||||
}; |
|
||||
|
|
||||
#endif //BIPCORE_H
|
|
@ -1,50 +0,0 @@ |
|||||
#ifndef SCANCONVERSIONALG_H |
|
||||
#define SCANCONVERSIONALG_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/dtoInternal/KernelInput.h" |
|
||||
#include "model/backendImageProcessor/core/algorithm/ScanConversionOutput.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief utils class for scan conversion method, as this method will be used at least in two |
|
||||
* places having them here is a good choice |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class ScanConversionAlg |
|
||||
{ |
|
||||
private: |
|
||||
static ScanConversionOutput_t linear(BipScanConversionConfig_t params, QVector<float> pixelXPos, |
|
||||
QVector<float> pixelZPos); |
|
||||
|
|
||||
static ScanConversionOutput_t virtualConvex(BipScanConversionConfig_t params, |
|
||||
QVector<float> pixelXPos, |
|
||||
QVector<float> pixelZPos); |
|
||||
|
|
||||
static ScanConversionOutput_t convex(BipScanConversionConfig_t params, QVector<float> pixelXPos, |
|
||||
QVector<float> pixelZPos); |
|
||||
|
|
||||
public: |
|
||||
static QPair<QVector<float>, QVector<float> > makeGrid(BipScanConversionConfig_t params); |
|
||||
|
|
||||
static ScanConversionOutput_t scanConversion(BipScanConversionConfig_t params); |
|
||||
|
|
||||
static QPair<QVector<float>, QVector<float> > virtualScanConversion(QVector<float> pixelXPos, |
|
||||
QVector<float> pixelZPos, |
|
||||
float steering, |
|
||||
float virtualOriginalZ, |
|
||||
float startDepth, |
|
||||
float depth, |
|
||||
float vcMaxTheta); |
|
||||
|
|
||||
static QPair<QVector<float>, QVector<float> > convexScanConversion( |
|
||||
QVector<float> pixelXPos, |
|
||||
QVector<float> pixelZPos, |
|
||||
float steering, |
|
||||
float angle, |
|
||||
float fieldOfView, |
|
||||
float probeRadius, |
|
||||
float startDepth, |
|
||||
float depth); |
|
||||
}; |
|
||||
|
|
||||
#endif //SCANCONVERSIONALG_H
|
|
@ -1,14 +0,0 @@ |
|||||
#ifndef SCANCONVERSIONOUTPUT_H |
|
||||
#define SCANCONVERSIONOUTPUT_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
struct ScanConversionOutput_t |
|
||||
{ |
|
||||
QVector<float> scanAzPos; |
|
||||
QVector<float> scanAxPos; |
|
||||
QVector<float> gridAzPos; |
|
||||
QVector<float> gridAxPos; |
|
||||
}; |
|
||||
|
|
||||
#endif //SCANCONVERSIONOUTPUT_H
|
|
@ -1,36 +0,0 @@ |
|||||
#ifndef CRI_H |
|
||||
#define CRI_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/CriDto.h" |
|
||||
|
|
||||
#define CRI_MAX_BUFFER_SIZE 11 |
|
||||
|
|
||||
class Cri : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE Cri(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, |
|
||||
cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, |
|
||||
Cri_t> _kernelFunctor; |
|
||||
Cri_t _kernelParameters; |
|
||||
QList<cl::Image*> _criBuffer; |
|
||||
int counter = 0; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //CRI_H
|
|
@ -1,40 +0,0 @@ |
|||||
#ifndef DYNAMICCONTRASTB_H |
|
||||
#define DYNAMICCONTRASTB_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/DynamicContrastKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with dynamic contrast opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/10/19(1399/7/28) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class DynamicContrastB : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Buffer, DynamicContrast_t> _kernelFunctor; |
|
||||
DynamicContrast_t _kernelParameters; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
|
|
||||
protected: |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE DynamicContrastB(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
~DynamicContrastB(); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //DYNAMICCONTRASTB_H
|
|
@ -1,47 +0,0 @@ |
|||||
#ifndef ENHANCEB_H |
|
||||
#define ENHANCEB_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/EnhanceKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with enhance opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/10/21(1399/7/30) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class EnhanceB : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Buffer, Enhance_t> _kernelFunctor; |
|
||||
|
|
||||
Enhance_t _kernelParameters; |
|
||||
|
|
||||
bool _run; |
|
||||
|
|
||||
cl::Buffer* _filter; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
|
|
||||
protected: |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE EnhanceB(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
~EnhanceB(); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //ENHANCEB_H
|
|
@ -1,44 +0,0 @@ |
|||||
#ifndef FRAMEFILTER_H |
|
||||
#define FRAMEFILTER_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/PersistKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with FrameFilter opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/11/11(1399/8/20) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class FrameFilter : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE FrameFilter(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, |
|
||||
Persist_t> _kernelFunctor; |
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
|
|
||||
Persist_t _kernelParameters; |
|
||||
|
|
||||
QList<cl::Image*> _sum; |
|
||||
QList<QList<cl::Image*> > _last; |
|
||||
QList<int> _counter; |
|
||||
|
|
||||
int _fifoLength; |
|
||||
}; |
|
||||
|
|
||||
#endif //FRAMEFILTER_H
|
|
@ -1,41 +0,0 @@ |
|||||
#ifndef GRAYMAPB_H |
|
||||
#define GRAYMAPB_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/GrayMapKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with graymap opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/10/26(1399/8/5) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class GrayMapB : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE GrayMapB(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Buffer> _kernelFunctor; |
|
||||
|
|
||||
GrayMap_t _kernelParameters; |
|
||||
|
|
||||
cl::Buffer* _grayMap; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //GRAYMAPB_H
|
|
@ -1,44 +0,0 @@ |
|||||
#ifndef PERSIST_H |
|
||||
#define PERSIST_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/PersistKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with Persist opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/11/11(1399/8/20) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class Persist : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE Persist(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, cl::Image2D, |
|
||||
Persist_t> _kernelFunctor; |
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
|
|
||||
Persist_t _kernelParameters; |
|
||||
|
|
||||
cl::Image* _sum; |
|
||||
QList<cl::Image*> _last; |
|
||||
int _counter; |
|
||||
|
|
||||
int _fifoLength; |
|
||||
}; |
|
||||
|
|
||||
#endif //PERSIST_H
|
|
@ -1,41 +0,0 @@ |
|||||
#ifndef REJECTIONB_H |
|
||||
#define REJECTIONB_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/RejectionKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with Reject opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/10/24(1399/8/3) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
|
|
||||
class RejectionB : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE RejectionB(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, Rejection_t> _kernelFunctor; |
|
||||
Rejection_t _kernelParameters; |
|
||||
|
|
||||
float _rejectionThr; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //REJECTIONB_H
|
|
@ -1,46 +0,0 @@ |
|||||
#ifndef SCANCONVERSION_H |
|
||||
#define SCANCONVERSION_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/ScanConversionKernelDto.h" |
|
||||
|
|
||||
class ScanConversionB : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE ScanConversionB(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Buffer, cl::Buffer, cl::Buffer, cl::Buffer, |
|
||||
ScanConversion_t> _kernelFunctor; |
|
||||
|
|
||||
ScanConversion_t _kernelParameters; |
|
||||
|
|
||||
void calcParams(int frameNumber); |
|
||||
|
|
||||
QList<BipScanConversionConfig_t> _configs; |
|
||||
quint64 _width; |
|
||||
quint64 _height; |
|
||||
|
|
||||
quint8 lastFrameCounter; |
|
||||
|
|
||||
cl::Buffer* _gridX; |
|
||||
cl::Buffer* _gridZ; |
|
||||
cl::Buffer* _queryX; |
|
||||
cl::Buffer* _queryZ; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //SCANCONVERSION_H
|
|
@ -1,41 +0,0 @@ |
|||||
#ifndef TINTMAP_H |
|
||||
#define TINTMAP_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/TintMapKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with tinemap opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/10/26(1399/8/5) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class TintMapB : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE TintMapB(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Buffer> _kernelFunctor; |
|
||||
|
|
||||
TintMap_t _kernelParameters; |
|
||||
|
|
||||
cl::Buffer* _tintMap; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //TINTMAP_H
|
|
@ -1,13 +0,0 @@ |
|||||
#ifndef CRIDTO_H |
|
||||
#define CRIDTO_H |
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
typedef struct Cri_t |
|
||||
{ |
|
||||
cl_int criFilterMode; |
|
||||
cl_int frameCntr; |
|
||||
cl_int scenarioFrameNumber; |
|
||||
cl_float zeroSteeringFrameWeight; |
|
||||
cl_float nonZeroSteeringFrameWeight; |
|
||||
}Cri_t; |
|
||||
|
|
||||
#endif //CRIDTO_H
|
|
@ -1,13 +0,0 @@ |
|||||
#ifndef DYNAMICCONTRASTKERNELDTO_H |
|
||||
#define DYNAMICCONTRASTKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct DynamicContrast_t |
|
||||
{ |
|
||||
cl_int gain; |
|
||||
cl_int transformType; //0 : log, 1 : power
|
|
||||
cl_float gamma; |
|
||||
}DynamicContrast_t; |
|
||||
|
|
||||
#endif //DYNAMICCONTRASTKERNELDTO_H
|
|
@ -1,14 +0,0 @@ |
|||||
#ifndef ENHANCEKERNELDTO_H |
|
||||
#define ENHANCEKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct Enhance_t |
|
||||
{ |
|
||||
cl_int filterWidth; |
|
||||
cl_int filterHeight; |
|
||||
cl_int width; |
|
||||
cl_int height; |
|
||||
}Enhance_t; |
|
||||
|
|
||||
#endif //ENHANCEKERNELDTO_H
|
|
@ -1,12 +0,0 @@ |
|||||
#ifndef GRAYMAPKERNELDTO_H |
|
||||
#define GRAYMAPKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct GrayMap_t |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
GrayMap_t; |
|
||||
|
|
||||
#endif //GRAYMAPKERNELDTO_H
|
|
@ -1,12 +0,0 @@ |
|||||
#ifndef PERSISTKERNELDTO_H |
|
||||
#define PERSISTKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct Persist_t |
|
||||
{ |
|
||||
cl_int fifoLength; |
|
||||
cl_int mode; |
|
||||
}Persist_t; |
|
||||
|
|
||||
#endif //PERSISTKERNELDTO_H
|
|
@ -1,11 +0,0 @@ |
|||||
#ifndef REJECTIONKERNELDTO_H |
|
||||
#define REJECTIONKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct Rejection_t |
|
||||
{ |
|
||||
cl_int rejectThr; |
|
||||
}Rejection_t; |
|
||||
|
|
||||
#endif //REJECTIONKERNELDTO_H
|
|
@ -1,15 +0,0 @@ |
|||||
#ifndef SCANCONVERSIONKERNELDTO_H |
|
||||
#define SCANCONVERSIONKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct ScanConversion_t |
|
||||
{ |
|
||||
cl_int width; |
|
||||
cl_int gridXSize; |
|
||||
cl_int gridZSize; |
|
||||
cl_float dx; |
|
||||
cl_float dz; |
|
||||
}ScanConversion_t; |
|
||||
|
|
||||
#endif //SCANCONVERSIONKERNELDTO_H
|
|
@ -1,16 +0,0 @@ |
|||||
#ifndef SRIKERNELDTO_H |
|
||||
#define SRIKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct Sri_t |
|
||||
{ |
|
||||
cl_int state; |
|
||||
cl_int windowSize; |
|
||||
cl_float alpha; |
|
||||
cl_int algorithmSelector; |
|
||||
cl_int width; |
|
||||
cl_int height; |
|
||||
}Sri_t; |
|
||||
|
|
||||
#endif //SRIKERNELDTO_H
|
|
@ -1,12 +0,0 @@ |
|||||
#ifndef TINTMAPKERNELDTO_H |
|
||||
#define TINTMAPKERNELDTO_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/utils/OpenClHelper.h" |
|
||||
|
|
||||
typedef struct TintMap_t |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
TintMap_t; |
|
||||
|
|
||||
#endif //TINTMAPKERNELDTO_H
|
|
@ -1,38 +0,0 @@ |
|||||
#ifndef PREPROCESS_H |
|
||||
#define PREPROCESS_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with PreProcess opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/11/07(1399/8/17) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class PreProcess : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE PreProcess(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t parameters) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::Buffer> _kernelFunctor; |
|
||||
|
|
||||
bool run; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //PREPROCESS_H
|
|
@ -1,42 +0,0 @@ |
|||||
#ifndef SRI_H |
|
||||
#define SRI_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/kernelHelper/kernelDto/SriKernelDto.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The class is responsible interfacing with Sri opencl kernel |
|
||||
* @author Hessamoddin Hediyehloo(h-4nd-h) |
|
||||
* @date 2020/10/24(1399/8/3) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class Sri : public BaseStrategy |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
Q_INVOKABLE Sri(const cl::Context& context, |
|
||||
const cl::CommandQueue& queue, |
|
||||
const QString kernelPath); |
|
||||
|
|
||||
virtual void cpuProcess(KernelInput_t input) override; |
|
||||
virtual void finalize() override; |
|
||||
|
|
||||
private: |
|
||||
cl::KernelFunctor<cl::Image2D, cl::Image2D, cl::LocalSpaceArg, cl::Buffer, |
|
||||
Sri_t> _kernelFunctor; |
|
||||
|
|
||||
Sri_t _kernelParameters; |
|
||||
|
|
||||
bool _run; |
|
||||
|
|
||||
virtual cl::Image* gpuProcess(cl::Image* frames, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* scrathPad) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //SRI_H
|
|
@ -1,20 +0,0 @@ |
|||||
#ifndef PROCESSCONFIG_H |
|
||||
#define PROCESSCONFIG_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/strategy/StrategyConfig.h" |
|
||||
|
|
||||
class ProcessConfig |
|
||||
{ |
|
||||
private: |
|
||||
QString _connection; |
|
||||
|
|
||||
public: |
|
||||
ProcessConfig(QString connection); |
|
||||
|
|
||||
bool isEmpty(); |
|
||||
QList<StrategyConfig> getFields(); |
|
||||
}; |
|
||||
|
|
||||
#endif //PROCESSCONFIG_H
|
|
@ -1,62 +0,0 @@ |
|||||
#ifndef PROCESSQUEUE_H |
|
||||
#define PROCESSQUEUE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/strategy/StrategyQueue.h" |
|
||||
#include "model/ultrasoundModule/metadata/UsMetadataBag.h" |
|
||||
#include "model/ultrasoundModule/metadata/UsBaseMetadata.h" |
|
||||
#include "model/ultrasoundModule/metadata/BipMetadata.h" |
|
||||
|
|
||||
class ProcessQueue : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
protected: |
|
||||
QString _name; |
|
||||
StrategyQueue _queue; |
|
||||
|
|
||||
cl::CommandQueue _clQueue; |
|
||||
|
|
||||
public: |
|
||||
ProcessQueue() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
virtual bool create(const QString name, const QString connection) = 0; |
|
||||
|
|
||||
void init(const cl::Context& clContext, |
|
||||
const cl::CommandQueue& clQueue, |
|
||||
const QString kernelsFolder) |
|
||||
{ |
|
||||
_clQueue = clQueue; |
|
||||
_queue.init(clContext, clQueue, kernelsFolder); |
|
||||
} |
|
||||
|
|
||||
QString getName() |
|
||||
{ |
|
||||
return _name; |
|
||||
} |
|
||||
|
|
||||
signals: |
|
||||
void strategyParamReady(KernelInput_t parameters); |
|
||||
void transientOutputReady(QByteArray transient, UsMetadataBag& metadata); |
|
||||
|
|
||||
void processedOutputReady(cl::Image* frames, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* _scratchPad); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
virtual void process(cl::Image* clFrames, UsMetadataBag& metadata, cl::Buffer* _scratchPad) = 0; |
|
||||
virtual void newStrategyParam(KernelInput_t parameters) = 0; |
|
||||
virtual void newProcessedData(cl::Image* frames, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* _scratchPad) = 0; |
|
||||
virtual void newTransientData(cl::Image* frames, |
|
||||
UsMetadataBag& metadata, |
|
||||
cl::Buffer* _scratchPad) = 0; |
|
||||
}; |
|
||||
|
|
||||
#endif //PROCESSQUEUE_H
|
|
@ -1,26 +0,0 @@ |
|||||
#ifndef STRATEGYQUEUEFACTORY_H |
|
||||
#define STRATEGYQUEUEFACTORY_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/process/ProcessQueue.h" |
|
||||
#include "model/backendImageProcessor/core/scenario/ScenarioConfig.h" |
|
||||
|
|
||||
class ProcessQueueFactory |
|
||||
{ |
|
||||
public: |
|
||||
ProcessQueueFactory() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
virtual ~ProcessQueueFactory() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
virtual ProcessQueue* createStrategyQueue(const ScenarioConfig& config, |
|
||||
cl::Context clContext, |
|
||||
cl::CommandQueue clQueue, |
|
||||
QString kernelsFolder) = 0; |
|
||||
}; |
|
||||
|
|
||||
#endif //STRATEGYQUEUEFACTORY_H
|
|
@ -1,33 +0,0 @@ |
|||||
#ifndef TWODSTRATEGYQUEUE_H |
|
||||
#define TWODSTRATEGYQUEUE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QByteArray> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/process/ProcessQueue.h" |
|
||||
|
|
||||
class TwoDProcessQueue : public ProcessQueue |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
QByteArray readProcessedImageFromGpu(cl::Image* frame, UsMetadataBag& metadataBag); |
|
||||
void registerStrategies(); |
|
||||
|
|
||||
public: |
|
||||
bool create(const QString name, const QString connection) override; |
|
||||
|
|
||||
void process(cl::Image* inputFrame, UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scratchPad) override; |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
void newStrategyParam(KernelInput_t parameters) override; |
|
||||
void newProcessedData(cl::Image* frame, UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scratchPad) override; |
|
||||
void newTransientData(cl::Image* frame, UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scratchPad) override; |
|
||||
//uncrustify on
|
|
||||
}; |
|
||||
|
|
||||
#endif //STRATEGYQUEUE_H
|
|
@ -1,19 +0,0 @@ |
|||||
#ifndef TWODSTRATEGYQUEUEFACTORY_H |
|
||||
#define TWODSTRATEGYQUEUEFACTORY_H |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/process/ProcessQueueFactory.h" |
|
||||
#include "model/backendImageProcessor/core/process/twoD/TwoDProcessQueue.h" |
|
||||
|
|
||||
class TwoDProcessQueueFactory : public ProcessQueueFactory |
|
||||
{ |
|
||||
public: |
|
||||
TwoDProcessQueueFactory(); |
|
||||
~TwoDProcessQueueFactory() override; |
|
||||
|
|
||||
ProcessQueue* createStrategyQueue(const ScenarioConfig& config, |
|
||||
cl::Context clContext, |
|
||||
cl::CommandQueue clQueue, |
|
||||
QString kernelsFolder) override; |
|
||||
}; |
|
||||
|
|
||||
#endif //TWODSTRATEGYQUEUEFACTORY_H
|
|
@ -1,18 +0,0 @@ |
|||||
#ifndef SCENARIOCONFIG_H |
|
||||
#define SCENARIOCONFIG_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
class ScenarioConfig |
|
||||
{ |
|
||||
QString _connection; |
|
||||
|
|
||||
public: |
|
||||
ScenarioConfig(QString connection); |
|
||||
|
|
||||
QString getQueueName() const; |
|
||||
QString getQueueFunctionality() const; |
|
||||
QStringList getQueueDestinations() const; |
|
||||
}; |
|
||||
|
|
||||
#endif //SCENARIOCONFIG_H
|
|
@ -1,18 +0,0 @@ |
|||||
#ifndef STRATEGYCONFIG_H |
|
||||
#define STRATEGYCONFIG_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
class StrategyConfig |
|
||||
{ |
|
||||
private: |
|
||||
QString _connection; |
|
||||
|
|
||||
public: |
|
||||
StrategyConfig(QString connection); |
|
||||
|
|
||||
QString getStrategyName() const; |
|
||||
bool hasTransientProbe() const; |
|
||||
}; |
|
||||
|
|
||||
#endif //STRATEGYCONFIG_H
|
|
@ -1,44 +0,0 @@ |
|||||
#ifndef STRATEGYQUEUE_H |
|
||||
#define STRATEGYQUEUE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/core/BaseStrategy.h" |
|
||||
#include "model/backendImageProcessor/core/process/ProcessConfig.h" |
|
||||
|
|
||||
class ProcessQueue; |
|
||||
|
|
||||
class StrategyQueue : public QObject |
|
||||
{ |
|
||||
private: |
|
||||
QList<BaseStrategy*> _queue; |
|
||||
|
|
||||
cl::Context _clContext; |
|
||||
cl::CommandQueue _clQueue; |
|
||||
|
|
||||
QString _kernelsFolder; |
|
||||
|
|
||||
bool queueHasMoreThanOneStrategy(); |
|
||||
void connectLastStrategyToPreviousStrategy(); |
|
||||
|
|
||||
BaseStrategy* createStrategy(QString name); |
|
||||
void appendStrategy(BaseStrategy* strategy); |
|
||||
|
|
||||
void connectStrategyTransientOutput(BaseStrategy* strategy, ProcessQueue* owner); |
|
||||
void connectLastStrategyOutput(BaseStrategy* strategy, ProcessQueue* owner); |
|
||||
void connectStrategyParameterPath(BaseStrategy* strategy, ProcessQueue* owner); |
|
||||
void disconnectSignals(); |
|
||||
|
|
||||
public: |
|
||||
StrategyQueue(); |
|
||||
~StrategyQueue(); |
|
||||
|
|
||||
void init(const cl::Context& clContext, |
|
||||
const cl::CommandQueue& clQueue, |
|
||||
const QString kernelsFolder); |
|
||||
void create(ProcessConfig processConfig, ProcessQueue* parent); |
|
||||
void process(cl::Image* inputFrame, UsMetadataBag& metadataBag, |
|
||||
cl::Buffer* scratchPad); |
|
||||
}; |
|
||||
|
|
||||
#endif //STRATEGYQUEUE_H
|
|
@ -1,19 +0,0 @@ |
|||||
#ifndef BIPIMAGE_H |
|
||||
#define BIPIMAGE_H |
|
||||
|
|
||||
#include <QImage> |
|
||||
|
|
||||
#include "model/ultrasoundModule/metadata/UsMetadataBag.h" |
|
||||
|
|
||||
typedef struct BipImage_t |
|
||||
{ |
|
||||
QImage bImage; |
|
||||
QImage mImage; |
|
||||
QImage cImage; |
|
||||
QImage cmImage; |
|
||||
UsMetadataBag metaData; |
|
||||
}BipImage_t; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(BipImage_t) |
|
||||
|
|
||||
#endif //BIPIMAGE_H
|
|
@ -1,11 +0,0 @@ |
|||||
#ifndef BIPPROBEPROPERTIES_H |
|
||||
#define BIPPROBEPROPERTIES_H |
|
||||
|
|
||||
typedef struct BipProbeProperties_t |
|
||||
{ |
|
||||
bool linear; |
|
||||
float radius; |
|
||||
float fieldOfView; |
|
||||
}BipProbeProperties_t; |
|
||||
|
|
||||
#endif // BIPPROBEPROPERTIES_H
|
|
@ -1,120 +0,0 @@ |
|||||
#ifndef BIPINPUT_H |
|
||||
#define BIPINPUT_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/dto/BipProbeProperties.h" |
|
||||
#include "model/backendImageProcessor/dtoInternal/BipScanConversionConfig.h" |
|
||||
|
|
||||
struct BipInput_t |
|
||||
{ |
|
||||
//scan conv
|
|
||||
QList<BipScanConversionConfig_t> scanConversionConfig; |
|
||||
uint outputWidth; |
|
||||
uint outputHeight; |
|
||||
//reject
|
|
||||
int rejectBThreshold; |
|
||||
int rejectMThreshold; |
|
||||
//enhance
|
|
||||
int enhanceBSelector; |
|
||||
int enhanceMSelector; |
|
||||
//dynamic contrast
|
|
||||
int dynamicContrastBSelector; |
|
||||
int dynamicContrastMSelector; |
|
||||
int dynamicContrastBGain; |
|
||||
int dynamicContrastMGain; |
|
||||
//sri
|
|
||||
int sri; |
|
||||
//cri
|
|
||||
int cri; |
|
||||
int criFilterMode; |
|
||||
//grayMap
|
|
||||
QList<int> grayMapB; |
|
||||
QList<int> grayMapM; |
|
||||
//tintmap
|
|
||||
int tintMapBSelector; |
|
||||
int tintMapMSelector; |
|
||||
//persist
|
|
||||
int persist; |
|
||||
//frame filter
|
|
||||
int frameFilterMode; |
|
||||
|
|
||||
BipInput_t() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
BipInput_t(ScenGenSoftwareOutput_t scenParams) |
|
||||
{ |
|
||||
for(auto i = 0; i < scenParams.scanConversionProps.length(); i++) |
|
||||
{ |
|
||||
scanConversionConfig.append(BipScanConversionConfig_t(scenParams.scanConversionProps[i])); |
|
||||
} |
|
||||
|
|
||||
outputWidth = scenParams.outputWidth; |
|
||||
outputHeight = scenParams.outputHeight; |
|
||||
|
|
||||
//reject
|
|
||||
rejectBThreshold = scenParams.rejectB; |
|
||||
|
|
||||
//sri
|
|
||||
sri = scenParams.sri; |
|
||||
|
|
||||
//enhance
|
|
||||
enhanceBSelector = scenParams.enhanceB; |
|
||||
|
|
||||
//dynamic contrast
|
|
||||
dynamicContrastBSelector = scenParams.dynamicContrastBSelector; |
|
||||
dynamicContrastBGain = scenParams.gainB; |
|
||||
|
|
||||
//graymap
|
|
||||
grayMapB = scenParams.grayMapB; |
|
||||
grayMapM = scenParams.grayMapM; |
|
||||
|
|
||||
//tintmap
|
|
||||
tintMapBSelector = scenParams.tintMapBSelector; |
|
||||
tintMapMSelector = scenParams.tintMapMSelector; |
|
||||
|
|
||||
cri = scenParams.cri; |
|
||||
criFilterMode = scenParams.criFilterMode; |
|
||||
persist = scenParams.persist; |
|
||||
frameFilterMode = scenParams.frameFilterMode; |
|
||||
} |
|
||||
|
|
||||
void operator= (const BipInput_t& b) |
|
||||
{ |
|
||||
scanConversionConfig.append(b.scanConversionConfig); |
|
||||
for(auto i = 0; i < b.grayMapB.length(); i++) |
|
||||
{ |
|
||||
grayMapB.push_back(b.grayMapB[i]); |
|
||||
} |
|
||||
grayMapM.append(b.grayMapM); |
|
||||
|
|
||||
outputWidth = b.outputWidth; |
|
||||
outputHeight = b.outputHeight; |
|
||||
|
|
||||
rejectBThreshold = b.rejectBThreshold; |
|
||||
rejectMThreshold = b.rejectMThreshold; |
|
||||
|
|
||||
enhanceBSelector = b.enhanceBSelector; |
|
||||
enhanceMSelector = b.enhanceMSelector; |
|
||||
|
|
||||
dynamicContrastBSelector = b.dynamicContrastBSelector; |
|
||||
dynamicContrastMSelector = b.dynamicContrastMSelector; |
|
||||
dynamicContrastBGain = b.dynamicContrastBGain; |
|
||||
dynamicContrastMGain = b.dynamicContrastMGain; |
|
||||
|
|
||||
sri = b.sri; |
|
||||
|
|
||||
cri = b.cri; |
|
||||
criFilterMode = b.criFilterMode; |
|
||||
|
|
||||
tintMapBSelector = b.tintMapBSelector; |
|
||||
tintMapMSelector = b.tintMapMSelector; |
|
||||
|
|
||||
persist = b.persist; |
|
||||
|
|
||||
frameFilterMode = b.frameFilterMode; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //BIPINPUT_H
|
|
@ -1,79 +0,0 @@ |
|||||
#ifndef BIPSCANCONVERSIONCONFIG_H |
|
||||
#define BIPSCANCONVERSIONCONFIG_H |
|
||||
|
|
||||
#include "model/scenarioGenerator/dto/software/SoftwareOutput.h" |
|
||||
|
|
||||
struct BipScanConversionConfig_t { |
|
||||
bool linear; |
|
||||
float probeRadius; |
|
||||
float fieldOfView; |
|
||||
float probeFieldOfView; |
|
||||
float virtualOriginalZ; |
|
||||
float bMinScanAx; |
|
||||
float bMinScanAz; |
|
||||
float bMaxScanAx; |
|
||||
float bMaxScanAz; |
|
||||
float minScanAx; |
|
||||
float minScanAz; |
|
||||
float maxScanAx; |
|
||||
float steering; |
|
||||
quint32 rxLineNo; |
|
||||
quint32 rxFocusPointNo; |
|
||||
float rxLineDaz; |
|
||||
float rxPointDax; |
|
||||
bool virtualConvex; |
|
||||
float vcMaxTheta; |
|
||||
float angle; |
|
||||
Pixel_t pixel; |
|
||||
|
|
||||
BipScanConversionConfig_t(ScenGenScanConversionConfig_t config) |
|
||||
{ |
|
||||
this->linear = config.linear; |
|
||||
this->probeRadius = config.probeRadius; |
|
||||
this->fieldOfView = config.fieldOfView; |
|
||||
this->probeFieldOfView = config.probeFieldOfView; |
|
||||
this->virtualOriginalZ = config.virtualOriginalZ; |
|
||||
this->bMinScanAx = config.bMinScanAx; |
|
||||
this->bMinScanAz = config.bMinScanAz; |
|
||||
this->bMaxScanAx = config.bMaxScanAx; |
|
||||
this->bMaxScanAz = config.bMaxScanAz; |
|
||||
this->minScanAx = config.minScanAx; |
|
||||
this->minScanAz = config.minScanAz; |
|
||||
this->maxScanAx = config.maxScanAx; |
|
||||
this->steering = config.steering; |
|
||||
this->rxLineNo = config.rxLineNo; |
|
||||
this->rxFocusPointNo = config.rxFocusPointNo; |
|
||||
this->rxLineDaz = config.rxLineDaz; |
|
||||
this->rxPointDax = config.rxPointDax; |
|
||||
this->virtualConvex = config.virtualConvex; |
|
||||
this->vcMaxTheta = config.vcMaxTheta; |
|
||||
this->angle = config.angle; |
|
||||
this->pixel = config.pixel; |
|
||||
} |
|
||||
|
|
||||
BipScanConversionConfig_t() |
|
||||
{ |
|
||||
this->linear = 0; |
|
||||
this->probeRadius = 0; |
|
||||
this->fieldOfView = 0; |
|
||||
this->probeFieldOfView = 0; |
|
||||
this->virtualOriginalZ = 0; |
|
||||
this->bMinScanAx = 0; |
|
||||
this->bMinScanAz = 0; |
|
||||
this->bMaxScanAx = 0; |
|
||||
this->bMaxScanAz = 0; |
|
||||
this->minScanAx = 0; |
|
||||
this->minScanAz = 0; |
|
||||
this->maxScanAx = 0; |
|
||||
this->steering = 0; |
|
||||
this->rxLineNo = 0; |
|
||||
this->rxFocusPointNo = 0; |
|
||||
this->rxLineDaz = 0; |
|
||||
this->rxPointDax = 0; |
|
||||
this->virtualConvex = 0; |
|
||||
this->vcMaxTheta = 0; |
|
||||
this->angle = 0; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //BIPSCANCONVERSIONCONFIG_H
|
|
@ -1,55 +0,0 @@ |
|||||
#ifndef KERNELINPUT_H |
|
||||
#define KERNELINPUT_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/dto/BipProbeProperties.h" |
|
||||
#include "model/backendImageProcessor/dtoInternal/BipScanConversionConfig.h" |
|
||||
#include "model/databaseManager/type/EAlgorithmType.h" |
|
||||
|
|
||||
typedef struct KernelInput_t |
|
||||
{ |
|
||||
//scan conversion
|
|
||||
QList<BipScanConversionConfig_t> scanConvConfig; |
|
||||
quint64 outputWidth; |
|
||||
quint64 outputHeight; |
|
||||
//reject
|
|
||||
int rejectBThreshold; |
|
||||
int rejectMThreshold; |
|
||||
//enhance
|
|
||||
int enhanceBSelector; |
|
||||
int enhanceMSelector; |
|
||||
EAlgorithmType::eEnhanceAlgorithmType enhanceAlgorithm; |
|
||||
int enhanceLoGFilterSize; |
|
||||
QList<float> enhanceAlpha; |
|
||||
QList<float> enhanceSigma; |
|
||||
//dynamic contrast
|
|
||||
int compressionType; |
|
||||
int dynamicContrastBGain; |
|
||||
int dynamicContrastMGain; |
|
||||
int dynamicContrastBSelector; |
|
||||
int dynamicContrastMSelector; |
|
||||
QList<float> dynamicContrastGamma; |
|
||||
//sri
|
|
||||
int sriSelector; |
|
||||
EAlgorithmType::eSriAlgorithmType sriAlgorithm; |
|
||||
QList<float> sriAlpha; |
|
||||
QList<int> sriWindowSize; |
|
||||
//cri
|
|
||||
int cri; |
|
||||
int criFilterMode; |
|
||||
QList<int> criFilterZeroSteeringWeight; |
|
||||
//grayMap
|
|
||||
QList<int> grayMapMList; |
|
||||
QList<int> grayMapBList; |
|
||||
//tintmap
|
|
||||
QList<QList<int> > tintMapMList; |
|
||||
QList<QList<int> > tintMapBList; |
|
||||
bool tintMapMEnable; |
|
||||
//persist
|
|
||||
int persist; |
|
||||
//frame filter
|
|
||||
int frameFilterMode; |
|
||||
}KernelInput_t; |
|
||||
|
|
||||
#endif //KERNELINPUT_H
|
|
@ -1,92 +0,0 @@ |
|||||
#ifndef EIMAGEMODE_H |
|
||||
#define EIMAGEMODE_H |
|
||||
|
|
||||
#include <QtCore> |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The EImageMode enumeration class |
|
||||
* @author Mohsen Emami |
|
||||
* @date 14 Oct 2019 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class EImageMode : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
//Private constructor prevent the enumeration class from being instantiated
|
|
||||
explicit EImageMode(QObject* parent = nullptr); |
|
||||
|
|
||||
public: |
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Image Mode Enumerator |
|
||||
* |
|
||||
* Contains the reference enumerator for |
|
||||
* identificaiton of image modes. |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
enum eImageMode : quint8 |
|
||||
{ |
|
||||
B, |
|
||||
BM, |
|
||||
BCri, |
|
||||
CineB, |
|
||||
CineBM, |
|
||||
CineBCri, |
|
||||
Test |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eImageMode) |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief enum to string converter |
|
||||
* @param qtEnum Enumerator to be converted to the relevant string |
|
||||
* @return String relevant to the input eImageMode enumerator |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
static QString qtEnumToQString(const eImageMode qtEnum) |
|
||||
{ |
|
||||
return QVariant::fromValue(qtEnum).toString(); |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief string to enum converter |
|
||||
* @param qtEnum Enumerator to be converted to the relevant string |
|
||||
* @return String relevant to the input eImageMode enumerator |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
static eImageMode qtQStringToEnum(const QString qtEnum) |
|
||||
{ |
|
||||
return QVariant(qtEnum).value<eImageMode>(); |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief enum to <int>value converter |
|
||||
* @param qtEnum Enumerator to be converted to the relevant value |
|
||||
* @return Identification value relevant to the input eImageMode enumerator |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
static int qtEnumToInt(const eImageMode qtEnum) |
|
||||
{ |
|
||||
return QMetaEnum::fromType<eImageMode>().value(qtEnum); |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief int to enaum value converter |
|
||||
* @param int Enumerator to be converted to the relevant value |
|
||||
* @return int value relevant to the input eImageMode enumerator |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
static eImageMode intToEnum(const quint8 intEnum) |
|
||||
{ |
|
||||
return static_cast<eImageMode>(intEnum); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //EIMAGEMODE_H
|
|
@ -1,80 +0,0 @@ |
|||||
#ifndef KERNELINPUTFETCHER_H |
|
||||
#define KERNELINPUTFETCHER_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/backendImageProcessor/dtoInternal/BipInput.h" |
|
||||
#include "model/backendImageProcessor/dtoInternal/KernelInput.h" |
|
||||
#include "model/databaseManager/type/EDatabaseRequest.h" |
|
||||
|
|
||||
class KernelInputFetcher : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
KernelInput_t _kernelInput; |
|
||||
BipInput_t _bipInput; |
|
||||
|
|
||||
bool _success; |
|
||||
QList<QVariant> _valueList; |
|
||||
|
|
||||
void getKernelsConstantData(); |
|
||||
void getKernelsInputRelatedData(BipInput_t input); |
|
||||
|
|
||||
void updateGrayMapBParameters(BipInput_t input); |
|
||||
void updateGrayMapMParameters(BipInput_t input); |
|
||||
|
|
||||
void updateTintMapBParameters(BipInput_t input); |
|
||||
bool tintMapBSelectorHasChanged(BipInput_t input); |
|
||||
|
|
||||
void updateTintMapMParameters(BipInput_t input); |
|
||||
bool tintMapMSelectorHasChanged(BipInput_t input); |
|
||||
|
|
||||
void updateDynamicContrastBParameters(BipInput_t input); |
|
||||
void updateDynamicContrastMParameters(BipInput_t input); |
|
||||
|
|
||||
void updateEnhanceBParameters(BipInput_t input); |
|
||||
void updateEnhanceMParameters(BipInput_t input); |
|
||||
|
|
||||
void updateRejectBParameters(BipInput_t input); |
|
||||
void updateRejectMParameters(BipInput_t input); |
|
||||
|
|
||||
void updateSriParameters(BipInput_t input); |
|
||||
|
|
||||
void updatePersistParameters(BipInput_t input); |
|
||||
void updateFrameFilterParameters(BipInput_t input); |
|
||||
|
|
||||
void updateScanConvParameters(BipInput_t input); |
|
||||
|
|
||||
void updateCriParameters(BipInput_t input); |
|
||||
|
|
||||
void updateImageSizeParameters(BipInput_t input); |
|
||||
|
|
||||
void getSriAlgorithmConstantData(); |
|
||||
QList<int> getGrayMapAlgorithmData(int grayMapSelector); |
|
||||
QList<QList<int> > getTintMapAlgorithmData(int tintMapSelector); |
|
||||
void getEnhanceAlgorithmConstantData(); |
|
||||
void getCriFilterAlgorithmConstantData(); |
|
||||
void getDynamicContrastAlgorithmConstantData(); |
|
||||
|
|
||||
void getSysParamsData(); |
|
||||
|
|
||||
template<typename T> |
|
||||
T translateDatabaseData(const QList<QVariant> result); |
|
||||
|
|
||||
public: |
|
||||
KernelInputFetcher(); |
|
||||
|
|
||||
void newBipInput(BipInput_t input); |
|
||||
KernelInput_t getKernelInput(); |
|
||||
|
|
||||
void init(); |
|
||||
|
|
||||
void setRequestResult(bool success, QList<QVariant> valueList); |
|
||||
|
|
||||
signals: |
|
||||
void requestDataFromDatabase(EDatabaseRequest::eDatabaseRequest request, |
|
||||
const QList<QVariant> args); |
|
||||
}; |
|
||||
|
|
||||
#endif //KERNELINPUTFETCHER_H
|
|
@ -1,654 +0,0 @@ |
|||||
#ifndef OPENCLHELPER_H |
|
||||
#define OPENCLHELPER_H |
|
||||
|
|
||||
#define CL_HPP_MINIMUM_OPENCL_VERSION 120 |
|
||||
#define CL_HPP_TARGET_OPENCL_VERSION 120 |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QFile> |
|
||||
|
|
||||
#include "logger/Logger.h" |
|
||||
#include "lib/CL/cl2.hpp" |
|
||||
|
|
||||
#define caseReturnString(x) case x: \ |
|
||||
return #x |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief The OpenCLHelper class |
|
||||
* @note This class can not be broken to .h and .cpp files, because of the way opencl works, |
|
||||
* if we include it in 2 places it complains about duplicated defenition |
|
||||
* @author Mohsen Emami revised by Hessamoddin Hediyehloo(H-4nd-H) |
|
||||
* @date 2019/8/5(1398/5/14) |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class OpenClHelper : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
inline std::vector<cl::Platform> getAllAvailablePlatform(); |
|
||||
|
|
||||
inline std::vector<cl::Platform> getAmdAndNvidiaPlatforms(); |
|
||||
|
|
||||
inline std::vector<cl::Platform> filterNoneAmdAndNoneNvidiaPlatforms( |
|
||||
std::vector<cl::Platform> platforms); |
|
||||
|
|
||||
inline void ThrowIfNoPlatformAvailable(const std::vector<cl::Platform>& platforms); |
|
||||
|
|
||||
inline std::vector<cl::Device> getAllAvailableDevicesForValidPlatforms( |
|
||||
const std::vector<cl::Platform>& platforms); |
|
||||
|
|
||||
inline std::vector<cl::Device> getAllAvailableDevicesForGivenPlatforms( |
|
||||
const cl::Platform& platform); |
|
||||
|
|
||||
inline void ThrowIfNoDeviceAvailable(const std::vector<cl::Device>& devices); |
|
||||
|
|
||||
inline QString getErrorString(int error); |
|
||||
|
|
||||
inline QString getKernelFullPath(QString kernelPath, QString kernelName); |
|
||||
|
|
||||
inline std::string readKernelSourceCode(QString kernelPath); |
|
||||
|
|
||||
inline cl::Program createProgramFromKernelCode(const cl::Context& context, |
|
||||
std::string kernelSource); |
|
||||
|
|
||||
inline cl::Kernel createKernelFromProgram(const cl::Program& program, QString kernelName); |
|
||||
|
|
||||
public: |
|
||||
inline cl::Context& getContext(); |
|
||||
inline cl::Device getFirstDeviceByContext(const cl::Context& context); |
|
||||
inline cl::Kernel createKernel(const cl::Context& context, |
|
||||
const QString kernelPath, |
|
||||
const QString KernelName); |
|
||||
|
|
||||
inline cl::Buffer* allocateClBuffer(const cl::Context& context, |
|
||||
quint64 size, |
|
||||
bool read); |
|
||||
|
|
||||
inline cl::Image* allocateClImage(const cl::Context& context, |
|
||||
cl::ImageFormat clFrameFormat, |
|
||||
QList<quint64> dimensions, bool read); |
|
||||
|
|
||||
inline cl::CommandQueue createCommandQueue(const cl::Context& context, |
|
||||
const cl_command_queue_properties properties); |
|
||||
template<typename ... Ts> |
|
||||
inline cl::KernelFunctor<Ts...> createKernelFunctor(const cl::Kernel& kernel); |
|
||||
|
|
||||
template<typename ... Ts> |
|
||||
inline void runKernelFunctor(cl::KernelFunctor<Ts...>& kernelFunctor, |
|
||||
cl::EnqueueArgs args, |
|
||||
Ts... ts); |
|
||||
}; |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Returns the name of error |
|
||||
* @param error The error to get th ename of |
|
||||
* @return The error name |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
QString OpenClHelper::getErrorString(int error) |
|
||||
{ |
|
||||
switch(error) |
|
||||
{ |
|
||||
caseReturnString(CL_SUCCESS); |
|
||||
caseReturnString(CL_DEVICE_NOT_FOUND); |
|
||||
caseReturnString(CL_DEVICE_NOT_AVAILABLE); |
|
||||
caseReturnString(CL_COMPILER_NOT_AVAILABLE); |
|
||||
caseReturnString(CL_MEM_OBJECT_ALLOCATION_FAILURE); |
|
||||
caseReturnString(CL_OUT_OF_RESOURCES); |
|
||||
caseReturnString(CL_OUT_OF_HOST_MEMORY); |
|
||||
caseReturnString(CL_PROFILING_INFO_NOT_AVAILABLE); |
|
||||
caseReturnString(CL_MEM_COPY_OVERLAP); |
|
||||
caseReturnString(CL_IMAGE_FORMAT_MISMATCH); |
|
||||
caseReturnString(CL_IMAGE_FORMAT_NOT_SUPPORTED); |
|
||||
caseReturnString(CL_BUILD_PROGRAM_FAILURE); |
|
||||
caseReturnString(CL_MAP_FAILURE); |
|
||||
caseReturnString(CL_MISALIGNED_SUB_BUFFER_OFFSET); |
|
||||
caseReturnString(CL_COMPILE_PROGRAM_FAILURE); |
|
||||
caseReturnString(CL_LINKER_NOT_AVAILABLE); |
|
||||
caseReturnString(CL_LINK_PROGRAM_FAILURE); |
|
||||
caseReturnString(CL_DEVICE_PARTITION_FAILED); |
|
||||
caseReturnString(CL_KERNEL_ARG_INFO_NOT_AVAILABLE); |
|
||||
caseReturnString(CL_INVALID_VALUE); |
|
||||
caseReturnString(CL_INVALID_DEVICE_TYPE); |
|
||||
caseReturnString(CL_INVALID_PLATFORM); |
|
||||
caseReturnString(CL_INVALID_DEVICE); |
|
||||
caseReturnString(CL_INVALID_CONTEXT); |
|
||||
caseReturnString(CL_INVALID_QUEUE_PROPERTIES); |
|
||||
caseReturnString(CL_INVALID_COMMAND_QUEUE); |
|
||||
caseReturnString(CL_INVALID_HOST_PTR); |
|
||||
caseReturnString(CL_INVALID_MEM_OBJECT); |
|
||||
caseReturnString(CL_INVALID_IMAGE_FORMAT_DESCRIPTOR); |
|
||||
caseReturnString(CL_INVALID_IMAGE_SIZE); |
|
||||
caseReturnString(CL_INVALID_SAMPLER); |
|
||||
caseReturnString(CL_INVALID_BINARY); |
|
||||
caseReturnString(CL_INVALID_BUILD_OPTIONS); |
|
||||
caseReturnString(CL_INVALID_PROGRAM); |
|
||||
caseReturnString(CL_INVALID_PROGRAM_EXECUTABLE); |
|
||||
caseReturnString(CL_INVALID_KERNEL_NAME); |
|
||||
caseReturnString(CL_INVALID_KERNEL_DEFINITION); |
|
||||
caseReturnString(CL_INVALID_KERNEL); |
|
||||
caseReturnString(CL_INVALID_ARG_INDEX); |
|
||||
caseReturnString(CL_INVALID_ARG_VALUE); |
|
||||
caseReturnString(CL_INVALID_ARG_SIZE); |
|
||||
caseReturnString(CL_INVALID_KERNEL_ARGS); |
|
||||
caseReturnString(CL_INVALID_WORK_DIMENSION); |
|
||||
caseReturnString(CL_INVALID_WORK_GROUP_SIZE); |
|
||||
caseReturnString(CL_INVALID_WORK_ITEM_SIZE); |
|
||||
caseReturnString(CL_INVALID_GLOBAL_OFFSET); |
|
||||
caseReturnString(CL_INVALID_EVENT_WAIT_LIST); |
|
||||
caseReturnString(CL_INVALID_EVENT); |
|
||||
caseReturnString(CL_INVALID_OPERATION); |
|
||||
caseReturnString(CL_INVALID_GL_OBJECT); |
|
||||
caseReturnString(CL_INVALID_BUFFER_SIZE); |
|
||||
caseReturnString(CL_INVALID_MIP_LEVEL); |
|
||||
caseReturnString(CL_INVALID_GLOBAL_WORK_SIZE); |
|
||||
caseReturnString(CL_INVALID_PROPERTY); |
|
||||
caseReturnString(CL_INVALID_IMAGE_DESCRIPTOR); |
|
||||
caseReturnString(CL_INVALID_COMPILER_OPTIONS); |
|
||||
caseReturnString(CL_INVALID_LINKER_OPTIONS); |
|
||||
caseReturnString(CL_INVALID_DEVICE_PARTITION_COUNT); |
|
||||
|
|
||||
default: |
|
||||
return "Unknown OpenCL error code"; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Return the full file path for the kernel |
|
||||
* @param kernelPath Directory of kernel |
|
||||
* @param kernelName Kernel name |
|
||||
* @return Full kernel path |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
QString OpenClHelper::getKernelFullPath(QString kernelPath, QString kernelName) |
|
||||
{ |
|
||||
return QDir(kernelPath).filePath(kernelName + ".cl"); |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Read kernel source file from the given path |
|
||||
* @param kernelPath Kernel file path |
|
||||
* @return Kernel source code |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
std::string OpenClHelper::readKernelSourceCode(QString kernelPath) |
|
||||
{ |
|
||||
QFile kernelFile(kernelPath); |
|
||||
|
|
||||
if(!kernelFile.open(QIODevice::ReadOnly | QIODevice::Text)) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLKernelError, |
|
||||
"Can not open kernel file @ " + kernelPath, |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
auto kernelSource = kernelFile.readAll().toStdString(); |
|
||||
|
|
||||
kernelFile.close(); |
|
||||
|
|
||||
return kernelSource; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Compile the rkernel code and create a ne wprogram object |
|
||||
* @param context OpenCL object |
|
||||
* @param kernelSource Kernel source code |
|
||||
* @return Created program object |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::Program OpenClHelper::createProgramFromKernelCode(const cl::Context& context, |
|
||||
std::string kernelSource) |
|
||||
{ |
|
||||
cl_int err = 0; |
|
||||
|
|
||||
cl::Program program(context, kernelSource, true, &err); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLKernelError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return program; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Create kernel object from openCl program object |
|
||||
* @param program OpenCL program object |
|
||||
* @param kernelName Name of the kernel |
|
||||
* @return OpenCl kernel |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::Kernel OpenClHelper::createKernelFromProgram(const cl::Program& program, QString kernelName) |
|
||||
{ |
|
||||
cl_int err; |
|
||||
|
|
||||
cl::Kernel kernel(program, kernelName.toStdString().c_str(), &err); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLKernelError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return kernel; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Checks to see if platform list is empty or not, throws exception if empty |
|
||||
* @param platforms List of platforms |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
void OpenClHelper::ThrowIfNoPlatformAvailable(const std::vector<cl::Platform>& platforms) |
|
||||
{ |
|
||||
if(platforms.size() > 0) |
|
||||
{ |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLPlatformError, |
|
||||
"No valid platform was found", |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Checks to see if device list is empty or not, throws exception if empty |
|
||||
* @param devices List of devices |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
void OpenClHelper::ThrowIfNoDeviceAvailable(const std::vector<cl::Device>& devices) |
|
||||
{ |
|
||||
if(devices.size() > 0) |
|
||||
{ |
|
||||
return; |
|
||||
} |
|
||||
|
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLDeviceError, |
|
||||
"No valid device was found", |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Return all available opencl platforms |
|
||||
* @return Availaable opencl platforms |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
std::vector<cl::Platform> OpenClHelper::getAllAvailablePlatform() |
|
||||
{ |
|
||||
std::vector<cl::Platform> availablePlatforms; |
|
||||
|
|
||||
cl_int err = cl::Platform::get(&availablePlatforms); |
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLPlatformError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return availablePlatforms; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Remove none amd and none nvidia paltforsm from a given list of platforms |
|
||||
* @param platforms List of available platforms |
|
||||
* @return Platform list containing only nvidia and amd |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
std::vector<cl::Platform> OpenClHelper::filterNoneAmdAndNoneNvidiaPlatforms( |
|
||||
std::vector<cl::Platform> platforms) |
|
||||
{ |
|
||||
std::vector<cl::Platform> AmdNvidiaPlatforms; |
|
||||
for(auto it = platforms.begin(); it != platforms.end(); it++) |
|
||||
{ |
|
||||
cl::string currentPlatformName = it->getInfo<CL_PLATFORM_NAME>(); |
|
||||
|
|
||||
Logger::log(ESeverityLevel::Debug, ELogID::CLPlatformInfo, |
|
||||
"Platform Name: " + QString::fromStdString(currentPlatformName), |
|
||||
this->metaObject()->className()); |
|
||||
|
|
||||
if(!(it->getInfo<CL_PLATFORM_NAME>().find("NVIDIA") == cl::string::npos) || |
|
||||
!(it->getInfo<CL_PLATFORM_NAME>().find("AMD") == cl::string::npos)) |
|
||||
{ |
|
||||
AmdNvidiaPlatforms.push_back(*it); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return AmdNvidiaPlatforms; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief gets available nvidia or amd platforms on host machine |
|
||||
* @return platforms The list of available nvidia nd amd platforms |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
std::vector<cl::Platform> OpenClHelper::getAmdAndNvidiaPlatforms() |
|
||||
{ |
|
||||
auto availablePlatform = getAllAvailablePlatform(); |
|
||||
|
|
||||
availablePlatform = filterNoneAmdAndNoneNvidiaPlatforms(availablePlatform); |
|
||||
|
|
||||
ThrowIfNoPlatformAvailable(availablePlatform); |
|
||||
|
|
||||
return availablePlatform; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief get the opencl devices for all provided platforms |
|
||||
* @param platforms The list of nvidia and amd platforms \sa getPlatforms |
|
||||
* @return devices List of available devices for provided platforms |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
std::vector<cl::Device> OpenClHelper::getAllAvailableDevicesForValidPlatforms( |
|
||||
const std::vector<cl::Platform>& platforms) |
|
||||
{ |
|
||||
std::vector<cl::Device> availableDevices; |
|
||||
for(auto platform = platforms.begin(); platform != platforms.end(); platform++) |
|
||||
{ |
|
||||
auto temp = getAllAvailableDevicesForGivenPlatforms(*platform); |
|
||||
|
|
||||
for(auto device = temp.begin(); device != temp.end(); device++) |
|
||||
{ |
|
||||
availableDevices.push_back(*device); |
|
||||
cl::string currentDeviceName = device->getInfo<CL_DEVICE_NAME>(); |
|
||||
|
|
||||
Logger::log(ESeverityLevel::Debug, ELogID::CLDeviceInfo, |
|
||||
"Device Name: " + QString::fromStdString(currentDeviceName), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
return availableDevices; |
|
||||
} |
|
||||
|
|
||||
std::vector<cl::Device> OpenClHelper::getAllAvailableDevicesForGivenPlatforms( |
|
||||
const cl::Platform& platform) |
|
||||
{ |
|
||||
std::vector<cl::Device> availableDevices; |
|
||||
cl_int err = platform.getDevices(CL_DEVICE_TYPE_GPU, &availableDevices); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLDeviceError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return availableDevices; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief get context of opencl |
|
||||
* @return context Actual opencl context |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::Context& OpenClHelper::getContext() |
|
||||
{ |
|
||||
static cl::Context* internalContext = nullptr; |
|
||||
if(internalContext) |
|
||||
{ |
|
||||
return *internalContext; |
|
||||
} |
|
||||
|
|
||||
auto platforms = getAmdAndNvidiaPlatforms(); |
|
||||
|
|
||||
auto devices = getAllAvailableDevicesForValidPlatforms(platforms); |
|
||||
|
|
||||
cl_int err; |
|
||||
internalContext = new cl::Context(devices, Q_NULLPTR, Q_NULLPTR, Q_NULLPTR, &err); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLContextError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return *internalContext; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Creates and compiles the given kernel |
|
||||
* @param context OpenCl contex \sa getContext |
|
||||
* @param kernelPath The folder directory for kernel |
|
||||
* @param kernelName The kernel file name without .cl extension |
|
||||
* @return kernel The newly created kernel instance |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::Kernel OpenClHelper::createKernel(const cl::Context& context, |
|
||||
const QString kernelPath, |
|
||||
const QString kernelName) |
|
||||
{ |
|
||||
auto kernelFullPath = getKernelFullPath(kernelPath, kernelName); |
|
||||
|
|
||||
auto kernelSource = readKernelSourceCode(kernelFullPath); |
|
||||
|
|
||||
auto program = createProgramFromKernelCode(context, kernelSource); |
|
||||
|
|
||||
return createKernelFromProgram(program, kernelName); |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief allocate a cl buffer |
|
||||
* @param context OpenCL context \sa getContext |
|
||||
* @param size Number of bytes to allocate |
|
||||
* @param read Should the buffer be allocated with read access or write access |
|
||||
* @return buffer The allocated buffer pointer |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::Buffer* OpenClHelper::allocateClBuffer(const cl::Context& context, |
|
||||
quint64 size, bool read = true) |
|
||||
{ |
|
||||
cl_mem_flags clMemFlags = read ? CL_MEM_READ_ONLY : CL_MEM_WRITE_ONLY; |
|
||||
|
|
||||
cl_int err; |
|
||||
auto buffer = new cl::Buffer(context, clMemFlags, size, Q_NULLPTR, &err); |
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLBufferError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return buffer; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Allocate proper CL image based on input |
|
||||
* @param context OpenCL context \sa getContext |
|
||||
* @param clFrameFormat Frame format for image |
|
||||
* @param dimensions List containing size for each image dimension, can be 1D, 2D or 3D |
|
||||
* @return image Actual allocated image |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::Image* OpenClHelper::allocateClImage(const cl::Context& context, |
|
||||
cl::ImageFormat clFrameFormat, |
|
||||
QList<quint64> dimensions, |
|
||||
bool read) |
|
||||
{ |
|
||||
cl_mem_flags clMemFlags = CL_MEM_READ_WRITE; |
|
||||
|
|
||||
cl::Image* image = Q_NULLPTR; |
|
||||
|
|
||||
cl_int err = 0; |
|
||||
|
|
||||
switch(dimensions.size()) |
|
||||
{ |
|
||||
case 1: |
|
||||
image = new cl::Image1D(context, |
|
||||
clMemFlags, |
|
||||
clFrameFormat, |
|
||||
dimensions[0], |
|
||||
&err); |
|
||||
break; |
|
||||
|
|
||||
case 2: |
|
||||
image = new cl::Image2D(context, |
|
||||
clMemFlags, |
|
||||
clFrameFormat, |
|
||||
dimensions[0], |
|
||||
dimensions[1], |
|
||||
0, |
|
||||
&err); |
|
||||
break; |
|
||||
|
|
||||
case 3: |
|
||||
image = new cl::Image3D(context, |
|
||||
clMemFlags, |
|
||||
clFrameFormat, |
|
||||
dimensions[0], |
|
||||
dimensions[1], |
|
||||
dimensions[2], |
|
||||
0, |
|
||||
0, |
|
||||
&err); |
|
||||
break; |
|
||||
|
|
||||
default: |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLFrameError, |
|
||||
"Invalid dimension size", |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLFrameError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return image; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Creates a functor for given kernel |
|
||||
* @param kernel The kernel to build functor for |
|
||||
* @return functor The created functor |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
template<typename ... Ts> |
|
||||
cl::KernelFunctor<Ts...> OpenClHelper::createKernelFunctor(const cl::Kernel& kernel) |
|
||||
{ |
|
||||
auto kernelName = QString::fromStdString(kernel.getInfo<CL_KERNEL_FUNCTION_NAME>()); |
|
||||
|
|
||||
cl_int err; |
|
||||
|
|
||||
cl::KernelFunctor<Ts...> functor(kernel.getInfo<CL_KERNEL_PROGRAM>(), kernelName, &err); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLKernelFunctorError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return functor; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Create an OpenCl commandQueue |
|
||||
* @param context OpenCL context \sa getContext |
|
||||
* @param properties Properties to build queue upon them |
|
||||
* @return queue The newly created queue |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::CommandQueue OpenClHelper::createCommandQueue(const cl::Context& context, |
|
||||
const cl_command_queue_properties properties) |
|
||||
{ |
|
||||
cl_int err; |
|
||||
cl::CommandQueue commandQueue(context, properties, &err); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLCommandQueueCreationError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return commandQueue; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Returns the first device of context |
|
||||
* @param context OpenCl context \sa getContext |
|
||||
* @param device First device of context |
|
||||
* @return success or failure |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
cl::Device OpenClHelper::getFirstDeviceByContext(const cl::Context& context) |
|
||||
{ |
|
||||
std::vector<cl::Device> devices; |
|
||||
auto err = context.getInfo<std::vector<cl::Device> >(CL_CONTEXT_DEVICES, &devices); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLDeviceError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
|
|
||||
return devices[0]; |
|
||||
} |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Run the kernel functor \sa createKernelFunctor |
|
||||
* @param kernelFunctor Functor to run |
|
||||
* @param args Arg structure for functor |
|
||||
* @param ts actual arg for functor |
|
||||
* @return success or failure |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
template<typename ... Ts> |
|
||||
void OpenClHelper::runKernelFunctor(cl::KernelFunctor<Ts...>& kernelFunctor, |
|
||||
cl::EnqueueArgs args, |
|
||||
Ts... ts) |
|
||||
{ |
|
||||
cl_int err; |
|
||||
kernelFunctor(args, ts ..., err); |
|
||||
|
|
||||
if(err != CL_SUCCESS) |
|
||||
{ |
|
||||
throw LoggerException(ESeverityLevel::Alert, |
|
||||
ELogID::CLKernelRunError, |
|
||||
getErrorString(err), |
|
||||
this->metaObject()->className()); |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
#endif |
|
@ -1,38 +0,0 @@ |
|||||
#ifndef BIPTESTER_H |
|
||||
#define BIPTESTER_H |
|
||||
|
|
||||
#include <QMutex> |
|
||||
#include <QObject> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/ultrasoundModule/UsModule.h" |
|
||||
#include "core/BipTesterCore.h" |
|
||||
|
|
||||
class BipTester : public UsModule |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
US_MODULE |
|
||||
|
|
||||
private: |
|
||||
static BipTester* _instance; |
|
||||
static QMutex _mutex; |
|
||||
|
|
||||
bool _run; |
|
||||
|
|
||||
BipTesterCore* _core; |
|
||||
|
|
||||
BipTester(); |
|
||||
~BipTester() override; |
|
||||
|
|
||||
public: |
|
||||
static BipTester* getInstance(); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void dataReady(const UsPacket& data); |
|
||||
void paramsReady(QVariant output); |
|
||||
void newSimulationState(bool run); |
|
||||
}; |
|
||||
|
|
||||
#endif //BIPTESTER_H
|
|
@ -1,105 +0,0 @@ |
|||||
#ifndef CORE_H |
|
||||
#define CORE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QFile> |
|
||||
|
|
||||
#include "model/scenarioGenerator/dto/software/SoftwareOutput.h" |
|
||||
#include "model/ultrasoundModule/UsPacket.h" |
|
||||
#include "model/bipTester/core/BipTesterMetadata.h" |
|
||||
#include "model/hardware/service/HardwarePacketEngine.h" |
|
||||
|
|
||||
#define HEX2FLT(x) *(reinterpret_cast<float*>(&x)) |
|
||||
|
|
||||
#define PARSE toUInt(Q_NULLPTR, 16) |
|
||||
|
|
||||
#define READ_INP2(NAME) \ |
|
||||
if(sl[0] == #NAME) \ |
|
||||
{ \ |
|
||||
auto temp = sl[1].PARSE; \ |
|
||||
_output.NAME = HEX2FLT(temp); \ |
|
||||
} |
|
||||
|
|
||||
#define READ_INP(NAME) \ |
|
||||
if(sl[0] == #NAME) \ |
|
||||
{ \ |
|
||||
auto temp = sl[1].PARSE; \ |
|
||||
_output.NAME = HEX2FLT(temp); \ |
|
||||
} |
|
||||
|
|
||||
#define READ_INP_BOOL(NAME) \ |
|
||||
if(sl[0] == #NAME) \ |
|
||||
{ \ |
|
||||
auto temp = sl[1].PARSE; \ |
|
||||
_output.NAME = HEX2FLT(temp) == 1; \ |
|
||||
} |
|
||||
|
|
||||
typedef struct input_t { |
|
||||
QString workingDir; |
|
||||
}input_t; |
|
||||
|
|
||||
typedef struct simState_t { |
|
||||
quint32 currentScenarioNumber; |
|
||||
bool rxTesterMode; |
|
||||
bool oneshot; |
|
||||
bool autoIncrement; |
|
||||
quint32 maxFileNumber; |
|
||||
quint32 maxCriNumber; |
|
||||
quint32 maxPersistNumber; |
|
||||
}simState_t; |
|
||||
|
|
||||
class BipTesterCore : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
input_t _input; |
|
||||
simState_t _simState; |
|
||||
ScenGenSoftwareOutput_t _output; |
|
||||
|
|
||||
bool _run; |
|
||||
int _frameCounter; |
|
||||
|
|
||||
QList<int> _cri = {1, 3, 3, 3, 3, 5, 7, 9, 11}; |
|
||||
|
|
||||
void loadParams(); |
|
||||
|
|
||||
QString makeInputFolderPath(); |
|
||||
QString makeOutputFolderPath(); |
|
||||
QString makeParamsFolderPath(); |
|
||||
QString makeFileNameString(); |
|
||||
QString makeFileNameString(int scenNum); |
|
||||
QString makeFileNameString(int scenNum, int persist, int cri); |
|
||||
|
|
||||
HardwarePacketEngine _engine; |
|
||||
|
|
||||
public: |
|
||||
BipTesterCore(); |
|
||||
|
|
||||
QList<QList<int> > grayMap; |
|
||||
|
|
||||
void changeWorkingDir(QString path); |
|
||||
void changeMode(bool rxMode); |
|
||||
void changeOneshot(bool oneshot); |
|
||||
void changeAutoInc(bool autoInc); |
|
||||
|
|
||||
void start(); |
|
||||
void stop(); |
|
||||
|
|
||||
void feedData(); |
|
||||
void flowManager(); |
|
||||
void frameProcessed(const UsPacket& packet); |
|
||||
|
|
||||
signals: |
|
||||
void newParams(QVariant params); |
|
||||
void newData(const UsPacket& packet); |
|
||||
void simulationChanged(bool run); |
|
||||
void quit(); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void newPacket(const UsPacket& packet); |
|
||||
}; |
|
||||
|
|
||||
#endif //CORE_H
|
|
@ -1,21 +0,0 @@ |
|||||
#ifndef BIPTESTERMETADAYA_H |
|
||||
#define BIPTESTERMETADAYA_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/ultrasoundModule/metadata/UsBaseMetadata.h" |
|
||||
|
|
||||
class BipTesterMetadata : public UsBaseMetadata |
|
||||
{ |
|
||||
public: |
|
||||
bool isLast; |
|
||||
int persist; |
|
||||
int cri; |
|
||||
int scenNum; |
|
||||
QString logPath; |
|
||||
BipTesterMetadata(); |
|
||||
}; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(BipTesterMetadata) |
|
||||
|
|
||||
#endif //BIPTESTERMETADAYA_H
|
|
@ -1,19 +0,0 @@ |
|||||
#ifndef FILE_HELPER_H |
|
||||
#define FILE_HELPER_H |
|
||||
|
|
||||
#include <QByteArray> |
|
||||
#include <QStringList> |
|
||||
|
|
||||
class FileHelper |
|
||||
{ |
|
||||
public: |
|
||||
FileHelper() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
static bool ReadInputFile(QByteArray& arr, QString path, quint64* width, quint64* height); |
|
||||
static bool ReadInputFile(QByteArray& arr, QString path); |
|
||||
static bool WriteOutputFile(char* arr, QString path, quint64 width, quint64 height); |
|
||||
}; |
|
||||
|
|
||||
#endif //FILE_HELPER_H
|
|
@ -1,44 +0,0 @@ |
|||||
#ifndef CSM_H |
|
||||
#define CSM_H |
|
||||
|
|
||||
#include <QMutex> |
|
||||
#include <QObject> |
|
||||
#include <chrono> |
|
||||
#include <thread> |
|
||||
|
|
||||
#include "model/ultrasoundModule/UsModule.h" |
|
||||
#include "viewModel/factory/ApplicationStarter.h" |
|
||||
#include "model/csm/core/ConsoleCore.h" |
|
||||
#include "model/scenarioGenerator/ScenarioGenerator.h" |
|
||||
#include "model/ultrasoundModule/UsHelper.h" |
|
||||
#include "model/csm/dto/TrackballConfig.h" |
|
||||
|
|
||||
class Csm : public UsModule |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
US_MODULE |
|
||||
|
|
||||
private: |
|
||||
static Csm* _instance; |
|
||||
static QMutex _mutex; |
|
||||
|
|
||||
ConsoleCore* _consoleCore; |
|
||||
TrackballCore* _trackballCore; |
|
||||
|
|
||||
Csm(); |
|
||||
~Csm() override; |
|
||||
|
|
||||
int mCursorX; |
|
||||
int mCursorY; |
|
||||
|
|
||||
public: |
|
||||
static Csm* getInstance(); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void recieveCommandFromCore(const CommandControl_t command); |
|
||||
void recieveTrackballConfigFromCore(TrackballConfig_t config); |
|
||||
}; |
|
||||
|
|
||||
#endif //CSM_H
|
|
@ -1,78 +0,0 @@ |
|||||
#ifndef CSMCORE_H |
|
||||
#define CSMCORE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QtXml> |
|
||||
#include <QMouseEvent> |
|
||||
|
|
||||
#include "model/csm/utils/XmlConsoleConfigReader.h" |
|
||||
#include "model/csm/utils/XmlGraphStateReader.h" |
|
||||
#include "model/csm/core/consoleComponent/ConsoleButton.h" |
|
||||
//#include "model/csm/dto/CommandTuple.h"
|
|
||||
#include "config/Configuration.h" |
|
||||
#include "model/csm/core/Hid.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this is the core of console management system. this class mange aonsole and trackball as |
|
||||
* a part of user interface. |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 12 jan 20214 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class ConsoleCore : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
QString _configPath; |
|
||||
QList<ConsoleButton*> _btnList; |
|
||||
QString _probType; |
|
||||
|
|
||||
EConsole::eConsoleState _currentState; |
|
||||
XmlConsoleConfigReader* _consoleConfigReader; |
|
||||
XmlGraphStateReader* _graphStateReader; |
|
||||
Graph _consoleStateGraph; |
|
||||
|
|
||||
Hid* _hidHandler; |
|
||||
|
|
||||
Graph getConsoleStateGraph() const; |
|
||||
|
|
||||
void readConfigFile(); |
|
||||
void setConsoleStateGraph(const Graph& csmStateGraph); |
|
||||
void connectToConsoleButton(const ConsoleButton* consoleButton); |
|
||||
|
|
||||
void checkMicro(); |
|
||||
void blink(); |
|
||||
|
|
||||
public: |
|
||||
ConsoleCore(); |
|
||||
|
|
||||
void setCurrentConsoleState(const EConsole::eConsoleState& csmState, const QString& probType); |
|
||||
|
|
||||
void init(); |
|
||||
void newInterrupt(const EConsole::eCsmInterruptType& interrupt, const QString& value); |
|
||||
|
|
||||
void setProbType(const QString& prbType); |
|
||||
QString getProbType() const; |
|
||||
|
|
||||
EConsole::eConsoleState getCurrentState() const; |
|
||||
|
|
||||
void selfTest(); |
|
||||
|
|
||||
signals: |
|
||||
void sendChangeStateToButton(const EConsole::eConsoleState& csmState, const QString& probType); |
|
||||
void sendCommandToCsmModule(const CommandControl_t& commands); |
|
||||
void sendInterruptToTrackball(const EConsole::eCsmInterruptType& interrupt, |
|
||||
const QString& value); |
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void recieveButtonCommand(const QList<CommandControl_t>& commands, |
|
||||
const quint8& fCode); |
|
||||
void recieveButtonLongPressCommand(const QList<CommandControl_t>& commands, |
|
||||
const quint8& fCode); |
|
||||
}; |
|
||||
|
|
||||
#endif //CSMCORE_H
|
|
@ -1,43 +0,0 @@ |
|||||
#ifndef EMENUTAB_H |
|
||||
#define EMENUTAB_H |
|
||||
|
|
||||
#include <QtCore> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
class EMenuTab : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
//Private constructor prevent the enumeration class from being instantiated
|
|
||||
explicit EMenuTab(QObject* parent = nullptr); |
|
||||
|
|
||||
public: |
|
||||
enum eMenuTab : quint8 |
|
||||
{ |
|
||||
EMPTY_TAB, |
|
||||
B_TAB, |
|
||||
M_TAB, |
|
||||
C_TAB, |
|
||||
PW_TAB, |
|
||||
PD_TAB, |
|
||||
CINE_TAB, |
|
||||
TGC_TAB |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eMenuTab) |
|
||||
|
|
||||
static int qtEnumToInt(const eMenuTab qtEnum) |
|
||||
{ |
|
||||
return QMetaEnum::fromType<eMenuTab>().value(qtEnum); |
|
||||
} |
|
||||
|
|
||||
static QString qtEnumToString(const eMenuTab qtEnum) |
|
||||
{ |
|
||||
return QString(QMetaEnum::fromType<eMenuTab>().valueToKey(qtEnum)); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(EMenuTab::eMenuTab); |
|
||||
|
|
||||
#endif //EMENUTAB_H
|
|
@ -1,79 +0,0 @@ |
|||||
#ifndef HID_H |
|
||||
#define HID_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMutex> |
|
||||
#include <QMap> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/ultrasoundModule/UsHelper.h" |
|
||||
#include "model/csm/core/consoleComponent/ConsoleButton.h" |
|
||||
#include "model/ultrasoundModule/type/ECommandType.h" |
|
||||
#include "model/csm/core/TrackballCore.h" |
|
||||
#include "model/csm/dto/HidPacket.h" |
|
||||
#include "hidapi/hidapi.h" |
|
||||
|
|
||||
class SglContainer : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
signals: |
|
||||
void sendHitButton(HidPacket_t); |
|
||||
}; |
|
||||
|
|
||||
class TrackballCore; |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this is a handler for hid interface. |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 21 sep 2020 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class Hid : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
SINGLETON(Hid) |
|
||||
|
|
||||
private: |
|
||||
Hid(); |
|
||||
QFuture<void> readThreadFuture; |
|
||||
QFuture<void> writeThreadFuture; |
|
||||
QFuture<void> processThreadFuture; |
|
||||
void readThread(); |
|
||||
void writeThread(); |
|
||||
void processThread(); |
|
||||
|
|
||||
QList<HidPacket_t> _readFifo; |
|
||||
QMutex _readFifoLocker; |
|
||||
|
|
||||
QList<HidPacket_t> _writeFifo; |
|
||||
QMutex _writeFifoLocker; |
|
||||
|
|
||||
QMutex _readHidLocker; |
|
||||
|
|
||||
QMap<quint8, SglContainer*> _signalFuctionCodeTable; |
|
||||
|
|
||||
bool _run = true; |
|
||||
|
|
||||
hid_device* _handle; |
|
||||
|
|
||||
public: |
|
||||
~Hid(); |
|
||||
void start(); |
|
||||
void initConsoleButtons(const QList<ConsoleButton*>& consoleButtons); |
|
||||
void initTracballButtons(const QList<quint8>& trackballButtons); |
|
||||
|
|
||||
bool exist(); |
|
||||
bool sendEcho(); |
|
||||
bool turnOnAllLeds(); |
|
||||
bool turnOffAllLeds(); |
|
||||
|
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void recieveLedStatus(const QMap<quint8, quint8>& ledStatus); |
|
||||
}; |
|
||||
|
|
||||
#endif //HID_H
|
|
@ -1,125 +0,0 @@ |
|||||
#ifndef TRACKBALLCORE_H |
|
||||
#define TRACKBALLCORE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMutex> |
|
||||
#include <QtXml> |
|
||||
#include <QMouseEvent> |
|
||||
#include <QPoint> |
|
||||
#include <QCursor> |
|
||||
|
|
||||
#include "model/csm/utils/XmlGraphStateReader.h" |
|
||||
#include "model/csm/utils/XmlTrackballConfigReader.h" |
|
||||
#include "model/csm/core/trackballComponent/HidButton.h" |
|
||||
#include "model/csm/core/trackballComponent/MiceButton.h" |
|
||||
#include "model/csm/core/trackballComponent/CenterBall.h" |
|
||||
#include "model/csm/dto/TrackballConfig.h" |
|
||||
#include "model/csm/type/EConsole.h" |
|
||||
#include "config/Configuration.h" |
|
||||
#include "model/csm/dto/HidPacket.h" |
|
||||
#include "model/ultrasoundModule/UsHelper.h" |
|
||||
#include "model/csm/core/Hid.h" |
|
||||
|
|
||||
class Hid; |
|
||||
|
|
||||
class TrackballCore : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
SINGLETON(TrackballCore) |
|
||||
|
|
||||
private: |
|
||||
Hid* _hidHandler; |
|
||||
XmlGraphStateReader* _graphStateReader; |
|
||||
XmlTrackballConfigReader* _trackballConfigReader; |
|
||||
|
|
||||
QString _configPath; |
|
||||
TrackballConfig_t _currentConfig; |
|
||||
|
|
||||
//mice button
|
|
||||
MiceButton* _middleTop; |
|
||||
MiceButton* _left; |
|
||||
MiceButton* _right; |
|
||||
|
|
||||
//hid button
|
|
||||
HidButton* _topLeft; |
|
||||
HidButton* _topRight; |
|
||||
HidButton* _bottomLeft; |
|
||||
HidButton* _bottomRight; |
|
||||
HidButton* _middleBottom; |
|
||||
|
|
||||
//center ball
|
|
||||
CenterBall* _centerBall; |
|
||||
|
|
||||
QMap<quint8, HidButton*> hidFucitonMap; |
|
||||
|
|
||||
//state
|
|
||||
EConsole::eTrackballState _currentState; |
|
||||
|
|
||||
//mode
|
|
||||
EConsole::eTrackballMode _currentMode; |
|
||||
|
|
||||
//Pointer temp Memory
|
|
||||
QPoint _pointerMemory; |
|
||||
|
|
||||
QPoint _currentTrackballPos; |
|
||||
QPoint _trackballPosTemp; |
|
||||
QPoint _trackballPosDifference; |
|
||||
|
|
||||
Graph _trackballStateGraph; |
|
||||
|
|
||||
TrackballCore(); |
|
||||
|
|
||||
void sendCommandForMicePushButton(MiceButton* miceButton, const QMouseEvent* mouseEvent); |
|
||||
|
|
||||
void trackballModeMiceEventHandler(QEvent* ev); |
|
||||
|
|
||||
void mouseModeEventHandler(QEvent* ev); |
|
||||
|
|
||||
void trackballMoveEventHandler(QEvent* ev); |
|
||||
|
|
||||
void miceButtonPushHandler(MiceButton* miceButton, |
|
||||
const QMouseEvent* mouseEvent, |
|
||||
const QString interruptValue); |
|
||||
|
|
||||
void newInterrupt(EConsole::eCsmInterruptType interrupt, QString value); |
|
||||
|
|
||||
void readConfigFile(); |
|
||||
|
|
||||
void changeMiceToTrackball(); |
|
||||
|
|
||||
void changeMiceToMouse(); |
|
||||
|
|
||||
QPoint getCursorPosiotion(); |
|
||||
|
|
||||
protected: |
|
||||
bool event(QEvent*) override; |
|
||||
|
|
||||
public: |
|
||||
//virtual bool eventFilter(QObject* object, QEvent* ev) override;
|
|
||||
|
|
||||
void init(); |
|
||||
|
|
||||
TrackballConfig_t getCurrentConfig(); |
|
||||
|
|
||||
void loadConfig(const EConsole::eTrackballState tracballState); |
|
||||
void refreshAndSendConfig(); |
|
||||
void clearConfig(); |
|
||||
void configFiller(const EConsole::eTrackballItem item, |
|
||||
const QString text, |
|
||||
const bool enable = true, |
|
||||
const bool active = true); |
|
||||
void setTrackballState(EConsole::eTrackballState state); |
|
||||
void swapMode(); |
|
||||
|
|
||||
signals: |
|
||||
void sendConfigToCsmModule(TrackballConfig_t config); |
|
||||
void sendCommandToCsmModule(CommandControl_t command); |
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void reciveEvents(QMouseEvent* ev); |
|
||||
void recievePush(HidPacket_t data); |
|
||||
void recieveChangeTrackballState(EConsole::eCsmInterruptType interruptType, QString value); |
|
||||
}; |
|
||||
|
|
||||
#endif //TRACKBALLCORE_H
|
|
@ -1,63 +0,0 @@ |
|||||
#ifndef BUTTON_H |
|
||||
#define BUTTON_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QElapsedTimer> |
|
||||
#include <QMutex> |
|
||||
|
|
||||
#include "model/csm/core/consoleComponent/ControlAbstract.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Button Class, this class is a part of console button |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 12 Jan 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class Button : public ControlAbstract |
|
||||
{ |
|
||||
private: |
|
||||
bool _down; |
|
||||
QMutex _downLoker; |
|
||||
QElapsedTimer _timer; |
|
||||
|
|
||||
QList<CommandControl_t> _currentCommandList; |
|
||||
QList<CommandControl_t> _longPressCommands; |
|
||||
QList<CommandControl_t> _commonLongPressCommands; |
|
||||
QMap<EConsole::eConsoleState, QList<CommandControl_t> > _longPressCommandListBasedOnState; |
|
||||
|
|
||||
bool _longPressEnable; |
|
||||
|
|
||||
public: |
|
||||
Button() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
QList<CommandControl_t> getCommandList(const EConsole::eConsoleState& consoleState) override; |
|
||||
QList<CommandControl_t> getLongPressCommandList(const EConsole::eConsoleState& consoleState); |
|
||||
EConsole::eControlType getType() const override; |
|
||||
|
|
||||
void loadLongPressCommands(const EConsole::eConsoleState& consoleState); |
|
||||
void enable() override; |
|
||||
void disable() override; |
|
||||
|
|
||||
void appendCommonLongPressCommandList(const CommandControl_t& commandControl); |
|
||||
|
|
||||
void appendLongPressCommandListBasedOnConsoleState(const QString& consoleState, |
|
||||
const CommandControl_t& commandControl); |
|
||||
|
|
||||
//start timer
|
|
||||
void keyDown(); |
|
||||
|
|
||||
//calculate timer between down and up
|
|
||||
long keyUp(); |
|
||||
|
|
||||
bool isDown() const; |
|
||||
|
|
||||
bool hasLongPress() const; |
|
||||
|
|
||||
bool hasTimeOutExpired(const long& timeOut); |
|
||||
}; |
|
||||
|
|
||||
#endif //BUTTON_H
|
|
@ -1,83 +0,0 @@ |
|||||
#ifndef ConsoleButton_H |
|
||||
#define ConsoleButton_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QtXml> |
|
||||
#include <QMap> |
|
||||
#include <QMutex> |
|
||||
#include <QtConcurrent/QtConcurrent> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/csm/core/consoleComponent/ControlAbstract.h" |
|
||||
#include "model/csm/core/consoleComponent/Button.h" |
|
||||
#include "model/csm/core/consoleComponent/Rotary.h" |
|
||||
#include "model/csm/core/consoleComponent/Led.h" |
|
||||
#include "model/csm/dto/HidPacket.h" |
|
||||
#include "model/csm/utils/XmlConsoleConfigReader.h" |
|
||||
|
|
||||
#define LONG_PRESS_TIME_MS 1000 |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this class is a code vision of each console's item in real |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details this class modifing the leds, rotary and buttons of each item |
|
||||
* @date 12 jan 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class ConsoleButton : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
QString _name; |
|
||||
|
|
||||
Button _push; |
|
||||
Button _up; |
|
||||
Button _down; |
|
||||
Rotary _rotary; |
|
||||
|
|
||||
QMutex _longPressLocker; |
|
||||
QList<quint8> _functionCodes; //init inside ctor
|
|
||||
|
|
||||
QList<Led_t> _ledList; |
|
||||
|
|
||||
//this list contain fuction code and corespond commands information.
|
|
||||
QMap<quint8, QList<CommandControl_t> > _controlCommandList; |
|
||||
QMap<quint8, QList<CommandControl_t> > _controlLongPressCommandList; |
|
||||
|
|
||||
EConsole::eConsoleButtonType _ConsolebuttonType; |
|
||||
|
|
||||
void pushDownCheck(Button* btn, const HidPacket_t& data); |
|
||||
|
|
||||
void checkPushUp(Button& btn, const HidPacket_t& data); |
|
||||
|
|
||||
void longPressThread(Button* btn, const HidPacket_t& data); |
|
||||
|
|
||||
int updateControlsEnablity(const Led_t& led); |
|
||||
|
|
||||
public: |
|
||||
//ctor
|
|
||||
ConsoleButton(const QDomElement& btnElement); |
|
||||
|
|
||||
EConsole::eConsoleButtonType getConsoleButtonType() const; |
|
||||
QList<quint8> getFunctionCodes(); |
|
||||
QString getName() const; |
|
||||
|
|
||||
void prepareControlComandList(ControlAbstract* control, |
|
||||
const EConsole::eConsoleState& consoleState); |
|
||||
|
|
||||
signals: |
|
||||
void sendLedStatusToHID(const QMap<quint8, quint8>& ledStatus); |
|
||||
void sendControlCommandToConsoleCore(const QList<CommandControl_t>& commands, |
|
||||
const quint8& functionCode); |
|
||||
void sendControlLongPressCommandToConsoleCore(const QList<CommandControl_t>& commands, |
|
||||
const quint8& functionCode); |
|
||||
//uncrustify off
|
|
||||
public slots: |
|
||||
//uncrustify on
|
|
||||
void recievePush(const HidPacket_t& data); |
|
||||
void recieveConsoleState(const EConsole::eConsoleState& consoleState, const QString& probType); |
|
||||
}; |
|
||||
|
|
||||
#endif //ConsoleButton_H
|
|
@ -1,129 +0,0 @@ |
|||||
#ifndef ICONTROL_H |
|
||||
#define ICONTROL_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMap> |
|
||||
|
|
||||
#include "model/ultrasoundModule/type/ECommandType.h" |
|
||||
#include "model/csm/type/EConsole.h" |
|
||||
#include "model/csm/dto/CommandControl.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this is an abtract of controls, like buttons and rotaries |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 12 jan 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class ControlAbstract : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
protected: |
|
||||
bool _exist = false; |
|
||||
bool _enable; |
|
||||
|
|
||||
quint8 _functionCode = 0; |
|
||||
quint8 _ledFunctionCode; |
|
||||
|
|
||||
//This dictionary that store commands depend on csm state
|
|
||||
QMap<EConsole::eConsoleState, QList<CommandControl_t> > _commandList; |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Dtor |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
virtual ~ControlAbstract() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
public: |
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this fuction return existance of an ControlAbstract. |
|
||||
* @details in detaile this fuction is use full for console button to check its chield is exist |
|
||||
* or not. |
|
||||
* @return existance of ControlAbstract |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
bool isExist() const |
|
||||
{ |
|
||||
return _exist; |
|
||||
} |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this fuction return enable situation of an ControlAbstract. |
|
||||
* @details in detaile this fuction is use full for console button to check its chield is enable |
|
||||
* or not. |
|
||||
* @return enable situation of ControlAbstract |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
bool isEnable() const |
|
||||
{ |
|
||||
return _enable; |
|
||||
} |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this function append command to command list of object. |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
void appendCommandList(const QString& csmState, const CommandControl_t& commandControl) |
|
||||
{ |
|
||||
QList<CommandControl_t> temp; |
|
||||
if(!_commandList.contains(EConsole::stringToEConsoleEnum<EConsole::eConsoleState>(csmState))) |
|
||||
{ |
|
||||
temp.append(commandControl); |
|
||||
_commandList.insert(EConsole::stringToEConsoleEnum<EConsole::eConsoleState>(csmState), |
|
||||
temp); |
|
||||
} |
|
||||
else |
|
||||
{ |
|
||||
temp = _commandList[EConsole::stringToEConsoleEnum<EConsole::eConsoleState>(csmState)]; |
|
||||
temp.append(commandControl); |
|
||||
_commandList[EConsole::stringToEConsoleEnum<EConsole::eConsoleState>(csmState)] = temp; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this fuction sets the function code and led function code of Icontrol. |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
void setFunctionCodes(const quint8& functionCode, const quint8& ledFunctionCode) |
|
||||
{ |
|
||||
_functionCode = functionCode; |
|
||||
_ledFunctionCode = ledFunctionCode; |
|
||||
_exist = true; |
|
||||
} |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief return the function code of ControlAbstract |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
quint8 getFunctionCode() const |
|
||||
{ |
|
||||
return _functionCode; |
|
||||
} |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief return the led's function code of ControlAbstract |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
quint8 getLedFunctionCode() |
|
||||
{ |
|
||||
return _ledFunctionCode; |
|
||||
} |
|
||||
|
|
||||
virtual QList<CommandControl_t> getCommandList(const EConsole::eConsoleState& csmState) = 0; |
|
||||
virtual void enable() = 0; |
|
||||
virtual void disable() = 0; |
|
||||
virtual EConsole::eControlType getType() const = 0; |
|
||||
}; |
|
||||
|
|
||||
#endif //ICONTROL_H
|
|
@ -1,23 +0,0 @@ |
|||||
#ifndef LED_H |
|
||||
#define LED_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QMap> |
|
||||
|
|
||||
#include "model/csm/type/EConsole.h" |
|
||||
|
|
||||
typedef struct LedStatus_T |
|
||||
{ |
|
||||
EConsole::eConsoleState csmState; |
|
||||
QString probType; |
|
||||
quint8 value; |
|
||||
}LedStatus_T; |
|
||||
|
|
||||
typedef struct Led_t |
|
||||
{ |
|
||||
QString name; |
|
||||
quint8 functionCode; |
|
||||
QList<LedStatus_T> ledStatus; |
|
||||
}Led_t; |
|
||||
|
|
||||
#endif //LED_H
|
|
@ -1,23 +0,0 @@ |
|||||
#ifndef ROTARY_H |
|
||||
#define ROTARY_H |
|
||||
|
|
||||
#include "model/csm/core/consoleComponent/ControlAbstract.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Rotary class |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 12 Jan 2020 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class Rotary : public ControlAbstract |
|
||||
{ |
|
||||
public: |
|
||||
QList<CommandControl_t> getCommandList(const EConsole::eConsoleState& consoleState) override; |
|
||||
EConsole::eControlType getType()const override; |
|
||||
void enable() override; |
|
||||
void disable() override; |
|
||||
}; |
|
||||
|
|
||||
#endif //ROTARY_H
|
|
@ -1,29 +0,0 @@ |
|||||
#ifndef CENTERBALL_H |
|
||||
#define CENTERBALL_H |
|
||||
|
|
||||
#include "model/csm/core/trackballComponent/TrackballItem.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief this is a code vision of center ball of trackball |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 12 jan 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class CenterBall : public TrackballItem |
|
||||
{ |
|
||||
public: |
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief ctor. this funciton set type of trackball item |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
inline CenterBall(const QString& name) : TrackballItem(EConsole::eTrackballItemType::centerBall, |
|
||||
name) |
|
||||
{ |
|
||||
_type = EConsole::eTrackballItemType::centerBall; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //CENTERBALL_H
|
|
@ -1,42 +0,0 @@ |
|||||
#ifndef HIDBUTTON_H |
|
||||
#define HIDBUTTON_H |
|
||||
|
|
||||
#include "model/csm/core/trackballComponent/TrackballItem.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief class of trackball's hid button |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 21 sep 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class HidButton : public TrackballItem |
|
||||
{ |
|
||||
private: |
|
||||
quint8 _functionCode; |
|
||||
|
|
||||
public: |
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief ctor. set type of control |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
HidButton(QString name) : TrackballItem(EConsole::eTrackballItemType::hidButton, name) |
|
||||
{ |
|
||||
_type = EConsole::eTrackballItemType::hidButton; |
|
||||
_functionCode = 0; |
|
||||
} |
|
||||
|
|
||||
quint8 getFucitonCode() const |
|
||||
{ |
|
||||
return _functionCode; |
|
||||
} |
|
||||
|
|
||||
void setFunctionCode(const quint8 fCode) |
|
||||
{ |
|
||||
this->_functionCode = fCode; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //HIDBUTTON_H
|
|
@ -1,23 +0,0 @@ |
|||||
#ifndef MICEBUTTON_H |
|
||||
#define MICEBUTTON_H |
|
||||
|
|
||||
#include "model/csm/core/trackballComponent/TrackballItem.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief class of mice button of trackball |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 12 jan 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class MiceButton : public TrackballItem |
|
||||
{ |
|
||||
public: |
|
||||
MiceButton(QString name) : TrackballItem(EConsole::eTrackballItemType::miceButton, name) |
|
||||
{ |
|
||||
_type = EConsole::eTrackballItemType::miceButton; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //MICEBUTTON_H
|
|
@ -1,51 +0,0 @@ |
|||||
#ifndef ITRACKBALLITEM_H |
|
||||
#define ITRACKBALLITEM_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/csm/type/EConsole.h" |
|
||||
#include "model/csm/dto/ItemValue.h" |
|
||||
#include "model/csm/dto/CommandControl.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief trackball item class. this class is the father of mice button, hid button and center ball. |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 12 jan 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class TrackballItem |
|
||||
{ |
|
||||
protected: |
|
||||
EConsole::eTrackballItemType _type; |
|
||||
QMap<EConsole::eTrackballState, QList<CommandControl_t> > _commandContainer; |
|
||||
QMap<EConsole::eTrackballState, QList<ItemValue_t> > _configContainer; |
|
||||
QString _name; |
|
||||
|
|
||||
public: |
|
||||
TrackballItem(const EConsole::eTrackballItemType& type, const QString& name); |
|
||||
|
|
||||
~TrackballItem() |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
EConsole::eTrackballItemType getType(); |
|
||||
|
|
||||
void appendCommandContainer(const EConsole::eTrackballState& trackballState, |
|
||||
const QList<CommandControl_t>& commandList); |
|
||||
void appendConfigContainer(const EConsole::eTrackballState& trackballState, |
|
||||
const QList<ItemValue_t>& configList); |
|
||||
void appendConfigContainer(const EConsole::eTrackballState& trackballState, |
|
||||
const ItemValue_t& config); |
|
||||
void appendCommandContainer(const QString& trackballStateName, |
|
||||
const CommandControl_t& command); |
|
||||
|
|
||||
QString getName()const; |
|
||||
|
|
||||
QList<CommandControl_t> getCommand(const EConsole::eTrackballState& state)const; |
|
||||
|
|
||||
QList<ItemValue_t> getConfig(const EConsole::eTrackballState& state)const; |
|
||||
}; |
|
||||
|
|
||||
#endif //ITRACKBALLITEM_H
|
|
@ -1,24 +0,0 @@ |
|||||
#ifndef COMMANDCONTROL_H |
|
||||
#define COMMANDCONTROL_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include "model/ultrasoundModule/type/ECommandType.h" |
|
||||
|
|
||||
typedef struct RecieverContent_t |
|
||||
{ |
|
||||
QString reciever; |
|
||||
QList<QVariant> content; |
|
||||
}RecieverContent_t; |
|
||||
|
|
||||
typedef struct CommandControl_t |
|
||||
{ |
|
||||
ECommandType::eCommandType commandType; |
|
||||
RecieverContent_t recieverInfo; |
|
||||
int value; |
|
||||
int timeTag; |
|
||||
}CommandControl_t; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(CommandControl_t) |
|
||||
Q_DECLARE_METATYPE(QList<CommandControl_t>) |
|
||||
|
|
||||
#endif //COMMANDCONTROL_H
|
|
@ -1,18 +0,0 @@ |
|||||
#ifndef PACKET_H |
|
||||
#define PACKET_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
typedef struct HidPacket_t |
|
||||
{ |
|
||||
quint8 header; |
|
||||
quint8 dataLength; |
|
||||
quint8 type; |
|
||||
quint8 functionCode; |
|
||||
quint16 data; |
|
||||
quint16 timeTag; |
|
||||
}HidPacket_t; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(HidPacket_t) |
|
||||
|
|
||||
#endif //PACKET_H
|
|
@ -1,17 +0,0 @@ |
|||||
#ifndef ITEMVALUE_H |
|
||||
#define ITEMVALUE_H |
|
||||
|
|
||||
#include <QMetaType> |
|
||||
#include <QtCore> |
|
||||
|
|
||||
typedef struct ItemValue_t |
|
||||
{ |
|
||||
QString value; |
|
||||
bool enable; |
|
||||
bool active; |
|
||||
}ItemValue_t; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(ItemValue_t) |
|
||||
Q_DECLARE_METATYPE(QList<ItemValue_t>) |
|
||||
|
|
||||
#endif // ITEMVALUE_H
|
|
@ -1,24 +0,0 @@ |
|||||
#ifndef TRACKBALLCONFIG_H |
|
||||
#define TRACKBALLCONFIG_H |
|
||||
|
|
||||
#include <QtCore> |
|
||||
#include <QMetaType> |
|
||||
|
|
||||
#include "model/csm/dto/ItemValue.h" |
|
||||
|
|
||||
typedef struct TrackballConfig_t |
|
||||
{ |
|
||||
QList<ItemValue_t> middleTop; |
|
||||
QList<ItemValue_t> topLeft; |
|
||||
QList<ItemValue_t> topRight; |
|
||||
QList<ItemValue_t> left; |
|
||||
QList<ItemValue_t> right; |
|
||||
QList<ItemValue_t> bottomRight; |
|
||||
QList<ItemValue_t> bottomLeft; |
|
||||
QList<ItemValue_t> middleBottom; |
|
||||
QList<ItemValue_t> centerBall; |
|
||||
}TrackballConfig_t; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(TrackballConfig_t) |
|
||||
|
|
||||
#endif //TRACKBALLCONFIG_H
|
|
@ -1,53 +0,0 @@ |
|||||
#ifndef CSMEXCEPTION_H |
|
||||
#define CSMEXCEPTION_H |
|
||||
|
|
||||
#include <exception> |
|
||||
|
|
||||
#include "logger/ESeverityLevel.h" |
|
||||
#include "model/csm/exception/CsmExceptionDef.h" |
|
||||
|
|
||||
class CsmException : public std::exception |
|
||||
{ |
|
||||
private: |
|
||||
quint32 _errId; |
|
||||
QString _innerMessage; |
|
||||
|
|
||||
public: |
|
||||
explicit CsmException(quint32 errId) |
|
||||
{ |
|
||||
_errId = errId; |
|
||||
} |
|
||||
|
|
||||
explicit CsmException(quint32 errId, QString innerMessage) |
|
||||
{ |
|
||||
_errId = errId; |
|
||||
_innerMessage = innerMessage; |
|
||||
} |
|
||||
|
|
||||
const char* what() const noexcept override |
|
||||
{ |
|
||||
return HwErrors::getErrorMessage(_errId).toStdString().c_str(); |
|
||||
} |
|
||||
|
|
||||
ESeverityLevel::eSeverityLevel getSeverityLevel() const |
|
||||
{ |
|
||||
return HwErrors::getSeverityLevel(_errId); |
|
||||
} |
|
||||
|
|
||||
quint32 errId() const |
|
||||
{ |
|
||||
return _errId; |
|
||||
} |
|
||||
|
|
||||
QString getInnerMessage() const |
|
||||
{ |
|
||||
return _innerMessage; |
|
||||
} |
|
||||
|
|
||||
QString getMessage() const |
|
||||
{ |
|
||||
return HwErrors::getErrorMessage(_errId); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //CSMEXCEPTION_H
|
|
@ -1,43 +0,0 @@ |
|||||
#ifndef CSMEXCEPTIONDEF_H |
|
||||
#define CSMEXCEPTIONDEF_H |
|
||||
|
|
||||
#include <QString> |
|
||||
|
|
||||
#include "logger/ESeverityLevel.h" |
|
||||
|
|
||||
#define ECHO_FAILED 0 |
|
||||
#define WRITE_ERROR 1 |
|
||||
#define HID_NOT_FOUND 2 |
|
||||
|
|
||||
struct HwErrors |
|
||||
{ |
|
||||
static QString getErrorMessage(quint32 id) |
|
||||
{ |
|
||||
switch(id) |
|
||||
{ |
|
||||
case ECHO_FAILED: |
|
||||
return |
|
||||
"The panel micro did not responsed within time limit. Restart the device and contact the service if problem still persists"; |
|
||||
|
|
||||
case WRITE_ERROR: |
|
||||
return "Could not send HID data to the panel"; |
|
||||
|
|
||||
case HID_NOT_FOUND: |
|
||||
return |
|
||||
"HID device not found, make sure the usb cable is connected and device is powered on"; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
static ESeverityLevel::eSeverityLevel getSeverityLevel(quint32 id) |
|
||||
{ |
|
||||
switch(id) |
|
||||
{ |
|
||||
case ECHO_FAILED: |
|
||||
case WRITE_ERROR: |
|
||||
case HID_NOT_FOUND: |
|
||||
return ESeverityLevel::Error; |
|
||||
} |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //CSMEXCEPTIONDEF_H
|
|
@ -1,133 +0,0 @@ |
|||||
#ifndef ECONSOLE_H |
|
||||
#define ECONSOLE_H |
|
||||
|
|
||||
#include <QtCore> |
|
||||
#include <QObject> |
|
||||
|
|
||||
class EConsole : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
//Private constructor prevent the enumeration class from being instantiated
|
|
||||
explicit EConsole(QObject* parent = nullptr); |
|
||||
|
|
||||
public: |
|
||||
enum eControlType |
|
||||
{ |
|
||||
button, |
|
||||
rotary |
|
||||
}; |
|
||||
|
|
||||
enum eConsoleButtonType : int |
|
||||
{ |
|
||||
pushButton = 1, |
|
||||
rotaryButton = 2, |
|
||||
rotaryPushButton = 3, |
|
||||
rotaryPushButtonUpDown = 5 |
|
||||
}; |
|
||||
|
|
||||
enum eCsmInterruptType : quint8 |
|
||||
{ |
|
||||
push, |
|
||||
longPress, |
|
||||
tabChanged, |
|
||||
touchPanel, |
|
||||
deviceInterrupt, |
|
||||
mouseMove |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eCsmInterruptType) |
|
||||
|
|
||||
enum eConsoleState : quint8 |
|
||||
{ |
|
||||
BMode, |
|
||||
BMode_Freeze, |
|
||||
BMode_Freeze_CineTab, |
|
||||
BMode_Freeze_Pointer, |
|
||||
BMode_Pointer, |
|
||||
Test |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eConsoleState) |
|
||||
|
|
||||
enum eTrackballMode : quint8 |
|
||||
{ |
|
||||
trackball, |
|
||||
mouse |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eTrackballMode) |
|
||||
|
|
||||
enum eTrackballState : quint8 |
|
||||
{ |
|
||||
tBMode, |
|
||||
tBMode_Freeze, |
|
||||
tTest, |
|
||||
tCine, |
|
||||
tHDZoom |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eTrackballState) |
|
||||
|
|
||||
enum eTrackballItemType : quint8 |
|
||||
{ |
|
||||
miceButton, |
|
||||
hidButton, |
|
||||
centerBall |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eTrackballItemType) |
|
||||
|
|
||||
enum eTrackballItem : quint8 |
|
||||
{ |
|
||||
left, |
|
||||
right, |
|
||||
top, |
|
||||
bottom, |
|
||||
topLeft, |
|
||||
topRight, |
|
||||
bottomLeft, |
|
||||
bottomRight, |
|
||||
center |
|
||||
}; |
|
||||
|
|
||||
Q_ENUM(eTrackballItem) |
|
||||
|
|
||||
template<typename EnumType> |
|
||||
static QString eConsoleEnumToString(const EnumType inputEnum) |
|
||||
{ |
|
||||
return QString(QMetaEnum::fromType<EnumType>().valueToKey(inputEnum)); |
|
||||
} |
|
||||
|
|
||||
template<typename EnumType> |
|
||||
static EnumType stringToEConsoleEnum(QString name) |
|
||||
{ |
|
||||
auto&& metaEnum = QMetaEnum::fromType<EnumType>(); |
|
||||
auto data = name.toUtf8().constData(); |
|
||||
auto ret = static_cast<EnumType>(metaEnum.keyToValue(data)); |
|
||||
|
|
||||
return ret; |
|
||||
} |
|
||||
|
|
||||
template<typename EnumType> |
|
||||
static quint8 consoleEnumToQuint(const EnumType qtEnum) |
|
||||
{ |
|
||||
return QMetaEnum::fromType<EnumType>().value(qtEnum); |
|
||||
} |
|
||||
|
|
||||
template<typename EnumType> |
|
||||
static EnumType consoleQuintToEnum(const quint8 intEnum) |
|
||||
{ |
|
||||
auto&& metaEnum = QMetaEnum::fromType<EnumType>(); |
|
||||
|
|
||||
return static_cast<EnumType>(intEnum); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
template EConsole::eConsoleState EConsole::consoleQuintToEnum<EConsole::eConsoleState>( |
|
||||
const quint8 intEnum); |
|
||||
template EConsole::eTrackballState EConsole::consoleQuintToEnum<EConsole::eTrackballState>( |
|
||||
const quint8 intEnum); |
|
||||
|
|
||||
#endif //ECONSOLE_H
|
|
@ -1,77 +0,0 @@ |
|||||
#ifndef GRAPH_H |
|
||||
#define GRAPH_H |
|
||||
|
|
||||
#include <QtCore> |
|
||||
#include <QtConcurrent/QtConcurrent> |
|
||||
|
|
||||
#include "Node.h" |
|
||||
#include "EConsole.h" |
|
||||
|
|
||||
class GraphException : public QException |
|
||||
{ |
|
||||
private: |
|
||||
QString message; |
|
||||
|
|
||||
public: |
|
||||
GraphException(QString const& text = " ") noexcept |
|
||||
: message(text) |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
GraphException(const GraphException& re) |
|
||||
{ |
|
||||
this->message = re.message; |
|
||||
} |
|
||||
|
|
||||
~GraphException() override |
|
||||
{ |
|
||||
} |
|
||||
|
|
||||
void raise() const override { |
|
||||
throw*this; |
|
||||
} |
|
||||
|
|
||||
GraphException* clone() const override { |
|
||||
return new GraphException(*this); |
|
||||
} |
|
||||
|
|
||||
const char* what() const noexcept override { |
|
||||
return this->message.toStdString().c_str(); |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief class for processing graph |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 13 JAN 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class Graph |
|
||||
{ |
|
||||
QList<Node*> _nodeList; |
|
||||
|
|
||||
public: |
|
||||
Graph(); |
|
||||
|
|
||||
bool existNode(QString nodeName); |
|
||||
bool existNode(Node* node); |
|
||||
QList<Node*> getNodeChildren(QString nodeName); |
|
||||
|
|
||||
Node* getNodeByName(QString name); |
|
||||
|
|
||||
template<typename EnumType> |
|
||||
Node* getNode(EnumType state); |
|
||||
|
|
||||
bool insertEdge(Node* source, |
|
||||
Node* destination, |
|
||||
EConsole::eCsmInterruptType interrupt, |
|
||||
QString vaule); |
|
||||
bool insertEdge(QString sourceName, |
|
||||
QString destinationName, |
|
||||
EConsole::eCsmInterruptType interrupt, |
|
||||
QString value); |
|
||||
}; |
|
||||
|
|
||||
#endif //GRAPH_H
|
|
@ -1,35 +0,0 @@ |
|||||
#ifndef NODE_H |
|
||||
#define NODE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
|
|
||||
#include "model/csm/type/Transition.h" |
|
||||
#include "model/csm/type/EConsole.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief the class for node processing |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 13 JAN 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class Node |
|
||||
{ |
|
||||
private: |
|
||||
QList<Transition_t> _transitionList; |
|
||||
QString _name; |
|
||||
quint8 _state; |
|
||||
QList<Node*> _childList; |
|
||||
|
|
||||
public: |
|
||||
Node(QString name); |
|
||||
QString getName(); |
|
||||
QList<Node*> getChildren(); |
|
||||
Node* getDestination(EConsole::eCsmInterruptType interrupt, QString value); |
|
||||
bool hasTransiton(Transition_t inputTransition); |
|
||||
bool appendTransition(Node* destiantion, EConsole::eCsmInterruptType interrupt, QString value); |
|
||||
quint8 getState(); |
|
||||
}; |
|
||||
|
|
||||
#endif //NODE_H
|
|
@ -1,17 +0,0 @@ |
|||||
#ifndef TRANSITION_H |
|
||||
#define TRANSITION_H |
|
||||
|
|
||||
#include <QtCore> |
|
||||
|
|
||||
#include "model/csm/type/EConsole.h" |
|
||||
|
|
||||
class Node; |
|
||||
typedef struct Transition_t |
|
||||
{ |
|
||||
Node* source; |
|
||||
Node* Destination; |
|
||||
EConsole::eCsmInterruptType interruptType; |
|
||||
QString value; |
|
||||
}Transition_t; |
|
||||
|
|
||||
#endif //TRANSITION_H
|
|
@ -1,27 +0,0 @@ |
|||||
#ifndef MOUSEEVENTFILTER_H |
|
||||
#define MOUSEEVENTFILTER_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QtEvents> |
|
||||
|
|
||||
#include "model/csm/core/TrackballCore.h" |
|
||||
|
|
||||
class MouseEventFilter : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
bool eventFilter(QObject* obj, QEvent* event) override; |
|
||||
MouseEventFilter(); |
|
||||
}; |
|
||||
|
|
||||
class TrackballMouseEventFilter : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
public: |
|
||||
bool eventFilter(QObject* obj, QEvent* event) override; |
|
||||
TrackballMouseEventFilter(); |
|
||||
}; |
|
||||
|
|
||||
#endif //MOUSEEVENTFILTER_H
|
|
@ -1,43 +0,0 @@ |
|||||
#ifndef XCURSORSETTER_H |
|
||||
#define XCURSORSETTER_H |
|
||||
|
|
||||
#include <stdio.h> |
|
||||
#include <stdlib.h> |
|
||||
#include <libgen.h> |
|
||||
#include <X11/Xcursor/Xcursor.h> |
|
||||
#include <X11/extensions/XInput2.h> |
|
||||
#include <assert.h> |
|
||||
|
|
||||
using namespace std; |
|
||||
|
|
||||
class XCursorSetter |
|
||||
{ |
|
||||
Display* dpy; |
|
||||
int screen; |
|
||||
Window win; |
|
||||
|
|
||||
int ptrid; |
|
||||
char *shape_name; |
|
||||
int shape; |
|
||||
int size; |
|
||||
char *theme; |
|
||||
XcursorImage *image; |
|
||||
Cursor cursor; |
|
||||
// ./xicursorset 2 right_ptr whiteglass
|
|
||||
|
|
||||
void hide() |
|
||||
{ |
|
||||
ptrid = std::atoi("19"); |
|
||||
shape_name = "right_ptr"; |
|
||||
|
|
||||
shape = XcursorLibraryShape(shape_name); |
|
||||
if (shape < 0) |
|
||||
{ |
|
||||
fprintf(stderr, "Invalid shape name.\n"); |
|
||||
return; |
|
||||
} |
|
||||
} |
|
||||
|
|
||||
|
|
||||
}; |
|
||||
#endif // XCURSORSETTER_H
|
|
@ -1,63 +0,0 @@ |
|||||
#ifndef XMLCONFIGREADER_H |
|
||||
#define XMLCONFIGREADER_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QtXml> |
|
||||
|
|
||||
#include "model/csm/core/consoleComponent/Button.h" |
|
||||
#include "model/csm/core/consoleComponent/Rotary.h" |
|
||||
#include "model/csm/core/consoleComponent/Led.h" |
|
||||
#include "model/csm/dto/CommandControl.h" |
|
||||
#include "logger/Logger.h" |
|
||||
#include "model/csm/type/Node.h" |
|
||||
#include "model/csm/type/Graph.h" |
|
||||
|
|
||||
class XmlConsoleConfigReader |
|
||||
{ |
|
||||
private: |
|
||||
inline void handleError(ESeverityLevel::eSeverityLevel severityLevel, |
|
||||
ELogID::eLogID logID, |
|
||||
QString logText, |
|
||||
bool emitThrow = true) const; |
|
||||
|
|
||||
QDomDocument _xmlDoc; |
|
||||
QString _xmlAddress; |
|
||||
QDomElement _root; |
|
||||
QDomElement _console; |
|
||||
QList<QDomElement> _consoleButtons; |
|
||||
|
|
||||
public: |
|
||||
XmlConsoleConfigReader(QString address); |
|
||||
|
|
||||
QDomElement getConsole(); |
|
||||
QList<QDomElement> getConsoleButtons(); |
|
||||
|
|
||||
//Console Button
|
|
||||
static QList<QDomElement> getAllControls(QDomElement consoleButton); |
|
||||
static QDomElement getRotary(QDomElement consoleButton); |
|
||||
static QList<QDomElement> getPushButton(QDomElement consoleButton); |
|
||||
static QList<QDomElement> getLeds(QDomElement console); |
|
||||
|
|
||||
static void initControl(QDomElement controlElement, Button* btn); |
|
||||
static void initControl(QDomElement controlElement, Rotary* rotary); |
|
||||
static void initControls(QList<QDomElement> controlsElement, |
|
||||
Button* push, |
|
||||
Button* up, |
|
||||
Button* down, |
|
||||
Rotary* rotary); |
|
||||
|
|
||||
static void initLeds(QList<QDomElement> ledsElements, QList<Led_t>* leds); |
|
||||
|
|
||||
static QString initConsoleButton(QDomElement consoleButtonElement, |
|
||||
Button* push, |
|
||||
Button* up, |
|
||||
Button* down, |
|
||||
Rotary* rotary, |
|
||||
QList<Led_t>* leds); |
|
||||
static void getControlCommonLongPressCommands(QDomElement controlElement, Button* btn); |
|
||||
static void getButtonStateCommands(QDomElement controlElement, Button* btn); |
|
||||
static void getButtonLongPressCommandBasedOnConsoleState(QDomNode consoleState, Button* btn); |
|
||||
static void getButtonShortPressCommands(QDomNode consoleState, Button* btn); |
|
||||
}; |
|
||||
|
|
||||
#endif //XMLCONFIGREADER_H
|
|
@ -1,49 +0,0 @@ |
|||||
#ifndef XMLGRAPHSTATEREADER_H |
|
||||
#define XMLGRAPHSTATEREADER_H |
|
||||
#include <QObject> |
|
||||
#include <QtXml> |
|
||||
|
|
||||
#include "model/csm/dto/CommandControl.h" |
|
||||
#include "logger/Logger.h" |
|
||||
#include "model/csm/type/Node.h" |
|
||||
#include "model/csm/type/Graph.h" |
|
||||
|
|
||||
class XmlGraphStateReader |
|
||||
{ |
|
||||
private: |
|
||||
QDomDocument _xmlDoc; |
|
||||
QString _xmlAddress; |
|
||||
QDomElement _root; |
|
||||
//gragh nodes
|
|
||||
QDomElement _state; |
|
||||
QList<QDomElement> _commonDestinations; |
|
||||
QList<QDomElement> _specificStates; |
|
||||
|
|
||||
inline void handleError(ESeverityLevel::eSeverityLevel severityLevel, |
|
||||
ELogID::eLogID logID, |
|
||||
QString logText, |
|
||||
bool emitThrow = true) const; |
|
||||
|
|
||||
public: |
|
||||
XmlGraphStateReader(QString address); |
|
||||
//Graph
|
|
||||
QDomElement getState(); |
|
||||
QList<QDomElement> getCommonDestinations(); |
|
||||
QList<QDomElement> getSpeciticStates(); |
|
||||
|
|
||||
static QList<QDomElement> getStateDestination(QDomElement state); |
|
||||
static void addEdge(QDomElement state, |
|
||||
QList<QDomElement> commonDestinations, |
|
||||
Graph* stateGraph); |
|
||||
static void initGraph(Graph* stateGraph, |
|
||||
QList<QDomElement> states, |
|
||||
QList<QDomElement> commonDestinations); |
|
||||
static void addSpeciticEdge(QDomElement state, QList<QDomElement> desinations, |
|
||||
Graph* stateGraph); |
|
||||
|
|
||||
static void addCommonEdge(QDomElement state, |
|
||||
QList<QDomElement> commonDestinations, |
|
||||
Graph* stateGraph); |
|
||||
}; |
|
||||
|
|
||||
#endif //XMLGRAPHSTATEREADER_H
|
|
@ -1,49 +0,0 @@ |
|||||
#ifndef XMLTRACKBALLCONFIGREADER_H |
|
||||
#define XMLTRACKBALLCONFIGREADER_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QtXml> |
|
||||
|
|
||||
#include "logger/Logger.h" |
|
||||
#include "model/csm/core/trackballComponent/TrackballItem.h" |
|
||||
|
|
||||
/*****************************************************************************/ |
|
||||
/**
|
|
||||
* @brief |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 13 JAN 2021 |
|
||||
*/ |
|
||||
/*****************************************************************************/ |
|
||||
class XmlTrackballConfigReader |
|
||||
{ |
|
||||
private: |
|
||||
inline void handleError(ESeverityLevel::eSeverityLevel severityLevel, |
|
||||
ELogID::eLogID logID, |
|
||||
QString logText, |
|
||||
bool emitThrow = true) const; |
|
||||
|
|
||||
QDomDocument _xmlDoc; |
|
||||
QString _xmlAddress; |
|
||||
QDomElement _root; |
|
||||
QDomElement _trackball; |
|
||||
QList<QDomElement> _trackballItems; |
|
||||
|
|
||||
public: |
|
||||
XmlTrackballConfigReader(QString address); |
|
||||
|
|
||||
QDomElement getTrackball(); |
|
||||
QList<QDomElement> getTrackballItems(); |
|
||||
|
|
||||
static QDomElement getChildElement(const QDomElement fatherElement, const QString elementName); |
|
||||
static QList<QDomElement> getChildrenElemets(const QDomElement fatherElement, |
|
||||
const QString elementsName); |
|
||||
static QString getElementAttribute(const QDomElement element, const QString attributeName); |
|
||||
static bool getElementBooleanAttribute(QDomElement element, QString bollAttrName); |
|
||||
static void initTrackballItem(TrackballItem* tbItem, const QDomElement itemElement); |
|
||||
static void initTrackballItems(QList<TrackballItem*> trackballItems, |
|
||||
const QDomElement trackballElement); |
|
||||
static TrackballItem* findItem(const QList<TrackballItem*> trackballItems, const QString name); |
|
||||
}; |
|
||||
|
|
||||
#endif //XMLTRACKBALLCONFIGREADER_H
|
|
@ -1,35 +0,0 @@ |
|||||
#ifndef DATABASEMANAGER_H |
|
||||
#define DATABASEMANAGER_H |
|
||||
|
|
||||
#include <QtSql> |
|
||||
#include <QMutex> |
|
||||
|
|
||||
#include "model/ultrasoundModule/UsModule.h" |
|
||||
#include "config/Configuration.h" |
|
||||
#include "model/databaseManager/core/DatabaseManagerCore.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Is responsible for database management i.e. CRUD operations on tables |
|
||||
* @details This module will take commands from other classes and does the database stuff, for |
|
||||
* example it will read requested data or writes new ones, at the first run it also creates the DB |
|
||||
* scheme with provided files |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @date 20 sep 2020 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class DatabaseManager : public UsModule |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
US_MODULE |
|
||||
SINGLETON(DatabaseManager) |
|
||||
|
|
||||
private: |
|
||||
DatabaseManagerCore* _core; |
|
||||
|
|
||||
public: |
|
||||
DatabaseManager(); |
|
||||
~DatabaseManager() override; |
|
||||
}; |
|
||||
|
|
||||
#endif //DATABASEMANAGER_H
|
|
@ -1,66 +0,0 @@ |
|||||
#ifndef DATABASEMANAGERCORE_H |
|
||||
#define DATABASEMANAGERCORE_H |
|
||||
|
|
||||
#include <QObject> |
|
||||
#include <QtSql> |
|
||||
|
|
||||
#include "model/databaseManager/utils/XmlReader.h" |
|
||||
#include "model/databaseManager/type/EDatabaseRequest.h" |
|
||||
#include "model/databaseManager/dto/ProbeProperties/DbmProbeProperties.h" |
|
||||
#include "model/databaseManager/dto/ProbeProperties/DbmApplicatoin.h" |
|
||||
#include "model/databaseManager/dto/ProbeProperties/DbmPreset.h" |
|
||||
#include "model/databaseManager/dto/ProbeProperties/DbmPresetValue.h" |
|
||||
#include "model/databaseManager/dto/ProbeProperties/DbmLastConfig.h" |
|
||||
#include "model/databaseManager/dto/System/DbmSysParameters.h" |
|
||||
#include "model/databaseManager/dto/System/DbmGrayMap.h" |
|
||||
#include "model/databaseManager/dto/System/DbmTgc.h" |
|
||||
#include "model/databaseManager/dto/System/DbmTintMap.h" |
|
||||
#include "model/databaseManager/dto/System/DbmSri.h" |
|
||||
#include "model/databaseManager/dto/System/DbmDynamicContrast.h" |
|
||||
#include "model/databaseManager/dto/System/DbmCriFilter.h" |
|
||||
#include "model/databaseManager/dto/System/DbmEnhance.h" |
|
||||
#include "model/databaseManager/dto/Hardware/DbmLineFilter.h" |
|
||||
#include "model/databaseManager/dto/Hardware/DbmLpf.h" |
|
||||
#include "model/databaseManager/dto/Hardware/DbmApodizationLut.h" |
|
||||
#include "model/databaseManager/dto/User/DbmUser.h" |
|
||||
#include "model/databaseManager/dto/User/DbmUserGrayMap.h" |
|
||||
#include "model/databaseManager/dto/User/DbmUserTgc.h" |
|
||||
#include "model/databaseManager/core/DatabaseManagerNames.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Database manager core class |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 20 sep 2020 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class DatabaseManagerCore : public QObject |
|
||||
{ |
|
||||
Q_OBJECT |
|
||||
|
|
||||
private: |
|
||||
static QMutex _locker; |
|
||||
XmlReader* _xmlReader; |
|
||||
XmlReader* _xmlDataReader; |
|
||||
QSqlDatabase _databaseDriver = QSqlDatabase::addDatabase("QSQLITE"); |
|
||||
|
|
||||
QString getDatabaseHomeDirectory(); |
|
||||
QString createDbName(QString dbName); |
|
||||
DbmDtoGrayMap appendUserGrayMapToMainGrayMapList(const QVariant& userGrayVar, |
|
||||
QVariant& grayVar); |
|
||||
DbmDtoTgc appendUserTgcToMainTgcList(const QVariant& userTgcVar, QVariant& tgcVar); |
|
||||
|
|
||||
public: |
|
||||
DatabaseManagerCore(); |
|
||||
~DatabaseManagerCore(); |
|
||||
|
|
||||
void init(); |
|
||||
|
|
||||
QPair<bool, QVariant> read(EDatabaseRequest::eDatabaseRequest databaseRequest, |
|
||||
QList<QVariant> args); |
|
||||
bool write(EDatabaseRequest::eDatabaseRequest databaseRequest, |
|
||||
QList<QVariant> args); |
|
||||
}; |
|
||||
|
|
||||
#endif //DATABASEMANAGERCORE_H
|
|
@ -1,11 +0,0 @@ |
|||||
#ifndef DATABASEMANAGERNAMES_H |
|
||||
#define DATABASEMANAGERNAMES_H |
|
||||
|
|
||||
#define DB_FILE_EXT ".db" |
|
||||
|
|
||||
#define PROBE_DB_NAME "ProbeProperties" |
|
||||
#define SYSTEM_DB_NAME "System" |
|
||||
#define HW_DB_NAME "Hardware" |
|
||||
#define USER_DB_NAME "UserData" |
|
||||
|
|
||||
#endif //DATABASEMANAGERNAMES_H
|
|
@ -1,55 +0,0 @@ |
|||||
#ifndef DBMAPODIZATIONLUT_H |
|
||||
#define DBMAPODIZATIONLUT_H |
|
||||
|
|
||||
#include <QMetaType> |
|
||||
#include <QString> |
|
||||
#include <QObject> |
|
||||
#include <QtSql> |
|
||||
|
|
||||
#include "model/databaseManager/utils/initializationUtils.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Database dto structure for ApodizationLut |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 07 feb 2021 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
typedef struct DbmDtoApodizationLut |
|
||||
{ |
|
||||
QList<int> case1; |
|
||||
QList<int> case2; |
|
||||
QList<int> case3; |
|
||||
QList<int> case4; |
|
||||
bool isActive; |
|
||||
}DbmDtoApodizationLut; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(DbmDtoApodizationLut) |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Database class for ApodizationLut |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 2021 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class DbmApodizationLut |
|
||||
{ |
|
||||
public: |
|
||||
static bool getApodizationLut(QSqlTableModel* tableModel, DbmDtoApodizationLut& apodizationLut) |
|
||||
{ |
|
||||
tableModel->setTable("ApodizationLut"); |
|
||||
tableModel->setFilter(QString("isActive = 1")); |
|
||||
bool ret = tableModel->select(); |
|
||||
INIT_LIST(apodizationLut, tableModel, case1, Int, 0); |
|
||||
INIT_LIST(apodizationLut, tableModel, case2, Int, 0); |
|
||||
INIT_LIST(apodizationLut, tableModel, case3, Int, 0); |
|
||||
INIT_LIST(apodizationLut, tableModel, case4, Int, 0); |
|
||||
|
|
||||
return ret; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //DBMAPODIZATIONLUT_H
|
|
@ -1,73 +0,0 @@ |
|||||
#ifndef DBMLINEFILTER_H |
|
||||
#define DBMLINEFILTER_H |
|
||||
|
|
||||
#include <QMetaType> |
|
||||
#include <QString> |
|
||||
#include <QObject> |
|
||||
#include <QtSql> |
|
||||
#include <QDebug> |
|
||||
|
|
||||
#include "model/databaseManager/utils/initializationUtils.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Database dto structu for Line filter |
|
||||
* @author MMT |
|
||||
* @details |
|
||||
* @date 06 feb 2021 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
typedef struct DbmDtoLineFilter |
|
||||
{ |
|
||||
QList<QList<double> > lineFilterData; |
|
||||
bool isActive; |
|
||||
}DbmDtoLineFilter; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(DbmDtoLineFilter) |
|
||||
|
|
||||
class DbmLineFilter |
|
||||
{ |
|
||||
public: |
|
||||
static bool getLineFilter(QSqlTableModel* tableModel, DbmDtoLineFilter& lineFilter) |
|
||||
{ |
|
||||
tableModel->setTable("LineFilter"); |
|
||||
tableModel->setFilter(QString("isActive = 1")); |
|
||||
bool ret = tableModel->select(); |
|
||||
if(!ret) |
|
||||
{ |
|
||||
return ret; |
|
||||
} |
|
||||
|
|
||||
auto __off = |
|
||||
tableModel->record(0).value("off").toString().split(',', QString::SkipEmptyParts); |
|
||||
auto __low = |
|
||||
tableModel->record(0).value("low").toString().split(',', QString::SkipEmptyParts); |
|
||||
auto __hi = |
|
||||
tableModel->record(0).value("hi").toString().split(',', QString::SkipEmptyParts); |
|
||||
|
|
||||
QList<double> temp; |
|
||||
for(int j = 0; j < __off.length(); ++j) |
|
||||
{ |
|
||||
temp.append(__off[j].toDouble()); |
|
||||
} |
|
||||
lineFilter.lineFilterData.append(temp); |
|
||||
|
|
||||
temp.clear(); |
|
||||
for(int j = 0; j < __low.length(); ++j) |
|
||||
{ |
|
||||
temp.append(__low[j].toDouble()); |
|
||||
} |
|
||||
lineFilter.lineFilterData.append(temp); |
|
||||
|
|
||||
temp.clear(); |
|
||||
for(int j = 0; j < __hi.length(); ++j) |
|
||||
{ |
|
||||
temp.append(__hi[j].toDouble()); |
|
||||
} |
|
||||
lineFilter.lineFilterData.append(temp); |
|
||||
|
|
||||
return ret; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //DBMLINEFILTER_H
|
|
@ -1,58 +0,0 @@ |
|||||
#ifndef DBMLPF_H |
|
||||
#define DBMLPF_H |
|
||||
#include <QMetaType> |
|
||||
#include <QString> |
|
||||
#include <QObject> |
|
||||
#include <QtSql> |
|
||||
#include <QDebug> |
|
||||
|
|
||||
#include "model/databaseManager/utils/initializationUtils.h" |
|
||||
#include "model/databaseManager/type/EAlgorithmType.h" |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
/**
|
|
||||
* @brief Database dto structure for LPF data |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 06 feb 2021 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
typedef struct DbmDtoLpf |
|
||||
{ |
|
||||
public: |
|
||||
QList<double> lpf; |
|
||||
QList<double> lpfCoef; |
|
||||
QList<double> lpfKaiser; |
|
||||
QList<double> lpfKaiser2; |
|
||||
bool isActive; |
|
||||
}DbmDtoLpf; |
|
||||
|
|
||||
Q_DECLARE_METATYPE(DbmDtoLpf) |
|
||||
|
|
||||
/*************************************************************************************************/ |
|
||||
|
|
||||
/**
|
|
||||
* @brief Database class for LPF data |
|
||||
* @author Mohammad Mohsen Talaie |
|
||||
* @details |
|
||||
* @date 06 feb 2021 |
|
||||
*/ |
|
||||
/*************************************************************************************************/ |
|
||||
class DbmLpf |
|
||||
{ |
|
||||
public: |
|
||||
static bool getLpfParams(QSqlTableModel* tableModel, DbmDtoLpf& lpfData) |
|
||||
{ |
|
||||
tableModel->setTable("LPF"); |
|
||||
tableModel->setFilter(QString("isActive = 1")); |
|
||||
bool ret = tableModel->select(); |
|
||||
INIT_LIST(lpfData, tableModel, lpf, Double, 0); |
|
||||
INIT_LIST(lpfData, tableModel, lpfCoef, Double, 0); |
|
||||
INIT_LIST(lpfData, tableModel, lpfKaiser, Double, 0); |
|
||||
INIT_LIST(lpfData, tableModel, lpfKaiser2, Double, 0); |
|
||||
|
|
||||
return ret; |
|
||||
} |
|
||||
}; |
|
||||
|
|
||||
#endif //DBMLPF_H
|
|
Some files were not shown because too many files changed in this diff
Loading…
Reference in new issue