summaryrefslogtreecommitdiff
path: root/software
diff options
context:
space:
mode:
Diffstat (limited to 'software')
-rw-r--r--software/rhmixxx/Makefile15
-rw-r--r--software/rhmixxx/keypad.c37
-rw-r--r--software/rhmixxx/keypad.h30
-rw-r--r--software/rhmixxx/rhmixxx.c78
4 files changed, 85 insertions, 75 deletions
diff --git a/software/rhmixxx/Makefile b/software/rhmixxx/Makefile
index cadfe65..231005b 100644
--- a/software/rhmixxx/Makefile
+++ b/software/rhmixxx/Makefile
@@ -1,28 +1,27 @@
##
-## spreadspace avr utils
+## rhmidi
##
+## Copyright (C) 2014 Christian Pointner <equinox@helsinki.at>
##
-## Copyright (C) 2013 Christian Pointner <equinox@spreadspace.org>
+## This file is part of rhmidi.
##
-## This file is part of spreadspace avr utils.
-##
-## spreadspace avr utils is free software: you can redistribute it and/or modify
+## rhmidi 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
## any later version.
##
-## spreadspace avr utils is distributed in the hope that it will be useful,
+## rhmidi 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 spreadspace avr utils. If not, see <http://www.gnu.org/licenses/>.
+## along with rhmidi. If not, see <http://www.gnu.org/licenses/>.
##
NAME := rhmixxx
BOARD_TYPE := rhmixxx
-OBJ := $(NAME).o
+OBJ := $(NAME).o keypad.o
LIBS := util led lufa-descriptor-midi
EXTERNAL_LIBS := lufa
diff --git a/software/rhmixxx/keypad.c b/software/rhmixxx/keypad.c
new file mode 100644
index 0000000..96214e8
--- /dev/null
+++ b/software/rhmixxx/keypad.c
@@ -0,0 +1,37 @@
+/*
+ * rhmidi
+ *
+ * Copyright (C) 2014 Christian Pointner <equinox@helsinki.at>
+ *
+ * This file is part of rhmidi.
+ *
+ * rhmidi 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
+ * any later version.
+ *
+ * rhmidi 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 rhmidi. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#include "keypad.h"
+
+void keypad_init(void)
+{
+
+}
+
+void keypad_start_led_test(int cnt)
+{
+
+}
+
+void keypad_task(void)
+{
+
+}
diff --git a/software/rhmixxx/keypad.h b/software/rhmixxx/keypad.h
new file mode 100644
index 0000000..6f28b24
--- /dev/null
+++ b/software/rhmixxx/keypad.h
@@ -0,0 +1,30 @@
+/*
+ * rhmidi
+ *
+ * Copyright (C) 2014 Christian Pointner <equinox@helsinki.at>
+ *
+ * This file is part of rhmidi.
+ *
+ * rhmidi 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
+ * any later version.
+ *
+ * rhmidi 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 rhmidi. If not, see <http://www.gnu.org/licenses/>.
+ */
+
+#ifndef RHMIXXX_keypad_h_INCLUDED
+#define RHMIXXX_keypad_h_INCLUDED
+
+void keypad_init(void);
+void keypad_start_led_test(int cnt);
+
+void keypad_task(void);
+
+#endif
diff --git a/software/rhmixxx/rhmixxx.c b/software/rhmixxx/rhmixxx.c
index 91d65ec..20b523c 100644
--- a/software/rhmixxx/rhmixxx.c
+++ b/software/rhmixxx/rhmixxx.c
@@ -1,26 +1,24 @@
/*
- * spreadspace avr utils
+ * rhmidi
*
+ * Copyright (C) 2014 Christian Pointner <equinox@helsinki.at>
*
- * Copyright (C) 2013 Christian Pointner <equinox@spreadspace.org>
+ * This file is part of rhmidi.
*
- * This file is part of spreadspace avr utils.
- *
- * spreadspace avr utils is free software: you can redistribute it and/or modify
+ * rhmidi 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
* any later version.
*
- * spreadspace avr utils is distributed in the hope that it will be useful,
+ * rhmidi 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 spreadspace avr utils. If not, see <http://www.gnu.org/licenses/>.
+ * along with rhmidi. If not, see <http://www.gnu.org/licenses/>.
*/
-
#include <avr/io.h>
#include <avr/wdt.h>
#include <avr/interrupt.h>
@@ -76,22 +74,7 @@ void EVENT_USB_Device_ControlRequest(void)
/* end LUFA MIDI Class driver specific definitions*/
#include "util.h"
-#include "led.h"
-
-static FILE serial_stream;
-
-#define KEY_PIN PINA
-#define KEY_PORT PORTA
-#define KEY_DDR DDRA
-#define KEY_BIT 0
-
-#define KEY_LP_MAX 255
-
-void key_init(void)
-{
- KEY_DDR = 0x10;
- KEY_PORT = 0xEF;
-}
+#include "keypad.h"
int main(void)
{
@@ -99,58 +82,19 @@ int main(void)
wdt_disable();
cpu_init();
- led_init();
- key_init();
-
- Serial_Init(38400, 0);
- Serial_CreateStream(&serial_stream);
- stdin = stdout = stderr = &serial_stream;
+ keypad_init();
USB_Init();
sei();
- MIDI_EventPacket_t MIDIEventOn = (MIDI_EventPacket_t)
- {
- .CableNumber = 0,
- .Command = (MIDI_COMMAND_NOTE_ON >> 4),
- .Data1 = MIDI_COMMAND_NOTE_ON | 0,
- .Data2 = 0,
- .Data3 = 0x7F,
- };
- MIDI_EventPacket_t MIDIEventOff = (MIDI_EventPacket_t)
- {
- .CableNumber = 0,
- .Command = (MIDI_COMMAND_NOTE_OFF >> 4),
- .Data1 = MIDI_COMMAND_NOTE_OFF | 0,
- .Data2 = 0,
- .Data3 = 0,
- };
-
- static uint8_t last_state = (1<<KEY_BIT);
- static uint8_t lp_cnt = 0;
for(;;) {
-
MIDI_EventPacket_t ReceivedMIDIEvent;
while(MIDI_Device_ReceiveEventPacket(&Keyboard_MIDI_Interface, &ReceivedMIDIEvent)) {
- led_on();
- printf("%02X %02X %02X\r\n", ReceivedMIDIEvent.Data1, ReceivedMIDIEvent.Data2, ReceivedMIDIEvent.Data3);
- led_off();
+ // TODO: process incoming MIDI Events
}
+ keypad_task();
- uint8_t state = KEY_PIN & (1<<KEY_BIT);
- if(state != last_state)
- lp_cnt++;
- else
- lp_cnt += lp_cnt ? -1 : 0;
-
- if(lp_cnt >= KEY_LP_MAX) {
- MIDI_EventPacket_t* MIDIEvent = state ? &MIDIEventOff : &MIDIEventOn;
- MIDI_Device_SendEventPacket(&Keyboard_MIDI_Interface, MIDIEvent);
- MIDI_Device_Flush(&Keyboard_MIDI_Interface);
-
- last_state = state;
- lp_cnt = 0;
- }
+ // TODO: evaluate keypad and send out MIDI Events
MIDI_Device_USBTask(&Keyboard_MIDI_Interface);
USB_USBTask();