summaryrefslogtreecommitdiff
path: root/software/rhmidi/rhmidi.c
diff options
context:
space:
mode:
authorChristian Pointner <equinox@helsinki.at>2014-03-18 16:57:43 (GMT)
committerChristian Pointner <equinox@helsinki.at>2014-03-18 16:57:43 (GMT)
commita9cf96f1e58ed6c1b2f7f6b34bf6887fa257e48b (patch)
tree44ebbcb554192fcbd973f184ab3fc12c68b708f5 /software/rhmidi/rhmidi.c
parent789db5bb423a43e423db8b6e343a549922ae4074 (diff)
renamed rhmidi to rhmixxx
Diffstat (limited to 'software/rhmidi/rhmidi.c')
-rw-r--r--software/rhmidi/rhmidi.c158
1 files changed, 0 insertions, 158 deletions
diff --git a/software/rhmidi/rhmidi.c b/software/rhmidi/rhmidi.c
deleted file mode 100644
index c305462..0000000
--- a/software/rhmidi/rhmidi.c
+++ /dev/null
@@ -1,158 +0,0 @@
-/*
- * spreadspace avr utils
- *
- *
- * Copyright (C) 2013 Christian Pointner <equinox@spreadspace.org>
- *
- * This file is part of spreadspace avr utils.
- *
- * spreadspace avr utils 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,
- * 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/>.
- */
-
-
-#include <avr/io.h>
-#include <avr/wdt.h>
-#include <avr/interrupt.h>
-#include <avr/power.h>
-#include <stdio.h>
-
-/*
- LUFA Library
- Copyright (C) Dean Camera, 2012.
-
- dean [at] fourwalledcubicle [dot] com
- www.lufa-lib.org
-*/
-#include <LUFA/Version.h>
-#include <LUFA/Drivers/USB/USB.h>
-#include "lufa-descriptor-midi.h"
-#include "LUFA/Drivers/Peripheral/Serial.h"
-
-/** LUFA MIDI Class driver interface configuration and state information. This structure is
- * passed to all MIDI Class driver functions, so that multiple instances of the same class
- * within a device can be differentiated from one another.
- */
-USB_ClassInfo_MIDI_Device_t Keyboard_MIDI_Interface =
- {
- .Config =
- {
- .StreamingInterfaceNumber = 1,
-
- .DataINEndpointNumber = MIDI_STREAM_IN_EPNUM,
- .DataINEndpointSize = MIDI_STREAM_EPSIZE,
- .DataINEndpointDoubleBank = false,
-
- .DataOUTEndpointNumber = MIDI_STREAM_OUT_EPNUM,
- .DataOUTEndpointSize = MIDI_STREAM_EPSIZE,
- .DataOUTEndpointDoubleBank = false,
- },
- };
-
-/** Event handler for the library USB Configuration Changed event. */
-void EVENT_USB_Device_ConfigurationChanged(void)
-{
- bool ConfigSuccess = true;
-
- ConfigSuccess &= MIDI_Device_ConfigureEndpoints(&Keyboard_MIDI_Interface);
-}
-
-/** Event handler for the library USB Control Request reception event. */
-void EVENT_USB_Device_ControlRequest(void)
-{
- MIDI_Device_ProcessControlRequest(&Keyboard_MIDI_Interface);
-}
-
-/* end LUFA MIDI Class driver specific definitions*/
-
-#include "util.h"
-#include "led.h"
-
-static FILE serial_stream;
-
-#define KEY_PIN PINF
-#define KEY_PORT PORTF
-#define KEY_DDR DDRF
-#define KEY_BIT 0
-
-#define KEY_LP_MAX 255
-
-void key_init(void)
-{
- KEY_DDR = KEY_DDR & ~(1<<KEY_BIT);
- KEY_PORT |= (1<<KEY_BIT);
-}
-
-int main(void)
-{
- MCUSR &= ~(1 << WDRF);
- wdt_disable();
-
- cpu_init();
- led_init();
- key_init();
-
- Serial_Init(38400, 0);
- Serial_CreateStream(&serial_stream);
- stdin = stdout = stderr = &serial_stream;
-
- 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();
- }
-
- 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;
- }
-
- MIDI_Device_USBTask(&Keyboard_MIDI_Interface);
- USB_USBTask();
- }
-}