/******************************************************************************** * FaceTrackNoIR This program is a private project of some enthusiastic * * gamers from Holland, who don't like to pay much for * * head-tracking. * * * * Copyright (C) 2012 Wim Vriend (Developing) * * Ron Hendriks (Researching and Testing) * * Homepage: http://facetracknoir.sourceforge.net/home/default.htm * * * * Copyright (C) 2012 FuraX49 (HAT Tracker plugins) * * Homepage: http://hatire.sourceforge.net * * * * This program is free software; you can redistribute it and/or modify it * * under the terms of the GNU General Public License as published by the * * Free Software Foundation; either version 3 of the License, or (at your * * option) any later version. * * * * This program is distributed in the hope that it will be useful, but * * WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY * * or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for * * more details. * * * * You should have received a copy of the GNU General Public License along * * with this program; if not, see . * * * ********************************************************************************/ #include #include #include #include "ftnoir_tracker_hat_settings.h" #ifdef OPENTRACK_API #include "opentrack/options.hpp" #endif void TrackerSettings::load_ini() { #ifdef OPENTRACK_API QSettings settings(options::group::org); // Registry settings (in HK_USER) #else QSettings settings("opentrack"); // Registry settings (in HK_USER) #endif #ifdef OPENTRACK_API QString currentFile = settings.value( options::group::filename_key, QCoreApplication::applicationDirPath() + options::group::default_path ).toString(); #else QString currentFile = settings.value( "SettingsFile", QCoreApplication::applicationDirPath() + "/Settings/default.ini" ).toString(); #endif QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file) iniFile.beginGroup( "HAT" ); SerialPortName=iniFile.value ( "PortName" ).toString(); EnableRoll = iniFile.value( "EnableRoll", 1 ).toBool(); EnablePitch = iniFile.value( "EnablePitch", 1 ).toBool(); EnableYaw = iniFile.value( "EnableYaw", 1 ).toBool(); EnableX = iniFile.value( "EnableX", 0 ).toBool(); EnableY = iniFile.value( "EnableY", 0 ).toBool(); EnableZ = iniFile.value( "EnableZ", 0 ).toBool(); InvertRoll = iniFile.value( "InvertRoll", 1 ).toBool(); InvertPitch = iniFile.value( "InvertPitch", 1 ).toBool(); InvertYaw = iniFile.value( "InvertYaw", 1 ).toBool(); InvertX = iniFile.value( "InvertX", 0 ).toBool(); InvertY = iniFile.value( "InvertY", 0 ).toBool(); InvertZ = iniFile.value( "InvertZ", 0 ).toBool(); RollAxe=iniFile.value("RollAxe",1).toInt(); PitchAxe=iniFile.value("PitchAxe",2).toInt(); YawAxe=iniFile.value("YawAxe",0).toInt(); XAxe=iniFile.value("XAxe",1).toInt(); YAxe=iniFile.value("YAxe",2).toInt(); ZAxe=iniFile.value("ZAxe",0).toInt(); CmdStart=iniFile.value ( "CmdStart").toString(); CmdStop=iniFile.value ( "CmdStop" ).toString(); CmdInit=iniFile.value ( "CmdInit" ).toString(); CmdReset=iniFile.value ( "CmdReset" ).toString(); CmdCenter=iniFile.value ( "CmdCenter" ).toString(); CmdZero=iniFile.value ( "CmdZero" ).toString(); DelayInit=iniFile.value("DelayInit",0).toInt(); DelayStart=iniFile.value("DelayStart",0).toInt(); DelaySeq=iniFile.value("DelaySeq",0).toInt(); #ifdef OPENTRACK_API FPSArduino=iniFile.value("FPSArduino",30).toInt(); #endif BigEndian=iniFile.value("BigEndian",0).toBool(); pBaudRate=static_cast(iniFile.value("BaudRate",QSerialPort::Baud115200).toInt()); pDataBits=static_cast(iniFile.value("DataBits",QSerialPort::Data8).toInt()); pParity=static_cast(iniFile.value("Parity",QSerialPort::NoParity).toInt()); pStopBits=static_cast(iniFile.value("StopBits",QSerialPort::OneStop).toInt()); pFlowControl=static_cast(iniFile.value("FlowControl",QSerialPort::HardwareControl).toInt()); iniFile.endGroup(); } void TrackerSettings::save_ini() const { QSettings settings("opentrack"); // Registry settings (in HK_USER) QString currentFile = settings.value( "SettingsFile", QCoreApplication::applicationDirPath() + "/settings/default.ini" ).toString(); QSettings iniFile( currentFile, QSettings::IniFormat ); // Application settings (in INI-file) iniFile.beginGroup ( "HAT" ); iniFile.setValue ( "PortName",SerialPortName ); iniFile.setValue( "EnableRoll", EnableRoll ); iniFile.setValue( "EnablePitch", EnablePitch ); iniFile.setValue( "EnableYaw", EnableYaw ); iniFile.setValue( "EnableX", EnableX ); iniFile.setValue( "EnableY", EnableY ); iniFile.setValue( "EnableZ", EnableZ ); iniFile.setValue( "InvertRoll", InvertRoll ); iniFile.setValue( "InvertPitch", InvertPitch ); iniFile.setValue( "InvertYaw", InvertYaw ); iniFile.setValue( "InvertX", InvertX ); iniFile.setValue( "InvertY", InvertY ); iniFile.setValue( "InvertZ", InvertZ ); iniFile.setValue ( "RollAxe", RollAxe ); iniFile.setValue ( "PitchAxe", PitchAxe ); iniFile.setValue ( "YawAxe",YawAxe ); iniFile.setValue ( "XAxe", XAxe ); iniFile.setValue ( "YAxe", YAxe ); iniFile.setValue ( "ZAxe", ZAxe ); iniFile.setValue ( "CmdStart",CmdStart.toLatin1()); iniFile.setValue ( "CmdStop",CmdStop.toLatin1()); iniFile.setValue ( "CmdInit",CmdInit.toLatin1()); iniFile.setValue ( "CmdReset",CmdReset.toLatin1()); iniFile.setValue ( "CmdCenter",CmdCenter.toLatin1() ); iniFile.setValue ( "CmdZero",CmdZero.toLatin1() ); iniFile.setValue ( "DelayInit",DelayInit); iniFile.setValue ( "DelayStart",DelayStart); iniFile.setValue ( "DelaySeq",DelaySeq); #ifdef OPENTRACK_API iniFile.setValue ( "FPSArduino", FPSArduino ); #endif iniFile.setValue("BigEndian",BigEndian); iniFile.setValue("BaudRate",pBaudRate); iniFile.setValue("DataBits",pDataBits); iniFile.setValue("Parity",pParity); iniFile.setValue("StopBits",pStopBits); iniFile.setValue("FlowControl",pFlowControl); iniFile.endGroup(); }