diff options
Diffstat (limited to 'audio/lsmi/rtprio.diff')
-rw-r--r-- | audio/lsmi/rtprio.diff | 153 |
1 files changed, 153 insertions, 0 deletions
diff --git a/audio/lsmi/rtprio.diff b/audio/lsmi/rtprio.diff new file mode 100644 index 0000000000..4322314f9a --- /dev/null +++ b/audio/lsmi/rtprio.diff @@ -0,0 +1,153 @@ +diff -Naur lsmi/lsmi-joystick.c lsmi.patched//lsmi-joystick.c +--- lsmi/lsmi-joystick.c 2012-05-14 20:08:19.000000000 -0400 ++++ lsmi.patched//lsmi-joystick.c 2012-05-14 20:15:16.000000000 -0400 +@@ -46,6 +46,7 @@ + #include <sys/time.h> + #include <signal.h> + #include <getopt.h> ++#include <sched.h> + + #include "seq.h" + #include "sig.h" +@@ -99,6 +100,7 @@ + "Options:\n\n" + " -h | --help Show this message\n" + " -d | --device specialfile Event device to use (instead of js0)\n" ++ " -R | --realtime rtprio Use realtime priority 'rtprio' (requires privs)\n" + " -v | --verbose Be verbose (show note events)\n" + " -p | --port client:port Connect to ALSA Sequencer client on startup\n" + " -n | --no-hold Send controller data even when no joystick button is held\n" ); +@@ -121,6 +123,7 @@ + { "verbose", no_argument, NULL, 'v' }, + { "device", required_argument, NULL, 'd' }, + { "no-hold", no_argument, NULL, 'n' }, ++ { "realtime", required_argument, NULL, 'R' }, + { "daemon", no_argument, NULL, 'z' }, + { NULL, 0, NULL, 0 } + }; +@@ -164,6 +167,23 @@ + case 'z': + daemonize = 1; + break; ++ case 'R': ++ { ++ struct sched_param sp; ++ ++ sp.sched_priority = atoi( optarg ); ++ ++ if ( sched_setscheduler( 0, SCHED_FIFO, &sp ) < 0 ) ++ { ++ perror( "sched_setscheduler()" ); ++ fprintf( stderr, "Failed to get realtime priority!\n" ); ++ exit( 1 ); ++ } ++ ++ fprintf( stderr, "Using realtime priority %i.\n", ++ sp.sched_priority ); ++ } ++ break; + } + + } +diff -Naur lsmi/lsmi-keyhack.c lsmi.patched//lsmi-keyhack.c +--- lsmi/lsmi-keyhack.c 2012-05-14 20:08:19.000000000 -0400 ++++ lsmi.patched//lsmi-keyhack.c 2012-05-14 20:14:07.000000000 -0400 +@@ -111,6 +111,7 @@ + #include <getopt.h> + + #include <linux/input.h> ++#include <sched.h> + #include <stdint.h> + + #include "seq.h" +@@ -261,6 +262,7 @@ + " -h | --help Show this message\n" + " -d | --device specialfile Event device to use (instead of event0)\n" + " -v | --verbose Be verbose (show note events)\n" ++ " -R | --realtime rtprio Use realtime priority 'rtprio' (requires privs)\n" + " -c | --channel n Initial MIDI channel\n" + " -p | --port client:port Connect to ALSA Sequencer client on startup\n" + " -k | --keydata file Name file to read/write key mappings (instead of ~/.keydb)\n" +@@ -281,6 +283,7 @@ + { "channel", required_argument, NULL, 'c' }, + { "device", required_argument, NULL, 'd' }, + { "keydata", required_argument, NULL, 'k' }, ++ { "realtime", required_argument, NULL, 'R' }, + { "verbose", no_argument, NULL, 'v' }, + { NULL, 0, NULL, 0 } + }; +@@ -320,6 +323,23 @@ + case 'v': + verbose = 1; + break; ++ case 'R': ++ { ++ struct sched_param sp; ++ ++ sp.sched_priority = atoi( optarg ); ++ ++ if ( sched_setscheduler( 0, SCHED_FIFO, &sp ) < 0 ) ++ { ++ perror( "sched_setscheduler()" ); ++ fprintf( stderr, "Failed to get realtime priority!\n" ); ++ exit( 1 ); ++ } ++ ++ fprintf( stderr, "Using realtime priority %i.\n", ++ sp.sched_priority ); ++ } ++ break; + } + + } +diff -Naur lsmi/lsmi-mouse.c lsmi.patched//lsmi-mouse.c +--- lsmi/lsmi-mouse.c 2012-05-14 20:08:19.000000000 -0400 ++++ lsmi.patched//lsmi-mouse.c 2012-05-14 20:11:08.000000000 -0400 +@@ -55,6 +55,7 @@ + #include <sys/ioctl.h> + #include <sys/time.h> + ++#include <sched.h> + #include <stdint.h> + + #include <getopt.h> +@@ -144,6 +145,7 @@ + " -h | --help Show this message\n" + " -d | --device specialfile Event device to use (instead of event0)\n" + " -v | --verbose Be verbose (show note events)\n" ++ " -R | --realtime rtprio Use realtime priority 'rtprio' (requires privs)\n" + " -p | --port client:port Connect to ALSA Sequencer client on startup\n" + + " -1 | --button-one 'c'|'n':n:n Button mapping\n" +@@ -169,6 +171,7 @@ + { "button-one", required_argument, NULL, '1' }, + { "button-two", required_argument, NULL, '2' }, + { "button-three", required_argument, NULL, '3' }, ++ { "realtime", required_argument, NULL, 'R' }, + { "daemon", no_argument, NULL, 'z' }, + { NULL, 0, NULL, 0 } + }; +@@ -202,6 +205,23 @@ + case '3': + parse_map( 2, optarg ); + break; ++ case 'R': ++ { ++ struct sched_param sp; ++ ++ sp.sched_priority = atoi( optarg ); ++ ++ if ( sched_setscheduler( 0, SCHED_FIFO, &sp ) < 0 ) ++ { ++ perror( "sched_setscheduler()" ); ++ fprintf( stderr, "Failed to get realtime priority!\n" ); ++ exit( 1 ); ++ } ++ ++ fprintf( stderr, "Using realtime priority %i.\n", ++ sp.sched_priority ); ++ } ++ break; + case 'z': + daemonize = 1; + break; |