Important changes to repositories hosted on mbed.com
Mbed hosted mercurial repositories are deprecated and are due to be permanently deleted in July 2026.
To keep a copy of this software download the repository Zip archive or clone locally using Mercurial.
It is also possible to export all your personal repositories from the account settings page.
Dependencies: SPK-TVOne DMX DmxArtNet NetServicesMin OSC PinDetect mRotaryEncoder iniparser mbed spk_oled_ssd1305 filter
Diff: main.cpp
- Revision:
- 8:d46cc49f0f37
- Parent:
- 7:e6717468c18d
- Child:
- 9:f83eadd8917a
--- a/main.cpp Fri Jul 20 17:21:48 2012 +0000
+++ b/main.cpp Thu Aug 02 13:30:39 2012 +0000
@@ -1,23 +1,46 @@
-// *SPARK D-FUSER
-// A project by *spark audio-visual
-//
-// 'DJ' controller styke RS232 Control for TV-One products
-// Good for 1T-C2-750, others will need some extra work
-//
-// Copyright *spark audio-visual 2009-2011
-//
-// v10 - Port to mBed, keying redux - Apr'11
-// v11 - Sign callbacks, code clean-up - Apr'11
-// v12 - TVOne header split into two: defines and mbed class. v002 header updates pulled down. Removed sign callbacks, rewrite of debug and signing. - Apr'11
-// v13 - Menu system for Resolution + Keying implemented, it writing to debug, it sending TVOne commands - Apr'11
-// v14 - Fixes for new PCB - Oct'11
-// v15 - TBZ PCB, OLED - Mar'12
-// v16 - Comms menu, OSC, ArtNet - April'12
-// v17 - RJ45 - May'12
-// v18 - DMX - July'12
-// vxx - TODO: EDID upload from USB mass storage
-// vxx - TODO: EDID creation from resolution
+/* *SPARK D-FUSER
+ * A project by Toby Harris
+ *
+ * 'DJ' controller styke RS232 Control for TV-One products
+ * Good for 1T-C2-750, others will need some extra work
+ *
+ * www.sparkav.co.uk/dvimixer
+ */
+/* Copyright (c) 2011 Toby Harris, MIT License
+ *
+ * Permission is hereby granted, free of charge, to any person obtaining a copy of this software
+ * and associated documentation files (the "Software"), to deal in the Software without restriction,
+ * including without limitation the rights to use, copy, modify, merge, publish, distribute,
+ * sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is
+ * 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 Software.
+ *
+ * THE SOFTWARE IS 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 SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
+ */
+
+/* ROADMAP / HISTORY
+ * v10 - Port to mBed, keying redux - Apr'11
+ * v11 - Sign callbacks, code clean-up - Apr'11
+ * v12 - TVOne header split into two: defines and mbed class. v002 header updates pulled down. Removed sign callbacks, rewrite of debug and signing. - Apr'11
+ * v13 - Menu system for Resolution + Keying implemented, it writing to debug, it sending TVOne commands - Apr'11
+ * v14 - Fixes for new PCB - Oct'11
+ * v15 - TBZ PCB, OLED - Mar'12
+ * v16 - Comms menu, OSC, ArtNet - April'12
+ * v17 - RJ45 - May'12
+ * v18 - DMX - July'12
+ * vxx - TODO: Keying values load from USB mass storage
+ * vxx - TODO: Defaults load/save from USB mass storage
+ * vxx - TODO: EDID upload from USB mass storage
+ * vxx - TODO: EDID creation from resolution
+ */
+
#include "mbed.h"
#include "spk_tvone_mbed.h"
@@ -190,16 +213,16 @@
}
-void processArtNet(float &xFade, float &fadeUp) {
-
+void processArtNet(float &xFade, float &fadeUp)
+{
screen.clearBufferRow(kCommsStatusLine);
screen.textToBuffer("ArtNet activity", kCommsStatusLine);
screen.sendBuffer();
if (debug) debug->printf("ArtNet activity");
}
-void processDMXIn(float &xFade, float &fadeUp) {
-
+void processDMXIn(float &xFade, float &fadeUp)
+{
std::stringstream statusMessage;
int xFadeDMX = dmx->get(kDMXInChannelXFade);
@@ -215,8 +238,8 @@
if (debug) debug->printf(statusMessage.str().c_str());
}
-void processDMXOut(float &xFade, float &fadeUp) {
-
+void processDMXOut(float &xFade, float &fadeUp)
+{
std::stringstream statusMessage;
int xFadeDMX = xFade*255;
@@ -232,7 +255,8 @@
if (debug) debug->printf(statusMessage.str().c_str());
}
-inline float fadeCalc (const float AIN, const float tolerance) {
+inline float fadeCalc (const float AIN, const float tolerance)
+{
float pos ;
if (AIN < tolerance) pos = 0;
else if (AIN > 1.0 - tolerance) pos = 1;
@@ -241,7 +265,8 @@
return pos;
}
-bool setKeyParamsTo(int index) {
+bool setKeyParamsTo(int index)
+{
// Only spend the time uploading six parameters if we need to
// Might want to bounds check here
@@ -352,8 +377,8 @@
//// MIXER RUN
- while (1) {
-
+ while (1)
+ {
//// Task background things
if (ethernet && rj45Mode == rj45Ethernet)
{
@@ -701,7 +726,8 @@
}
// Send to TVOne if percents have changed
- if (newFadeAPercent != fadeAPercent) {
+ if (newFadeAPercent != fadeAPercent)
+ {
fadeAPercent = newFadeAPercent;
updateFade = true;
@@ -709,7 +735,8 @@
tvOne.command(0, kTV1WindowIDA, kTV1FunctionAdjustWindowsMaxFadeLevel, fadeAPercent);
}
- if (newFadeBPercent != fadeBPercent) {
+ if (newFadeBPercent != fadeBPercent)
+ {
fadeBPercent = newFadeBPercent;
updateFade = true;
@@ -717,7 +744,8 @@
tvOne.command(0, kTV1WindowIDB, kTV1FunctionAdjustWindowsMaxFadeLevel, fadeBPercent);
}
- if (updateFade && debug) {
+ if (updateFade && debug)
+ {
debug->printf("\r\n");
//debug->printf("xFade = %3f fadeUp = %3f \r\n", xFadeAIN.read(), fadeUpAIN.read());
debug->printf("xFade = %3f fadeUp = %3f \r\n", xFadeAINCached, fadeUpAINCached);