commit ab1103d667e5be029cf6ab17e8949e74cdc935b9
Author: d3fault <d3fault@d3fault.net>
Date:   Sat May 20 17:43:15 2017 -0700

    QuickDirtyAutoBackupHalper3 Commit @20 May 2017 17:43:12 -0700

diff --git a/.lastModifiedTimestamps b/.lastModifiedTimestamps
index 99e6a3e..f14dcf2 100644
--- a/.lastModifiedTimestamps
+++ b/.lastModifiedTimestamps
@@ -44,9 +44,11 @@ Documents/minddump/2016/4/1459968855-LhX846.txt:1459969203
Documents/minddump/2016/4/1459969303-nnS846.txt:1459969688
Documents/minddump/2016/4/1459984685-TJ2423.txt:1459985236
Documents/minddump/2017/:1495179528
Documents/minddump/2017/5/:1495215224Documents/minddump/2017/5/:1495326116
Documents/minddump/2017/5/1495171253-Kauai.0a-MTJ783.txt:1495179507
Documents/minddump/2017/5/1495214940-MTJ843.txt:1495215210
Documents/minddump/2017/5/1495323758-TJ2659.txt:1495323774
Documents/minddump/2017/5/1495326021-TJ3119.txt:1495326098
Documents/minddump/couchbase/:1340207540
Documents/minddump/couchbase/Couchbase.Questions.for.forum.or.something.txt:1340102585
Documents/minddump/couchbase/asflksjdfoiuwerlkjsdfouwrlkjsdfasou.txt:1340015923
@@ -5885,14 +5887,14 @@ Projects/wasdf/assets/ArduinoWriteChangesOnAnalogPinstoSerial/ArduinoWriteChange
Projects/wasdf/design/:1495255816
Projects/wasdf/design/pin.detection.and.finger.mapping.are.same.step.as.calibration.txt:1495315077
Projects/wasdf/design/renaming.from.MusicFingers.txt:1495250184
Projects/wasdf/src/:1495322409Projects/wasdf/src/:1495327369
Projects/wasdf/src/cli/:1495318115
Projects/wasdf/src/cli/main.cpp:1495318115
Projects/wasdf/src/lib/:1495322369
Projects/wasdf/src/lib/wasdf.cpp:1495320799
Projects/wasdf/src/lib/wasdf.h:1495320794
Projects/wasdf/src/lib/wasdfarduino.cpp:1495318591
Projects/wasdf/src/lib/wasdfarduino.h:1495318578Projects/wasdf/src/lib/:1495327362
Projects/wasdf/src/lib/wasdf.cpp:1495323646
Projects/wasdf/src/lib/wasdf.h:1495323646
Projects/wasdf/src/lib/wasdfarduino.cpp:1495327362
Projects/wasdf/src/lib/wasdfarduino.h:1495324301
Projects/wasdf/src/lib/wasdfcalibrator.cpp:1495322369
Projects/wasdf/src/lib/wasdfcalibrator.h:1495322369
Projects/wasdf/src/wasdf-cli.pro:1495319518
@@ -6399,7 +6401,7 @@ scripts/win/my.shutdown.bat:1320779187
scripts/win/old.passwords.kdb:1320056131
scripts/win/zoom.cygwin.commands.sh:1320861500
scripts/win/zoom.sync.with.3x.750gb.drives.bat:1320860540
scripts/apt.initial.packages.debian.txt:1463103375scripts/apt.initial.packages.debian.txt:1495325315
scripts/base64theSha1SumOfAFileProperly.sh:1424394103
scripts/best.rsync.command.txt:1427098358
scripts/cleanAptEtc.sh:1350618598
diff --git a/Documents/minddump/2017/5/1495323758-TJ2659.txt b/Documents/minddump/2017/5/1495323758-TJ2659.txt
new file mode 100644
index 0000000..bae5471
--- /dev/null
+++ b/Documents/minddump/2017/5/1495323758-TJ2659.txt
@@ -0,0 +1 @@
Compile earlier, compile oftener.
diff --git a/Documents/minddump/2017/5/1495326021-TJ3119.txt b/Documents/minddump/2017/5/1495326021-TJ3119.txt
new file mode 100644
index 0000000..30278aa
--- /dev/null
+++ b/Documents/minddump/2017/5/1495326021-TJ3119.txt
@@ -0,0 +1 @@
I got over my fear/hatred of new versions of C++. The CppCoreGuidelines talk by the man himself certainly helped, but what did it was when I realized that LLVM/Clang can parse C++14/etc and spit out ANSI C :-D.
diff --git a/Projects/wasdf/src/lib/wasdf.cpp b/Projects/wasdf/src/lib/wasdf.cpp
index ee40e00..f4f7b84 100644
--- a/Projects/wasdf/src/lib/wasdf.cpp
+++ b/Projects/wasdf/src/lib/wasdf.cpp
@@ -18,23 +18,20 @@ Wasdf::Wasdf(QObject *parent)
}
void Wasdf::startWasdfActualSinceCalibrated()
{
    #ifdef TEMP_DSFLJDS
    m_Arduino.setMode(Normal, m_CalibrationConfig); //TODOreq: this is where the 10 fingers get mapped to the 10 pins
#endifconnect(m_Arduino, &WasdfArduino::fingerMoved, this, &Wasdf::handleFingerMoved);
    m_Arduino->start(m_Calibration);
}
void Wasdf::startWasdf()
{
    //m_Arduino.startCommunicatingOverSerialPort();
    QSettings settings;
    bool isCalibrated = settings.value(SETTINGS_KEY_IS_CALIBRATED, false).toBool();
    if(!isCalibrated)
    {
        #ifdef TEMP_DSFLJDS
        m_Arduino.setMode(Calibrating); //TODOreq: arduino sends _ALL_ (not just 10) analog pin readings over serial
#endifm_Arduino->startInCalibrationMode();
        m_Calibrator = new WasdfCalibrator(this);
        connect(m_Arduino, &WasdfArduino::analogPinReadingChangedDuringCalibration, m_Calibrator.data(), &WasdfCalibrator::handleAnalogPinReadingChanged);
        connect(m_Calibrator.data(), &WasdfCalibrator::calibrationComplete, this, &Wasdf::handleCalibrationComplete);
        QMetaObject::invokeMethod(m_Calibrator.data(), "startCalibrating");m_Calibrator->startCalibrating();
    }
    else
    {
@@ -46,9 +43,17 @@ void Wasdf::startWasdf()
}
void Wasdf::handleCalibrationComplete(const WasdfCalibrationConfiguration &calibrationConfiguration)
{
    //m_WasdfCalibrationConfigurationm_Calibration = calibrationConfiguration;
    //TODoreq: write calibrationConfiguration to settings
    if(!m_Calibrator.isNull())
    {
        disconnect(m_Arduino, &WasdfArduino::analogPinReadingChangedDuringCalibration, m_Calibrator.data(), &WasdfCalibrator::handleAnalogPinReadingChanged);
        m_Calibrator->deleteLater();
    }
    startWasdfActualSinceCalibrated();
}
void Wasdf::handleFingerMoved(Finger finger, int newPosition)
{
    //TODOreq: it's business time
    qDebug("I have stripped down to my business socks");
}
diff --git a/Projects/wasdf/src/lib/wasdf.h b/Projects/wasdf/src/lib/wasdf.h
index f6d047a..2eb1fbc 100644
--- a/Projects/wasdf/src/lib/wasdf.h
+++ b/Projects/wasdf/src/lib/wasdf.h
@@ -65,11 +65,12 @@ private:

    WasdfArduino *m_Arduino;
    QPointer<WasdfCalibrator> m_Calibrator;
    //WasdfCalibrationConfiguration m_WasdfCalibrationConfiguration;WasdfCalibrationConfiguration m_Calibration;
public slots:
    void startWasdf();
private slots:
    void handleCalibrationComplete(const WasdfCalibrationConfiguration &calibrationConfiguration);
    void handleFingerMoved(Finger finger, int newPosition);
};

