diff --git a/src/pifmrds/control_pipe.c b/src/pifmrds/control_pipe.c index 1117bdd..5f24fe0 100644 --- a/src/pifmrds/control_pipe.c +++ b/src/pifmrds/control_pipe.c @@ -157,6 +157,12 @@ ResultAndArg poll_control_pipe() { if(!togg) printf("ON\n"); else printf("OFF\n"); resarg.res = CONTROL_PIPE_STEREO_SET; resarg.arg = (char)togg; + } else if(fifo[0] == 'C' && fifo[1] == 'O' && fifo[2] == 'D') { + printf("Set Compressor Decay to "); + printf(arg); + printf("\n"); + resarg.res = CONTROL_PIPE_COMPRESSORDECAY_SET; + resarg.arg = arg; } } return resarg; diff --git a/src/pifmrds/control_pipe.h b/src/pifmrds/control_pipe.h index 8838ce5..3820ee4 100644 --- a/src/pifmrds/control_pipe.h +++ b/src/pifmrds/control_pipe.h @@ -18,6 +18,7 @@ #define CONTROL_PIPE_DEVIATION_SET 11 #define CONTROL_PIPE_STEREO_SET 12 #define CONTROL_PIPE_GAIN_SET 13 +#define CONTROL_PIPE_COMPRESSORDECAY_SET 13 typedef struct { int res; diff --git a/src/pifmrds/pi_fm_rds.cpp b/src/pifmrds/pi_fm_rds.cpp index 344f6f5..3f6da76 100644 --- a/src/pifmrds/pi_fm_rds.cpp +++ b/src/pifmrds/pi_fm_rds.cpp @@ -201,6 +201,8 @@ int tx(uint32_t carrier_freq, char *audio_file, uint16_t pi, char *ps, char *rt, disablestereo = (int)pollResult.arg; } else if(pollResult.res == CONTROL_PIPE_GAIN_SET) { gaim = std::stof(pollResult.arg); + } else if(pollResult.res == CONTROL_PIPE_COMPRESSORDECAY_SET) { + compressor_decay = std::stof(pollResult.arg); } }