Compare commits

..

No commits in common. "7eb81404f095b310f6f8895335eb863199f6322e" and "c2e1ac3ae9880ecfee1a5aab80b748e9ddc073a9" have entirely different histories.

5 changed files with 5 additions and 152 deletions

3
.gitignore vendored
View file

@ -1,3 +0,0 @@
node_modules
*.o
/build

67
main.js
View file

@ -1,67 +0,0 @@
const GPIO = require("onoff").Gpio;
const WS = require("ws");
const HEARTBEAT_INT = 400;
const button = new GPIO(4, "in", "both", {debounceTimeout: 30, activeLow: true});
const ledOnAir = new GPIO(24, "low");
const ledReady = new GPIO(23, "low");
const ws = new WS('ws://10.0.0.4:2000');
let currentID = 0;
let heartBeat;
ws.on('open', () => {
button.watch((e, value) => {
if(e) {
console.error("Error on button watch:", e);
return;
}
if(value) {
ws.send(JSON.stringify({type: 'button-press'}));
} else {
ws.send(JSON.stringify({type: 'button-release'}));
}
ledOnAir.write(value, (e) => e && console.error("Error writing to led: ", e));
});
heartBeat = setInterval(() => {
button.read((e, buttonState) => {
console.log("Button state!", buttonState);
if(e) {
return console.error("Error reading button state!", e);
}
ws.send(JSON.stringify({
type: 'button-update',
body: {buttonState}
}));
});
}, 400);
ledReady.write(1, console.error);
});
ws.on('error', (e) => {
console.error(e);
cleanup();
process.exit();
});
function cleanup() {
ledOnAir.unexport();
ledReady.unexport();
button.unexport();
ws.close();
if(heartBeat) {
cancelInterval(heartBeat);
heartBeat = null;
}
}
process.on('SIGINT', () => {
cleanup();
});

15
main.py
View file

@ -2,21 +2,15 @@
# -*- coding: utf-8 -*- # -*- coding: utf-8 -*-
import RPi.GPIO as GPIO import RPi.GPIO as GPIO
import time import time
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
CONNECT_TO = ("10.0.0.4", 2000)
def buttonEventHandler(value): def buttonEventHandler(value):
print "buton event!"
if value is 0: if value is 0:
GPIO.output(24, True) GPIO.output(24, True)
sock.sendall("button_press")
print('Button Pressed...') print('Button Pressed...')
else: else:
GPIO.output(24, False) GPIO.output(24, False)
sock.sendall("button_release")
print('Button Released...') print('Button Released...')
def main(): def main():
@ -29,15 +23,12 @@ def main():
#GPIO.add_event_detect(23, GPIO.FALLING) #GPIO.add_event_detect(23, GPIO.FALLING)
#GPIO.add_event_callback(23, buttonEventHandler) #GPIO.add_event_callback(23, buttonEventHandler)
try: try:
sock.connect(CONNECT_TO)
while True: while True:
GPIO.wait_for_edge(23, GPIO.BOTH, bouncetime=100) GPIO.wait_for_edge(23, GPIO.BOTH)
buttonEventHandler(GPIO.input(23)) buttonEventHandler(GPIO.input(23))
except: except KeyboardInterrupt as e:
GPIO.cleanup() GPIO.cleanup()
sock.close()
raise raise
if __name__== "__main__": if __name__== "__main__":
main() main()

View file

@ -1,65 +0,0 @@
/*
* miccontrol.c
* Copyright (C) 2018 jshaver <jshaver@je-laptop>
*
* Distributed under terms of the MIT license.
*/
#include "stdio.h"
#include "pulse/pulseaudio.h"
const char *NAME = "miccontrol";
static pa_context *context = NULL;
static pa_mainloop_api *mainloop_api = NULL;
static pa_mainloop *mainloop = NULL;
void querySources(pa_context *c, void *userdata);
void handleSourceList(struct pa_context *c, const pa_source_info *i, int eol, void *userdata);
int main() {
int ret = 1;
mainloop = pa_mainloop_new();
mainloop_api = pa_mainloop_get_api(mainloop);
context = pa_context_new(mainloop_api, NULL);
pa_context_set_state_callback(context, querySources, NULL);
pa_context_connect(context, NULL, 0, NULL);
//pa_operation_unref(getSourceOp);
pa_mainloop_run(mainloop, &ret);
pa_context_unref(context);
pa_mainloop_free(mainloop);
return ret;
}
void querySources(pa_context *c, void *userdata) {
if(pa_context_get_state(context) != PA_CONTEXT_READY) {
return;
}
pa_operation *getSourceOp = NULL;
getSourceOp = pa_context_get_source_info_list(context, handleSourceList, NULL);
if(!getSourceOp) {
} else {
pa_operation_state_t state = pa_operation_get_state(getSourceOp);
switch(state) {
case PA_OPERATION_RUNNING:
break;
case PA_OPERATION_DONE:
break;
case PA_OPERATION_CANCELLED:
}
}
}
void handleSourceList(pa_context *c, const pa_source_info *i, int eol, void *userdata) {
printf("Callback called...\n");
printf("eol is %d\n", eol);
printf(i->description);
printf("\n");
return;
}

View file

@ -14,16 +14,13 @@ def main():
sourceNumber = getSourceSelection(sources) sourceNumber = getSourceSelection(sources)
server = SocketServer.TCPServer(LISTEN_ON, RequestHandler)
try: try:
server = SocketServer.TCPServer(LISTEN_ON, RequestHandler)
server.serve_forever() server.serve_forever()
except KeyboardInterrupt: except KeyboardInterrupt:
server.shutdown() server.shutdown()
server.server_close() server.server_close()
except:
server.shutdown()
server.server_close()
def getSourceSelection(sources): def getSourceSelection(sources):
@ -61,7 +58,7 @@ class RequestHandler(SocketServer.StreamRequestHandler):
message = line.strip() message = line.strip()
if message in messageTypes: if message in messageTypes:
messageTypes[message]() messageTypes[message]()
print("message: ".message) self.wfile.write(message)
print("Closed!") print("Closed!")
self.request.close() self.request.close()