#endif // WASDF_H
diff --git a/Projects/wasdf/src/lib/wasdfarduino.cpp b/Projects/wasdf/src/lib/wasdfarduino.cpp
index 0ff0dcb..5b8f3fd 100644
--- a/Projects/wasdf/src/lib/wasdfarduino.cpp
+++ b/Projects/wasdf/src/lib/wasdfarduino.cpp
@@ -1,7 +1,37 @@
#include "wasdfarduino.h"

#include <QtSerialPort/QSerialPort>

#include "wasdf.h"

//so now for the protocol. at least [so far (and I intend to keep it that way!)] the protocol is relatively simple. I need to also keep in mind that when the Arduino is in mouse/keyboard mode that it doesn't use the Serial.write shit (it could, but then I'd need a priveledged keyboard-press/mouse-movement-n-click daemon-thing on the PC side, and those daemon-things are OS specific!)

//Modes
//1) Calibrating
//2) Report finger movements verbosely over serial
//3) Keyboard/Mouse

//are (2) and (3) mutually exclusive? idfk tbh so I'll try to make it so they can both be used simultaneously (I seem to recall a fantasy where I'm coding and making music at the same time? in fact that is part of my 'perfect moment' (goal) in life so yea they are not/shouldn't be mutually exclusive (unless I'm just toggling modes ultra fast in that fantasy. since the fantasy hasn't happened yet I'm free to define it however I please)

