diff options
author | Ion-Mihai Tetcu <itetcu@FreeBSD.org> | 2006-09-12 08:14:22 +0000 |
---|---|---|
committer | Ion-Mihai Tetcu <itetcu@FreeBSD.org> | 2006-09-12 08:14:22 +0000 |
commit | 7bb7a11c662caa9cff895188dce7959ab1d2f36c (patch) | |
tree | 8df1ee0e56b7c791201219b115221dc3ea057c4c /comms | |
parent | 394760cd9e80de9bf7974d4e7a8d312650ac9591 (diff) | |
download | ports-7bb7a11c662caa9cff895188dce7959ab1d2f36c.tar.gz ports-7bb7a11c662caa9cff895188dce7959ab1d2f36c.zip |
Notes
Diffstat (limited to 'comms')
-rw-r--r-- | comms/linrad/Makefile | 5 | ||||
-rw-r--r-- | comms/linrad/files/patch-lsetad.c | 1237 |
2 files changed, 1164 insertions, 78 deletions
diff --git a/comms/linrad/Makefile b/comms/linrad/Makefile index 3060ef6c8551..060681cd1128 100644 --- a/comms/linrad/Makefile +++ b/comms/linrad/Makefile @@ -7,10 +7,11 @@ PORTNAME= linrad PORTVERSION= 2.17 +PORTREVISION= 1 CATEGORIES= comms MASTER_SITES= http://www.nitehawk.com/sm5bsz/linuxdsp/archive/\ http://g7rau.demon.co.uk/sm5bsz/linuxdsp/archive/\ - http://nitehawk.com/sm5bsz/linuxdsp/archive/ + http://www.sm5bsz.com/linuxdsp/archive/ DISTNAME= lir02-17 EXTRACT_SUFX= .tbz DIST_SUBDIR= ${PORTNAME} @@ -31,7 +32,7 @@ ONLY_FOR_ARCHS= i386 .include <bsd.port.pre.mk> .if ${OSVERSION} < 500000 -BROKEN= Does not compile on FreeBSD 4.x +IGNORE= does not compile on FreeBSD 4.x .endif post-patch: diff --git a/comms/linrad/files/patch-lsetad.c b/comms/linrad/files/patch-lsetad.c index 93fc61113b4b..18e57bc6ac7d 100644 --- a/comms/linrad/files/patch-lsetad.c +++ b/comms/linrad/files/patch-lsetad.c @@ -1,47 +1,70 @@ --- lsetad.c.orig Tue Aug 15 15:27:44 2006 -+++ lsetad.c Thu Sep 7 17:52:30 2006 -@@ -87,10 +87,9 @@ ++++ lsetad.c Mon Sep 11 15:46:13 2006 +@@ -39,7 +39,7 @@ + #define ABOVE_MAX_SPEED 768000 + #if SND_DEV == 1 + #define DEVNAME_BASE "/dev/dsp" +-#else ++#else + #define DEVNAME_BASE "/dev/sound/dsp" + #endif + +@@ -83,15 +83,12 @@ + sdr=-1; + } + +- void display_sdi(void) { FILE *sdifile; -int ch_cnt; +-char ch_read[80]; +char *p; - char ch_read[80]; char work_line [80]; -int work_line_pos ; - int sdi_screen_line_counter; +-int sdi_screen_line_counter; ++int sdi_screen_line_counter; char sdi_intro_msg [26]= "SOUND DRIVER INFORMATION:" ; char sdi_error_msg [46]= "No OSS or ALSA sound-driver information found"; -@@ -111,55 +110,42 @@ + char sndstat_filename [25]; +@@ -111,59 +108,46 @@ // if OSS not active, try ALSA if (sdifile==NULL) { - strcpy (sndstat_filename,"/proc/asound/oss/sndstat"); - sdifile=fopen (sndstat_filename,"r"); -+ strcpy (sndstat_filename,"/proc/asound/oss/sndstat"); -+ sdifile=fopen (sndstat_filename,"r"); - } +- } -if (sdifile==NULL) -+if (sdifile!=NULL) - { +- { - settextcolor(LIGHT_RED); - lir_text ( 80, sdi_screen_line_counter++, sdi_error_msg); - fprintf (sndlog,"\n%s",sdi_error_msg ); - goto display_sdi_x; -- } ++ strcpy (sndstat_filename,"/proc/asound/oss/sndstat"); ++ sdifile=fopen (sndstat_filename,"r"); + } -fprintf (sndlog,"\n(output of 'cat %s' command): \n\n",sndstat_filename ); -memset (work_line, '\0',sizeof(work_line)); -work_line_pos =0; -settextcolor(LIGHT_GREEN); -ch_cnt=fread(ch_read,1,1,sdifile); -while (ch_cnt== 1) -- { ++if (sdifile!=NULL) + { -// check if work_line is ready for output processing - if ((ch_read[0] =='\n') || (work_line_pos == 78)) -- { --// display work_line only if it is not blank --// and there are enough lines available on the screen --// and there are at least 40 characters available on a line ++ fprintf (sndlog,"\n(output of 'cat %s' command): \n\n",sndstat_filename ); ++ settextcolor(LIGHT_GREEN); ++ while(fgets(work_line, sizeof(work_line)-1, sdifile) != NULL) + { ++// check if work_line is ready for output processing ++ p=strchr(work_line, '\n'); ++ if(p != NULL)p[0]=0; ++ if (*work_line != '\0') ++ { + // display work_line only if it is not blank + // and there are enough lines available on the screen + // and there are at least 40 characters available on a line - if ((work_line_pos >1) && - ( sdi_screen_line_counter < screen_last_line) && - ((screen_last_col - 40)>= 80)) @@ -50,7 +73,13 @@ - sdi_screen_line_counter++; - lir_text (80, sdi_screen_line_counter, work_line); - } --// write to soundboard_init.log ++ if (sdi_screen_line_counter < screen_last_line && ++ (screen_last_col - 40)>= 80) ++ { ++ sdi_screen_line_counter++; ++ lir_text (80, sdi_screen_line_counter, work_line); ++ } + // write to soundboard_init.log - if (ch_read[0] =='\n') work_line[work_line_pos]=ch_read[0]; - if (ch_read[0] !='\n') - { @@ -65,41 +94,142 @@ - work_line[work_line_pos]=ch_read[0]; - work_line_pos++; - ch_cnt=fread(ch_read,1,1,sdifile); -+ fprintf (sndlog,"\n(output of 'cat %s' command): \n\n",sndstat_filename ); -+ settextcolor(LIGHT_GREEN); -+ while(fgets(work_line, sizeof(work_line)-1, sdifile) != NULL) -+ { -+ // check if work_line is ready for output processing -+ if((p = strchr(work_line, '\n')) != NULL) -+ *p = '\0'; -+ if (ch_read[0] != '\0') -+ { -+ // display work_line only if it is not blank -+ // and there are enough lines available on the screen -+ // and there are at least 40 characters available on a line -+ if (sdi_screen_line_counter < screen_last_line && -+ (screen_last_col - 40)>= 80) -+ { -+ sdi_screen_line_counter++; -+ lir_text (80, sdi_screen_line_counter, work_line); -+ } -+ // write to soundboard_init.log -+ fprintf (sndlog,"%s\n",work_line); -+ } ++ fprintf (sndlog,"%s\n",work_line); + } -+ fclose(sdifile); ++ } ++ fclose(sdifile); + } +else + { -+ settextcolor(LIGHT_RED); -+ lir_text ( 80, sdi_screen_line_counter++, sdi_error_msg); -+ fprintf (sndlog,"\n%s",sdi_error_msg ); ++ settextcolor(LIGHT_RED); ++ lir_text ( 80, sdi_screen_line_counter++, sdi_error_msg); ++ fprintf (sndlog,"\n%s",sdi_error_msg ); } - fclose(sdifile); +-fclose(sdifile); -display_sdi_x:; fprintf(sndlog,sndlog_sep); fflush(sndlog); } + ++ + void clear_sdi(void) + { + int x, w; +@@ -209,6 +193,8 @@ + thread_status_flag[THREAD_SCREEN]!=THRFLAG_IDLE && + thread_status_flag[THREAD_SCREEN]!=THRFLAG_SEM_WAIT) + { ++ if(thread_command_flag[THREAD_RX_ADINPUT] == ++ THRFLAG_KILL)goto rxadin_error_exit; + lir_sleep(10000); + } + } +@@ -239,7 +225,7 @@ + } + #endif + if(hware_flag != 0) +- { ++ { + dt1=current_time(); + if(dt1 - hware_time > 0.005) + { +@@ -265,7 +251,7 @@ + measured_ad_speed=total_reads*ad_read_fragments/dt1; + } + } +-// Here we post to the screen routine every 0.1 second. ++// Here we post to the screen routine every 0.1 second. + screen_loop_counter--; + if(screen_loop_counter == 0) + { +@@ -304,8 +290,8 @@ + rxin_int[4*i+2]=rxin_int2[2*i ]; + rxin_int[4*i+3]=rxin_int2[2*i+1]; + } +- } +- } ++ } ++ } + if(network_flag == 1) + { + if(network_modeno == 1) +@@ -321,14 +307,14 @@ + } + write(network_sockfd, rxin_isho, ad_read_bytes); + } +- } ++ } + finish_rx_read(rxin_isho); + if(kill_all_flag) goto rxadin_error_exit; + } +-rxadin_error_exit:; ++rxadin_error_exit:; + while( audio_out == audio_in)lir_sleep(10000); +-close_rx_sndin(); +-rx_adin_init_error:; ++close_rx_sndin(); ++rx_adin_init_error:; + thread_status_flag[THREAD_RX_ADINPUT]=THRFLAG_RETURNED; + while(thread_command_flag[THREAD_RX_ADINPUT] != THRFLAG_NOT_ACTIVE) + { +@@ -360,7 +346,7 @@ + lir_sleep(3000); + i++; + if(i<10)goto buftest; +- } ++ } + i=da_totbytes-da_info.bytes; + i/=(da_output_channels*da_output_bytes); + return i; +@@ -375,13 +361,13 @@ + for(i=0; i<daout_block; i++)da_wrbuf[i]=0; + write(audio_out,da_wrbuf,daout_block); + if(ioctl(audio_out,SNDCTL_DSP_GETOSPACE, &da_info) == -1)lirerr(errcod); +-} ++} + + + void lir_empty_da_device_buffer(void) + { + int i; +-if( audio_out == -1) ++if( audio_out == -1) + { + open_rx_sndout(); + if(kill_all_flag) return; +@@ -402,7 +388,7 @@ + if(da_info.fragstotal - da_info.fragments <= 4) + { + write(audio_out,da_wrbuf,daout_block); +- } ++ } + if(ioctl(audio_out,SNDCTL_DSP_RESET,0)==-1) + { + if(ui.da_stopstart == 0) +@@ -470,7 +456,7 @@ + if(i<25)goto buftest; + err_restart_da(23855); + if(kill_all_flag) return; +- } ++ } + write(audio_out,da_wrbuf,daout_block); + } + +@@ -490,11 +476,11 @@ + lirerr(9236); + return; + } +-if (n+2 == MAX_DEVNAMES) ++if (n+2 == MAX_DEVNAMES) + { + sprintf(dev_name, "%s", DEVNAME_BASE); +- } +-else ++ } ++else + { + sprintf(dev_name, "%s%d", DEVNAME_BASE, n); + } @@ -525,6 +511,11 @@ if(i&AFMT_S16_LE)ui.max_output_bytes=2; ui.max_output_speed=ABOVE_MAX_SPEED; @@ -112,14 +242,196 @@ if(ioctl(audio_out, SNDCTL_DSP_SPEED, &ui.max_output_speed) == -1) { lirerr(1072); -@@ -535,6 +526,7 @@ +@@ -535,7 +526,8 @@ lirerr(1073); return; } +-if(ui.max_output_speed==ABOVE_MAX_SPEED || +#endif - if(ui.max_output_speed==ABOVE_MAX_SPEED || ++if(ui.max_output_speed==ABOVE_MAX_SPEED || ui.min_output_speed <= 1 || ui.max_output_speed < ui.min_output_speed) + { +@@ -592,7 +584,7 @@ + i>>=1; + frag++; + } +-if(frag < 4)frag=4; ++if(frag < 4)frag=4; + frag|=0x7fff0000; + return frag; + } +@@ -614,7 +606,7 @@ + free(da_wrbuf); + da_wrbuf=NULL; + } +- } ++ } + audio_out=-1; + } + +@@ -623,7 +615,7 @@ + float t1; + int i, j, frag; + audio_buf_info ad_info; +-if( disksave_flag == 2 || ++if( disksave_flag == 2 || + network_flag == 2 || + ui.ad_device_no == SDR14_DEVICE_CODE || + ( (ui.input_mode&NO_DUPLEX) != 0 && audio_out != -1) ) +@@ -632,7 +624,7 @@ + } + if( (audio_in) != -1) + { +- if( ui.ad_device_mode == O_RDWR)return; ++ if( ui.ad_device_mode == O_RDWR)return; + lirerr(100031); + return; + } +@@ -662,22 +654,22 @@ + i>>=1; + frag++; + } +-if(frag < 4)frag=4; ++if(frag < 4)frag=4; + if(ui.ad_device_no > 255) + { + frag--; +- if(frag < 4)frag=4; ++ if(frag < 4)frag=4; + frag=frag|0x7fff0000; + if(ioctl(audio_in2, SNDCTL_DSP_SETFRAGMENT, &frag) == -1) + { +- lirerr(1175); ++ lirerr(1175); + return; + } + } + frag=frag|0x7fff0000; + if(ioctl(audio_in, SNDCTL_DSP_SETFRAGMENT, &frag) == -1) + { +- lirerr(1008); ++ lirerr(1008); + return; + } + i=AFMT_S16_LE; +@@ -721,7 +713,7 @@ + i=j; + if(ioctl(audio_in, SNDCTL_DSP_CHANNELS, &i) == -1) + { +- lirerr(1009); ++ lirerr(1009); + return; + } + if(i != j) +@@ -734,7 +726,7 @@ + i=j; + if(ioctl(audio_in2, SNDCTL_DSP_CHANNELS, &i) == -1) + { +- lirerr(1178); ++ lirerr(1178); + return; + } + if(i != j) +@@ -791,7 +783,7 @@ + i=PCM_ENABLE_INPUT; + if(ioctl(audio_in2,SNDCTL_DSP_SETTRIGGER,&i)==-1) + { +- lirerr(1184); ++ lirerr(1184); + return; + } + } +@@ -814,7 +806,7 @@ + } + } + ioctl(audio_in,SNDCTL_DSP_GETBLKSIZE,&i); +-} ++} + + + +@@ -854,7 +846,7 @@ + } + } + // ******************************************* +-if(ui.ad_device_no == ui.da_device_no && ++if(ui.ad_device_no == ui.da_device_no && + ui.ad_device_mode == O_RDWR && + network_flag != 2) + { +@@ -887,7 +879,7 @@ + { + lirerr(1191); + } +- else ++ else + { + lirerr(1017); + } +@@ -907,7 +899,7 @@ + i=da_output_channels; + if(ioctl(audio_out, SNDCTL_DSP_CHANNELS, &i) == -1) + { +- lirerr(1019); ++ lirerr(1019); + return; + } + if(i != da_output_channels) +@@ -923,7 +915,7 @@ + { + i=AFMT_S16_LE; + } +- j=i; ++ j=i; + if(ioctl(audio_out, SNDCTL_DSP_SETFMT, &i) == -1) + { + lirerr(1020); +@@ -957,7 +949,7 @@ + lirerr(1025); + return; + } +-for(i=0; i<daout_block; i++)da_wrbuf[i]=0; ++for(i=0; i<daout_block; i++)da_wrbuf[i]=0; + ioctl(audio_out, SNDCTL_DSP_GETBLKSIZE,&i); + if(ioctl(audio_out,SNDCTL_DSP_GETOSPACE, &da_info) == -1)err_restart_da(1149); + da_totbytes=da_info.fragstotal*da_info.fragsize; +@@ -1010,7 +1002,7 @@ + return 0; + } + +-int find_output_devices(int line, int *dev_flag, int *dev_wr_bits, ++int find_output_devices(int line, int *dev_flag, int *dev_wr_bits, + int *dev_wr_channels, int *dev_max_wr_speed, int *dev_min_wr_speed) + { + char s[80]; +@@ -1039,7 +1031,7 @@ + dev_wr_bits[device_no]=0; + } + else +- { ++ { + SNDLOG"\n8-bit output supported"); + dev_wr_bits[device_no]=8; + } +@@ -1047,7 +1039,7 @@ + // We simply assume that all cards that can do 16 bit are capable + // of doing 8 bit as well. + j=AFMT_S16_LE; +- if(ioctl(audio_out, SNDCTL_DSP_SETFMT, &j) == -1 || j != AFMT_S16_LE) ++ if(ioctl(audio_out, SNDCTL_DSP_SETFMT, &j) == -1 || j != AFMT_S16_LE) + { + SNDLOG"\nCould not set 16-bit output"); + } +@@ -1058,7 +1050,7 @@ + SNDLOG"\n16-bit output supported"); + sndlog_sync(); + if(dev_wr_bits[device_no]==0) goto errdev; +- sndlog_sync(); ++ sndlog_sync(); + j=2; + if(ioctl(audio_out, SNDCTL_DSP_CHANNELS, &j) == -1) + { @@ -1077,6 +1069,11 @@ SNDLOG"\nNo of output channels= %d",j); sndlog_sync(); @@ -132,7 +444,21 @@ j=ABOVE_MAX_SPEED; if(ioctl(audio_out, SNDCTL_DSP_SPEED, &j) == -1 || j==ABOVE_MAX_SPEED) { -@@ -1103,6 +1100,29 @@ +@@ -1087,7 +1084,7 @@ + SNDLOG"\nioctl(SPEED) failed"); + goto errdev; + } +- } ++ } + dev_max_wr_speed[device_no]=j; + SNDLOG"\nMax output speed %d", dev_max_wr_speed[device_no]); + j=1; +@@ -1099,28 +1096,50 @@ + SNDLOG"\nioctl(SPEED) failed"); + goto errdev; + } +- } ++ } dev_min_wr_speed[device_no]=j; SNDLOG"\nMin output speed %d", dev_min_wr_speed[device_no]); sndlog_sync(); @@ -144,27 +470,121 @@ +// Sept 7, 2006 +// +#ifdef __FreeBSD__ -+{ -+ snd_capabilities capab; -+ int status; -+ bzero((void *)&capab, sizeof(capab)); -+ status = ioctl(audio_out, AIOGCAP, &capab); -+ if (status < 0) -+ goto errdev; -+ dev_min_wr_speed[device_no] = capab.rate_min; -+ dev_max_wr_speed[device_no]= capab.rate_max; -+ ui.min_output_speed = capab.rate_min; -+ ui.max_output_speed = capab.rate_max; -+ SNDLOG"\nMax output speed %d", dev_max_wr_speed[device_no]); -+ SNDLOG"\nMin output speed %d", dev_min_wr_speed[device_no]); -+} ++ { ++ snd_capabilities capab; ++ int status; ++ bzero((void *)&capab, sizeof(capab)); ++ status = ioctl(audio_out, AIOGCAP, &capab); ++ if (status < 0)goto errdev; ++ dev_min_wr_speed[device_no] = capab.rate_min; ++ dev_max_wr_speed[device_no]= capab.rate_max; ++ ui.min_output_speed = capab.rate_min; ++ ui.max_output_speed = capab.rate_max; ++ SNDLOG"\nMax output speed %d", dev_max_wr_speed[device_no]); ++ SNDLOG"\nMin output speed %d", dev_min_wr_speed[device_no]); ++ } +#endif if(close(audio_out)==-1) { - goto errdev; -@@ -1425,6 +1445,11 @@ +- goto errdev; ++ goto errdev; + } + sprintf(s,"%02d %s %7d - %7d Hz %d Chan. %d bit WRONLY", + device_no, dev_name, +- dev_min_wr_speed[device_no], +- dev_max_wr_speed[device_no], +- dev_wr_channels[device_no], ++ dev_min_wr_speed[device_no], ++ dev_max_wr_speed[device_no], ++ dev_wr_channels[device_no], + dev_wr_bits[device_no]); + lir_text(0,n+2,s); + n++; +- ui.da_device_no=device_no; ++ ui.da_device_no=device_no; + dev_flag[device_no]=4; + } +- else ++ else + { +-skipdev:; ++skipdev:; + dev_flag[device_no]=0; + sndlog_sync(); + } +@@ -1156,7 +1175,7 @@ + int speed_warning; + int i, j, k, n, nn, cn, m, min, max, olbytes; + int wrcnt; +-int rdwr_channels, caps; ++int rdwr_channels, caps; + int trySpeed, deltaSpeed; + int rdwr_max_speed; + int rdwr_min_speed; +@@ -1228,7 +1247,7 @@ + lir_text(5,13,press_any_key); + await_keyboard(); + if(kill_all_flag) goto sdr14_errexit; +- clear_screen(); ++ clear_screen(); + ui.ad_device_no=-1; + } + else +@@ -1300,7 +1319,7 @@ + parfile_end(sdr14_file); + } + } +- else ++ else + { + if(lir_inkey != 'N')goto qsdr; + clear_screen(); +@@ -1311,7 +1330,7 @@ + if(ui.ad_device_no == -1) + { + // look for other hardwares +- } ++ } + if(ui.ad_device_no != -1) + { + if(ui.da_device_no == -1) +@@ -1331,8 +1350,8 @@ + { + goto setad_x; + } +- } +-// If none of the supported SDR hardwares is found, use the ++ } ++// If none of the supported SDR hardwares is found, use the + // sound cards for input and output. + // ---------------------------------------------------------- + // First step through all devices and check which ones +@@ -1386,7 +1405,7 @@ + k=0; + } + else +- { ++ { + SNDLOG"\n16bit format supported"); + } + #ifdef AFMT_S32_LE +@@ -1400,8 +1419,8 @@ + else + { + SNDLOG"\n32bit format NOT supported"); +- } +-#endif ++ } ++#endif + sndlog_sync(); + if(k == 0)goto cls; + // Find max no of channels. +@@ -1423,8 +1442,13 @@ + else + { SNDLOG"\nMax no of channels = %d",m); - } +- } ++ } sndlog_sync(); +// +// To allow a separate #ifdef __FreeBSD__ @@ -174,7 +594,7 @@ // Find maximum speed rdwr_max_speed=ABOVE_MAX_SPEED; if(ioctl(audio_out, SNDCTL_DSP_SPEED, &rdwr_max_speed)==-1) -@@ -1444,6 +1469,27 @@ +@@ -1444,6 +1468,25 @@ lirerr(1040); goto setad_errexit; minok:; @@ -186,19 +606,684 @@ +// Sept 7, 2006 +// +#ifdef __FreeBSD__ -+{ -+ snd_capabilities capab; -+ int status; -+ bzero((void *)&capab, sizeof(capab)); -+ status = ioctl(audio_out, AIOGCAP, &capab); -+ if (status < 0) -+ goto setad_errexit; -+ rdwr_min_speed = capab.rate_min; -+ rdwr_max_speed = capab.rate_max; -+ SNDLOG"\nMin output speed %d", rdwr_min_speed); -+ SNDLOG"\nMax output speed %d", rdwr_max_speed); -+} ++ { ++ snd_capabilities capab; ++ int status; ++ bzero((void *)&capab, sizeof(capab)); ++ status = ioctl(audio_out, AIOGCAP, &capab); ++ if (status < 0)goto setad_errexit; ++ rdwr_min_speed = capab.rate_min; ++ rdwr_max_speed = capab.rate_max; ++ SNDLOG"\nMax output speed %d", rdwr_max_speed); ++ } +#endif SNDLOG"\nMin sampling speed = %d Hz",rdwr_min_speed); sndlog_sync(); if(mode != 1) +@@ -1487,30 +1530,30 @@ + dev_min_rd_speed[device_no]=rdwr_min_speed; + dev_rd_bits[device_no]=rdwr_fmt; + break; +- ++ + case 1: + dev_wr_channels[device_no]=rdwr_channels; + dev_max_wr_speed[device_no]=rdwr_max_speed; + dev_min_wr_speed[device_no]=rdwr_min_speed; + dev_wr_bits[device_no]=rdwr_fmt; + break; +- ++ + case 2: + dev_rdwr_channels[device_no]=rdwr_channels; + dev_max_rdwr_speed[device_no]=rdwr_max_speed; + dev_min_rdwr_speed[device_no]=rdwr_min_speed; + dev_rdwr_bits[device_no]=rdwr_fmt; + break; +- } ++ } + } + SNDLOG"\n"); +- } +- } ++ } ++ } + if(dev_flag[device_no] != 0) + { + SNDLOG"\nFLAG= %d",dev_flag[device_no]); + // One device may be different hardwares for input and output. +-// Put them on different lines if characteristics differ. ++// Put them on different lines if characteristics differ. + k=0; + j=0; + // Store equal pairs in k +@@ -1524,7 +1567,7 @@ + dev_max_rd_speed[device_no]==dev_max_wr_speed[device_no] && + dev_min_rd_speed[device_no]==dev_min_wr_speed[device_no] && + dev_rd_bits[device_no]==dev_wr_bits[device_no]) k|=1; +- } ++ } + if( (dev_flag[device_no]&5) == 5) + { + j|=2; +@@ -1550,33 +1593,33 @@ + { + sprintf(ss,"%02d:%12s %7d - %7d Hz %d Chan. %d bit", + device_no,dev_name, +- dev_min_rd_speed[device_no], +- dev_max_rd_speed[device_no], +- dev_max_rd_channels[device_no], ++ dev_min_rd_speed[device_no], ++ dev_max_rd_speed[device_no], ++ dev_max_rd_channels[device_no], + dev_rd_bits[device_no]); + } + else +- { ++ { + if( (dev_flag[device_no]&2) == 2) + { + sprintf(ss,"%02d:%12s %7d - %7d Hz %d Chan. %d bit", + device_no,dev_name, +- dev_min_wr_speed[device_no], +- dev_max_wr_speed[device_no], +- dev_wr_channels[device_no], ++ dev_min_wr_speed[device_no], ++ dev_max_wr_speed[device_no], ++ dev_wr_channels[device_no], + dev_wr_bits[device_no]); + } + } + for(j=0; j<3; j++) + { +- k=1<<j; ++ k=1<<j; + if( (dev_flag[device_no]&k) != 0) + { + column=0; + while(ss[column]!=0)column++; + sprintf(&ss[column]," %s",devmode_txt[j]); + } +- } ++ } + if( (dev_flag[device_no]&5) == 0) + { + color=0x17; +@@ -1610,19 +1653,19 @@ + sprintf(&ss[maxcolumn], + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s", + device_no,dev_name, +- dev_min_wr_speed[device_no], +- dev_max_wr_speed[device_no], +- dev_wr_channels[device_no], ++ dev_min_wr_speed[device_no], ++ dev_max_wr_speed[device_no], ++ dev_wr_channels[device_no], + dev_wr_bits[device_no],devmode_txt[1]); + sprintf(ss,"%02d:%12s %7d - %7d Hz %d Chan. %d bit %s", + device_no,dev_name, +- dev_min_rd_speed[device_no], +- dev_max_rd_speed[device_no], +- dev_max_rd_channels[device_no], ++ dev_min_rd_speed[device_no], ++ dev_max_rd_speed[device_no], ++ dev_max_rd_channels[device_no], + dev_rd_bits[device_no],devmode_txt[0]); + } + else +- { ++ { + // There is rdwr, read and write. + if(k == 0) + { +@@ -1632,23 +1675,23 @@ + sprintf(&ss[2*maxcolumn], + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s", + device_no,dev_name, +- dev_min_wr_speed[device_no], +- dev_max_wr_speed[device_no], +- dev_wr_channels[device_no], ++ dev_min_wr_speed[device_no], ++ dev_max_wr_speed[device_no], ++ dev_wr_channels[device_no], + dev_wr_bits[device_no],devmode_txt[1]); + sprintf(&ss[maxcolumn], + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s", + device_no,dev_name, +- dev_min_rd_speed[device_no], +- dev_max_rd_speed[device_no], +- dev_max_rd_channels[device_no], ++ dev_min_rd_speed[device_no], ++ dev_max_rd_speed[device_no], ++ dev_max_rd_channels[device_no], + dev_rd_bits[device_no],devmode_txt[0]); + sprintf(ss, + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s", + device_no,dev_name, +- dev_min_rdwr_speed[device_no], +- dev_max_rdwr_speed[device_no], +- dev_rdwr_channels[device_no], ++ dev_min_rdwr_speed[device_no], ++ dev_max_rdwr_speed[device_no], ++ dev_rdwr_channels[device_no], + dev_rdwr_bits[device_no],devmode_txt[2]); + } + else +@@ -1661,16 +1704,16 @@ + sprintf(&ss[maxcolumn], + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s", + device_no,dev_name, +- dev_min_wr_speed[device_no], +- dev_max_wr_speed[device_no], +- dev_wr_channels[device_no], ++ dev_min_wr_speed[device_no], ++ dev_max_wr_speed[device_no], ++ dev_wr_channels[device_no], + dev_wr_bits[device_no],devmode_txt[1]); + sprintf(ss, + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s %s", + device_no,dev_name, +- dev_min_rd_speed[device_no], +- dev_max_rd_speed[device_no], +- dev_max_rd_channels[device_no], ++ dev_min_rd_speed[device_no], ++ dev_max_rd_speed[device_no], ++ dev_max_rd_channels[device_no], + dev_rd_bits[device_no], + devmode_txt[0],devmode_txt[2]); + } +@@ -1680,24 +1723,24 @@ + sprintf(&ss[maxcolumn], + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s %s", + device_no,dev_name, +- dev_min_wr_speed[device_no], +- dev_max_wr_speed[device_no], ++ dev_min_wr_speed[device_no], ++ dev_max_wr_speed[device_no], + dev_wr_channels[device_no], dev_wr_bits[device_no], + devmode_txt[1],devmode_txt[2]); + sprintf(ss, + "%02d:%12s %7d - %7d Hz %d Chan. %d bit %s", + device_no,dev_name, +- dev_min_rd_speed[device_no], +- dev_max_rd_speed[device_no], +- dev_max_rd_channels[device_no], ++ dev_min_rd_speed[device_no], ++ dev_max_rd_speed[device_no], ++ dev_max_rd_channels[device_no], + dev_rd_bits[device_no], + devmode_txt[0]); + } +- } ++ } + } + } + } +- while (m >0) ++ while (m >0) + { + m--; + line++; +@@ -1715,15 +1758,15 @@ + bottom_line=maxline; + line=1; + } +- settextcolor(color); ++ settextcolor(color); + column=0; + while(ss[m*maxcolumn+column]!=0)column++; + while(column < maxcolumn) + { + ss[m*maxcolumn+column]=' '; +- column++; ++ column++; + } +- ss[(m+1)*maxcolumn-1]=0; ++ ss[(m+1)*maxcolumn-1]=0; + lir_text(0,line,&ss[m*maxcolumn]); + lir_refresh_screen(); + SNDLOG"\n%s color=%d m=%d",&ss[m*maxcolumn],color,m); +@@ -1732,7 +1775,7 @@ + SNDLOG"\n"); + } + } +-settextcolor(7); ++settextcolor(7); + line++; + clear_lines(line,line); + if(bottom_line > line)line=bottom_line; +@@ -1750,7 +1793,7 @@ + lir_text(0,line+10, + "Sound board drivers are usually configured during Linux install"); + lir_text(20,line+12,press_any_key); +- await_keyboard(); ++ await_keyboard(); + if(kill_all_flag) goto setad_errexit; + SNDLOG"\nNo input device found"); + goto setad_errexit; +@@ -1761,7 +1804,7 @@ + get_addev:; + settextcolor(14); + lir_text(0,line,"Select device for input by first number on line"); +- display_sdi(); ++ display_sdi(); + settextcolor(7); + ui.ad_device_no=lir_get_integer(48, line, 3, 0,MAX_DEVNAMES-1); + if(kill_all_flag)goto setad_errexit; +@@ -1802,7 +1845,7 @@ + // channels with the Lynx Two card (model A). + // Do not confuse other users by asking for a second input device + // unless the selected device has 32 bits but only allows 2 channels. +-if( dev_rd_bits[ui.ad_device_no] == 32 && ++if( dev_rd_bits[ui.ad_device_no] == 32 && + dev_max_rd_channels[ui.ad_device_no]==2 && + (dev_flag[ui.ad_device_no]&1) != 0) + { +@@ -1811,7 +1854,7 @@ + line=1; + for(i=0; i<MAX_DEVNAMES; i++) + { +- if(i != ui.ad_device_no && ++ if(i != ui.ad_device_no && + dev_max_rd_speed[i] == dev_max_rd_speed[ui.ad_device_no] && + dev_rd_bits[i] == 32 && + (dev_flag[i]&1) != 0) +@@ -1829,12 +1872,12 @@ + if(kill_all_flag) goto setad_errexit; + if(lir_inkey == 'N') + { +- SNDLOG"\nUser skipped dual devices"); ++ SNDLOG"\nUser skipped dual devices"); + goto skip_dual_devices; + } +- if(lir_inkey != 'Y')goto gt_dual; ++ if(lir_inkey != 'Y')goto gt_dual; + clear_screen(); +- SNDLOG"\nUser wants to try to open two read devices"); ++ SNDLOG"\nUser wants to try to open two read devices"); + make_devname(ui.ad_device_no); + audio_in=open( dev_name, O_RDONLY, 0); + if(audio_in == -1) +@@ -1854,11 +1897,11 @@ + } + if( (caps&DSP_CAP_TRIGGER) == 0) + { +- SNDLOG"\nDevice does not have DSP_CAP_TRIGGER"); ++ SNDLOG"\nDevice does not have DSP_CAP_TRIGGER"); + close(audio_in); + goto skip_dual_devices; + } +- j=2; ++ j=2; + if(ioctl(audio_in, SNDCTL_DSP_CHANNELS, &j) == -1) + { + lirerr(1185); +@@ -1882,9 +1925,9 @@ + SNDLOG"\n%s opened as second read device",dev_name); + sprintf(s,"%2d:%12s %7d - %7d Hz %d Chan. %d bit", + i,dev_name, +- dev_min_rd_speed[i], +- dev_max_rd_speed[i], +- dev_max_rd_channels[i], ++ dev_min_rd_speed[i], ++ dev_max_rd_speed[i], ++ dev_max_rd_channels[i], + dev_rd_bits[i]); + lir_text(0,line,s); + close(audio_in2); +@@ -1916,7 +1959,7 @@ + for(i=0; i<MAX_DEVNAMES; i++) + { + dev_flag[i]&=255; +- } ++ } + audio_in2=open( dev_name, O_RDONLY|O_NONBLOCK, 0); + if(audio_in2 == -1) + { +@@ -1935,7 +1978,7 @@ + } + if( (caps&DSP_CAP_TRIGGER) == 0) + { +- SNDLOG"\nSecond input device does not have DSP_CAP_TRIGGER"); ++ SNDLOG"\nSecond input device does not have DSP_CAP_TRIGGER"); + close(audio_in); + close(audio_in2); + goto skip_dual_devices; +@@ -1959,8 +2002,8 @@ + { + if( (1 & dev_flag[ui.ad_device_no]) != 0) + { +-gt_rdo:; +- sprintf(s,"Open %s as RDONLY or RDWR? (O/W) =>",dev_name); ++gt_rdo:; ++ sprintf(s,"Open %s as RDONLY or RDWR? (O/W) =>",dev_name); + lir_text(10,10,s); + await_processed_keyboard(); + if(kill_all_flag) goto setad_errexit; +@@ -1970,7 +2013,7 @@ + } + else + { +-rdwr:; ++rdwr:; + ui.ad_device_mode=O_RDWR; + mode=2; + SNDLOG"\nUser selected RDWR"); +@@ -1981,7 +2024,7 @@ + SNDLOG"\nOnly RDONLY available"); + } + sndlog_sync(); +-clear_screen(); ++clear_screen(); + sprintf(s,"For analog input: %s opened in %s mode",dev_name,devmode_txt[mode]); + lir_text(0,0,s); + audio_in=open( dev_name, ui.ad_device_mode, 0); +@@ -2031,7 +2074,7 @@ + ui.rx_channels=1; + ui.ad_channels=2; + break; +- ++ + case '3': + ui.input_mode=TWO_CHANNELS; + ui.rx_channels=2; +@@ -2288,7 +2331,7 @@ + sprintf(s,"Now trying to open a second device while %s is open",dev_name); + lir_text(0,6,s); + lir_text(0,7,"This may cause your system to hang. Try ctrlC to exit (or reboot)"); +-lir_text(0,8,"Try another input device or install another sound system."); ++lir_text(0,8,"Try another input device or install another sound system."); + // Find devices that we may use for output. + n=0; + cn=0; +@@ -2314,16 +2357,16 @@ + dev_flag[i]=0; + } + else +- { ++ { + sprintf(&s[column]," %d Hz %d Chan. 16 bit RDWR", + ui.input_speed, ui.ad_channels); + n++; +- ui.da_device_no=i; ++ ui.da_device_no=i; + } + } + } + else +- { ++ { + // Remove duplex flags on all devices except the one we use for input + dev_flag[i]&=0xffff-4; + if( (dev_flag[i]&2) != 0 ) +@@ -2331,7 +2374,7 @@ + audio_out=open( dev_name, O_WRONLY|O_NONBLOCK, 0); + if(read_test_ad(testbuff)!=0)goto clr_wrdev; + if(audio_out != -1) +- { ++ { + #ifdef SNDCTL_DSP_COOKEDMODE + j=0; + ioctl(audio_out, SNDCTL_DSP_COOKEDMODE, &j); +@@ -2351,13 +2394,13 @@ + dev_wr_bits[i]=0; + } + else +- { ++ { + SNDLOG"\n8-bit output supported"); + dev_wr_bits[i]=8; + } + sndlog_sync(); + j=AFMT_S16_LE; +- if(ioctl(audio_out, SNDCTL_DSP_SETFMT, &j) == -1 || j != AFMT_S16_LE) ++ if(ioctl(audio_out, SNDCTL_DSP_SETFMT, &j) == -1 || j != AFMT_S16_LE) + { + SNDLOG"\nCould not set 16-bit output"); + } +@@ -2368,7 +2411,7 @@ + SNDLOG"\n16-bit output supported"); + sndlog_sync(); + if(dev_wr_bits[i]==0) goto skip_wr_dev; +- sndlog_sync(); ++ sndlog_sync(); + j=2; + if(ioctl(audio_out, SNDCTL_DSP_CHANNELS, &j) == -1) + { +@@ -2397,7 +2440,7 @@ + SNDLOG"\nioctl(SPEED) failed"); + goto skip_wr_dev; + } +- } ++ } + dev_max_wr_speed[i]=j; + SNDLOG"\nMax output speed %d", dev_max_wr_speed[i]); + j=1; +@@ -2409,7 +2452,7 @@ + SNDLOG"\nioctl(SPEED) failed"); + goto skip_wr_dev; + } +- } ++ } + dev_min_wr_speed[i]=j; + SNDLOG"\nMin output speed %d", dev_min_wr_speed[i]); + sndlog_sync(); +@@ -2426,7 +2469,7 @@ + SNDLOG"\nWrite failed"); + goto skip_wr_dev; + } +- sound_start_time=current_time(); ++ sound_start_time=current_time(); + wrcnt=0; + j=ad_info.bytes; + while(wrcnt+ad_info.bytes < 3*1024+j ) +@@ -2438,7 +2481,7 @@ + SNDLOG"\nSNDCTL_DSP_GETOSPACE failed"); + goto skip_wr_dev; + } +- if( current_time() - sound_start_time > 0.7) ++ if( current_time() - sound_start_time > 0.7) + { + SNDLOG"\nTimeout"); + goto skip_wr_dev; +@@ -2456,7 +2499,7 @@ + lirerr(1095); + goto setad_errexit; + } +- olbytes=ad_info.bytes; ++ olbytes=ad_info.bytes; + gettimeofday(&tim2,NULL); + while(ad_info.bytes-olbytes < 512) + { +@@ -2475,31 +2518,31 @@ + } + if(close(audio_out)==-1) + { +- goto skip_wr_dev; ++ goto skip_wr_dev; + } + sprintf(&s[column]," %7d - %7d Hz %d Chan. %d bit WRONLY", +- dev_min_wr_speed[i], +- dev_max_wr_speed[i], +- dev_wr_channels[i], ++ dev_min_wr_speed[i], ++ dev_max_wr_speed[i], ++ dev_wr_channels[i], + dev_wr_bits[i]); + cn=1; + n++; +- ui.da_device_no=i; ++ ui.da_device_no=i; + } +- else ++ else + { +- goto clr_wrdev; ++ goto clr_wrdev; + skip_wr_dev:; + sndlog_sync(); + if(close(audio_out)==-1) + { +- lirerr(1067); ++ lirerr(1067); + goto setad_errexit; + } + clr_wrdev:; + dev_flag[i]&=0xffff-2; + } +- } ++ } + } + if(cn != 0) + { +@@ -2542,7 +2585,7 @@ + while(s[column] != 0)column++; + audio_out=open( dev_name, O_WRONLY|O_NONBLOCK, 0); + if(audio_out != -1) +- { ++ { + #ifdef SNDCTL_DSP_COOKEDMODE + j=0; + ioctl(audio_out, SNDCTL_DSP_COOKEDMODE, &j); +@@ -2556,11 +2599,11 @@ + dev_wr_bits[i]=0; + } + else +- { ++ { + dev_wr_bits[i]=8; + } + j=AFMT_S16_LE; +- if(ioctl(audio_out, SNDCTL_DSP_SETFMT, &j) == -1 || j != AFMT_S16_LE) ++ if(ioctl(audio_out, SNDCTL_DSP_SETFMT, &j) == -1 || j != AFMT_S16_LE) + { + SNDLOG"\nCould not set 16-bit output"); + } +@@ -2569,7 +2612,7 @@ + dev_wr_bits[i]=16; + } + if(dev_wr_bits[i]==0) goto skip_wr_dev_nodup; +- sndlog_sync(); ++ sndlog_sync(); + j=2; + if(ioctl(audio_out, SNDCTL_DSP_CHANNELS, &j) == -1) + { +@@ -2597,7 +2640,7 @@ + SNDLOG"\nioctl(SPEED) failed"); + goto skip_wr_dev_nodup; + } +- } ++ } + dev_max_wr_speed[i]=j; + SNDLOG"\nMax output speed %d", dev_max_wr_speed[i]); + sndlog_sync(); +@@ -2613,17 +2656,17 @@ + if(ioctl(audio_out,SNDCTL_DSP_GETOSPACE, &ad_info) == -1) + goto skip_wr_dev_nodup; + } +- if(close(audio_out)==-1)goto skip_wr_dev_nodup; ++ if(close(audio_out)==-1)goto skip_wr_dev_nodup; + sprintf(&s[column]," %d Hz %d Chan. %d bit WRONLY", + dev_max_wr_speed[i], dev_wr_channels[i], dev_wr_bits[i]); + cn=1; + n++; +- ui.da_device_no=i; ++ ui.da_device_no=i; + dev_flag[i] |= 2; + } +- else ++ else + { +- goto clr_wrdev_nodup; ++ goto clr_wrdev_nodup; + skip_wr_dev_nodup:; + sndlog_sync(); + if(close(audio_out)==-1) +@@ -2655,10 +2698,10 @@ + lirerr(1139); + goto setad_errexit; + } +- ui.input_mode|=NO_DUPLEX; ++ ui.input_mode|=NO_DUPLEX; + ad_info.bytes=0; + } +-dadev_select:; ++dadev_select:; + if(n > 1) + { + get_dadev:; +@@ -2666,7 +2709,7 @@ + j=0; + settextcolor(14); + lir_text(0,line,"Select device for output by line number"); +- display_sdi(); ++ display_sdi(); + settextcolor(7); + while(i<2) + { +@@ -2683,7 +2726,7 @@ + } + ui.da_device_no=j; + // Mod3: Modified error message handling in get_dadev and get_addev +- if( (6 & dev_flag[ui.da_device_no]) == 0) ++ if( (6 & dev_flag[ui.da_device_no]) == 0) + { + settextcolor(15); + lir_text(43,line,"???"); +@@ -2693,10 +2736,10 @@ + clear_lines(line,line+1); + goto get_dadev; + } +-// ------------------------------------------------------- ++// ------------------------------------------------------- + // The original code was: + // if( (6 & dev_flag[ui.da_device_no]) == 0) goto get_dadev; +-// ------------------------------------------------------- ++// ------------------------------------------------------- + } + make_devname(ui.da_device_no); + SNDLOG"\nUser selected %s for output.",dev_name); +@@ -2711,7 +2754,7 @@ + { + ui.da_stopstart=1; + } +-else ++else + { + if(lir_inkey != 'N')goto get_da_stopstart; + ui.da_stopstart=0; +@@ -2720,7 +2763,7 @@ + // If we selected the same device for input and output, + // check if it was opened ad RDWR or if we shall open it + // for output now +-if( ui.da_device_no == ui.ad_device_no && ++if( ui.da_device_no == ui.ad_device_no && + ui.ad_device_mode == O_RDWR && + (ui.input_mode&NO_DUPLEX) == 0 ) + { +@@ -2751,20 +2794,20 @@ + close_rx_sndout(); + } + close_rx_sndin(); +-sprintf(s,"Min output channels: %d",ui.min_output_channels); ++sprintf(s,"Min output channels: %d",ui.min_output_channels); + lir_text(0,8,s); +-sprintf(s,"Max output channels: %d",ui.max_output_channels); ++sprintf(s,"Max output channels: %d",ui.max_output_channels); + lir_text(0,9,s); + da_output_channels=ui.min_output_channels; + da_output_bytes=ui.max_output_bytes; +-sprintf(s,"Output no of bits=%d",8*ui.max_output_bytes); ++sprintf(s,"Output no of bits=%d",8*ui.max_output_bytes); + lir_text(35,7,s); + if(ui.max_output_bytes != ui.min_output_bytes) + { +- sprintf(s,"or %d",8*ui.min_output_bytes); ++ sprintf(s,"or %d",8*ui.min_output_bytes); + lir_text(56,7,s); + } +-// Reopen with the current parameters. ++// Reopen with the current parameters. + // We will not goto setad_errexit here if something goes wrong. + if( (ui.input_mode&NO_DUPLEX) == 0 && ui.ad_device_no != SDR14_DEVICE_CODE) + { |