//hmm json, binary, csv(s/comma/colon/newline/etc), hmm. time to research what kind of serialization arduino comes with, since it's libraries are way more limited than the PC sides of things
//I want to use json but I don't see any built-in libs and I'm sure as shit not about to write a parser. there are very likely lightweight self-contained pure c/c++ libraries I could just #include, but I'm pretty sure this arduino micro has.... a micro amount of space available. mb just 8kb compiled? *checks*. oh nice 28kb, that should be enough for anyone (ziiiiiing)
//meh after researching a decent sounding MIT-licensed ArduionJson library... and thinking about it more in the process... I don't think my protocol will be so complex to warrant json. I'll keep json in mind in case things start to get complex, but meh just a plaintext+colon+newlines protocol (like in MusicFingers, though obviously more robust since calibration mode must exist) sounds sufficient. I'll think about it more while I eat dinner (clam chowda)
//another way I could do things is to have 1 sketch for calibration and 1 sketch for normal operation, that would both give me more room to code the sketches and it would get dead (calibration) code paths out of normal operation
WasdfArduino::WasdfArduino(QObject *parent)
    : QSerialPort(parent)QObject(parent)
    , m_SerialPort(new QSerialPort(this))
{
    connect(m_SerialPort, &QSerialPort::readyRead, this, &WasdfArduino::handleSerialPortReadyRead);
}
void WasdfArduino::startInCalibrationMode()
{
    //TODOreq: arduino sends _ALL_ (not just 10) analog pin readings over serial
}
void WasdfArduino::start(const WasdfCalibrationConfiguration &calibrationConfig)
{
    //TODOreq: this is where the 10 fingers get mapped to the 10 pins
}
void WasdfArduino::handleSerialPortReadyRead()
{
    //TODOreq:
}
diff --git a/Projects/wasdf/src/lib/wasdfarduino.h b/Projects/wasdf/src/lib/wasdfarduino.h
index aec12d3..a46465a 100644
--- a/Projects/wasdf/src/lib/wasdfarduino.h
+++ b/Projects/wasdf/src/lib/wasdfarduino.h
@@ -1,17 +1,25 @@
#ifndef WASDFARDUINO_H
#define WASDFARDUINO_H

#include <QtSerialPort/QSerialPort>"wasdf.h"

enumclass Finger;QSerialPort;

class WasdfArduino : private QSerialPortpublic QObject
{
    Q_OBJECT
public:
    explicit WasdfArduino(QObject *parent = 0);
private:
    QSerialPort *m_SerialPort;
signals:
    void analogPinReadingChangedDuringCalibration(int analogPinId, int newPosition);
    void fingerMoved(Finger finger, int newPosition);
public slots:
    void startInCalibrationMode();
    void start(const WasdfCalibrationConfiguration &calibrationConfig);
private slots:
    void handleSerialPortReadyRead();
};

#endif // WASDFARDUINO_H
diff --git a/scripts/apt.initial.packages.debian.txt b/scripts/apt.initial.packages.debian.txt
index a9ab875..566869d 100644
--- a/scripts/apt.initial.packages.debian.txt
+++ b/scripts/apt.initial.packages.debian.txt
@@ -1,5 +1,5 @@
stable main noX:
build-essential cmake pkg-config checkinstall automake autoconf libtool valgrind smartmontools ntfs-3g dosfstools testdisk git subversion libcurl4-openssl-dev libcurl4-doc curl p7zip-full zip unzip tree strace netcat yasm libsox-dev sox opus-tools libopus-dev zlib1g-dev libtheora-dev libevent-dev libssl-d* libgstreamer-plugins-base0.10-dev libxslt1-dev libcap2-bin libasound2-dev alsa-utils libv4l-dev rtorrent gdb libclang-dev llvm-dev clang lldb libboost-all-dev libboost-doc tmux libtcplay-dev tcplay needrestart libcrypto++-dev libcrypto++-doc fbterm fbi libstk0-dev stk-doc sshfs libgit2-dev libtorrent-rasterbar-d* info apt-rdepends lxc libvirt-bin debootstrap ebtables dnsmasq btrfs-tools apt-file bc libfuse-dev aufs-tools arduino-mk

stable main X:
smart-notifier gsmartcontrol arduino keepassx xul-ext-noscript xul-ext-tabmixplus xul-ext-adblock-plus xul-ext-flashgot mplayer gimp dia inkscape gv xscreensaver xscreensaver-data-extra openjdk-7-jdk mesa-common-dev x11vnc keynav xvkbd xauth pavucontrol