mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-22 20:28:42 -05:00
A few tweaks to make it compile and run in Linux/ALSA, Linux PortAudio,
and Windows. git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@114 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
bc694f8c9c
commit
1e442bf2c8
@ -4,31 +4,31 @@ Changes in WSJT 5.9.2: January 10, 2006
|
|||||||
Enhancements
|
Enhancements
|
||||||
------------
|
------------
|
||||||
|
|
||||||
1. Thread priorities have been adjusted for smoother operation. One
|
1. Thread priorities have been adjusted for smoother operation.
|
||||||
result is that there will be fewer audio glitches caused by the
|
|
||||||
Windows O/S paying attention to other programs.
|
|
||||||
|
|
||||||
2. The JT65 decoder now has improved immunity to "garbage data," and
|
2. The JT65 decoder now has improved immunity to garbage data
|
||||||
it exhibits better performance on strong signals.
|
(birdies, QRM, etc.) and it exhibits better performance on
|
||||||
|
strong signals.
|
||||||
|
|
||||||
3. The FSK441 decoder produces less on-screen gibberish when you do
|
3. The FSK441 decoder produces less on-screen gibberish when you
|
||||||
mouse-picked decodes.
|
request mouse-picked decodes.
|
||||||
|
|
||||||
4. The JT6M decoder now makes better use of Freeze and Tol. You can
|
4. The JT6M decoder now makes better use of Freeze and Tol. You can
|
||||||
set the value of "Freeze DF" by using the Right/Left arrow keys.
|
set the value of "Freeze DF" by using the Right/Left arrow keys.
|
||||||
|
(This feature is also useful in JT65 mode.)
|
||||||
|
|
||||||
5. On-screen font sizes can be set by using Windows Notepad (or
|
5. On-screen font sizes can be set by using Windows Notepad (or
|
||||||
another text editor) to edit the file wsjtrc.win. If your screen
|
another text editor) to edit the file wsjtrc.win. If your screen
|
||||||
has resolution greater than 1024 x 768, or if you have old eyes
|
has resolution greater than 1024 x 768, or if you have old eyes
|
||||||
like mine, you may want to increase the sizes from 8 and 9 points
|
like mine, you may want to increase the font sizes from 8 and 9
|
||||||
(first three lines of the file) to, say, 9 and 10 points.
|
points (first three lines of the file) to, say, 9 and 10 points.
|
||||||
|
|
||||||
6. A simulator mode is now built into WSJT. It is presently most
|
6. A simulator mode is now built into WSJT. It is presently most
|
||||||
useful in JT65 mode. By entering, say, "#-22" in the text box for
|
useful in JT65 mode. By entering, say, "#-22" in the text box for
|
||||||
Tx6, you signify that the program should generate its Tx audio
|
Tx6, you signify that the program should generate its Tx audio
|
||||||
files with the signal embedded in white gaussian noise, 22 dB
|
files with the signal embedded in white gaussian noise, 22 dB
|
||||||
below the noise power in a 2.5 kHz bandwidth. You can direct this
|
below the noise power in a 2.5 kHz bandwidth. You can direct this
|
||||||
signal into a second computer running WSJT, for eaxmple to test
|
signal into a second computer running WSJT, for example to test
|
||||||
the decoder or to practice operating in JT65 mode. You can even
|
the decoder or to practice operating in JT65 mode. You can even
|
||||||
have the two computers "work each other", although changing
|
have the two computers "work each other", although changing
|
||||||
messages of course requires operator action.
|
messages of course requires operator action.
|
||||||
@ -83,6 +83,7 @@ The present WSJT working group consists of:
|
|||||||
Diane Bruce, VA3DB
|
Diane Bruce, VA3DB
|
||||||
James Courtier-Dutton
|
James Courtier-Dutton
|
||||||
Bob McGwier, N4HY
|
Bob McGwier, N4HY
|
||||||
|
Jonathan Naylor, ON/G4KLX
|
||||||
Stewart Nelson, KK7KA
|
Stewart Nelson, KK7KA
|
||||||
Joe Taylor, K1JT
|
Joe Taylor, K1JT
|
||||||
Kaj Wiik, OH6EH
|
Kaj Wiik, OH6EH
|
||||||
|
@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
!------------------------------------------------ audio_init
|
!------------------------------------------------ audio_init
|
||||||
subroutine audio_init(ndin,ndout)
|
subroutine audio_init(ndin,ndout)
|
||||||
|
|
||||||
@ -11,7 +10,17 @@ subroutine audio_init(ndin,ndout)
|
|||||||
integer*2 a(225000) !Pixel values for 750 x 300 array
|
integer*2 a(225000) !Pixel values for 750 x 300 array
|
||||||
integer brightness,contrast
|
integer brightness,contrast
|
||||||
include 'gcom1.f90'
|
include 'gcom1.f90'
|
||||||
|
include 'gcom2.f90'
|
||||||
|
|
||||||
|
nmode=1
|
||||||
|
if(mode(1:4).eq.'JT65') then
|
||||||
|
nmode=2
|
||||||
|
if(mode(5:5).eq.'A') mode65=1
|
||||||
|
if(mode(5:5).eq.'B') mode65=2
|
||||||
|
if(mode(5:5).eq.'C') mode65=4
|
||||||
|
endif
|
||||||
|
if(mode.eq.'Echo') nmode=3
|
||||||
|
if(mode.eq.'JT6M') nmode=4
|
||||||
ndevin=ndin
|
ndevin=ndin
|
||||||
ndevout=ndout
|
ndevout=ndout
|
||||||
TxOK=0
|
TxOK=0
|
||||||
|
@ -211,7 +211,7 @@ subroutine addnoise(n)
|
|||||||
real r(12)
|
real r(12)
|
||||||
real*8 txsnrdb0
|
real*8 txsnrdb0
|
||||||
include 'gcom1.f90'
|
include 'gcom1.f90'
|
||||||
save txsnrdb0
|
save
|
||||||
|
|
||||||
if(txsnrdb.gt.40.0) return
|
if(txsnrdb.gt.40.0) return
|
||||||
if(txsnrdb.ne.txsnrdb0) then
|
if(txsnrdb.ne.txsnrdb0) then
|
||||||
|
@ -174,13 +174,16 @@ static int SoundOut( void *inputBuffer, void *outputBuffer,
|
|||||||
*wptr++ = n2; //right
|
*wptr++ = n2; //right
|
||||||
ic++;
|
ic++;
|
||||||
if(ic>=*data->nwave) {
|
if(ic>=*data->nwave) {
|
||||||
ic = ic % *data->nwave; //Wrap buffer pointer if necessary
|
if(*data->nmode==2) {
|
||||||
if(*data->nmode==2)
|
|
||||||
*data->TxOK=0;
|
*data->TxOK=0;
|
||||||
|
ic--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ic = ic % *data->nwave; //Wrap buffer pointer if necessary
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
memset((void*)outputBuffer, 0, 2*sizeof(int16_t)*framesPerBuffer);
|
memset((void*)outputBuffer, 0, 2*sizeof(short)*framesPerBuffer);
|
||||||
}
|
}
|
||||||
fivehztx_(); //Call fortran routine
|
fivehztx_(); //Call fortran routine
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -88,7 +88,7 @@ ptt_(int *nport, int *ntx, int *iptt)
|
|||||||
|
|
||||||
/* open the device */
|
/* open the device */
|
||||||
if ((fd = open(s, O_RDWR | O_NDELAY)) < 0) {
|
if ((fd = open(s, O_RDWR | O_NDELAY)) < 0) {
|
||||||
fprintf(stderr, "Can't open %s.", s);
|
fprintf(stderr, "Can't open %s.\n", s);
|
||||||
return(1);
|
return(1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
18
start_alsa.c
18
start_alsa.c
@ -329,6 +329,7 @@ int playback_callback(alsa_driver_t *alsa_driver_playback) {
|
|||||||
int nsec;
|
int nsec;
|
||||||
int i,n;
|
int i,n;
|
||||||
static int ic;
|
static int ic;
|
||||||
|
static short int n2;
|
||||||
int16_t b0[2048];
|
int16_t b0[2048];
|
||||||
|
|
||||||
// printf("playback callback\n");
|
// printf("playback callback\n");
|
||||||
@ -353,12 +354,17 @@ int playback_callback(alsa_driver_t *alsa_driver_playback) {
|
|||||||
alsa_playback_buffers[0] = b0;
|
alsa_playback_buffers[0] = b0;
|
||||||
alsa_playback_buffers[1] = b0;
|
alsa_playback_buffers[1] = b0;
|
||||||
for(i=0; i<this->period_size; i++) {
|
for(i=0; i<this->period_size; i++) {
|
||||||
b0[i]=this->app_buffer_y1[ic];
|
n2=this->app_buffer_y1[ic];
|
||||||
|
addnoise_(&n2);
|
||||||
|
b0[i]=n2;
|
||||||
ic++;
|
ic++;
|
||||||
if(ic >= *this->nwave) {
|
if(ic>=*this->nwave) {
|
||||||
ic=ic % *this->nwave;
|
if(*this->nmode==2) {
|
||||||
if(*this->nmode == 2)
|
|
||||||
*this->tx_ok=0;
|
*this->tx_ok=0;
|
||||||
|
ic--;
|
||||||
|
}
|
||||||
|
else
|
||||||
|
ic = ic % *this->nwave; //Wrap buffer pointer
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
@ -368,7 +374,7 @@ int playback_callback(alsa_driver_t *alsa_driver_playback) {
|
|||||||
result = snd_pcm_writen(this->audio_fd, alsa_playback_buffers, this->period_size);
|
result = snd_pcm_writen(this->audio_fd, alsa_playback_buffers, this->period_size);
|
||||||
this->tx_offset += this->period_size;
|
this->tx_offset += this->period_size;
|
||||||
if (result != this->period_size) {
|
if (result != this->period_size) {
|
||||||
printf("playback writei failed. Expected %d samples, sent only %d\n", this->period_size, result);
|
printf("Playback write failed. Expected %d samples, sent only %d\n", this->period_size, result);
|
||||||
#ifdef ALSA_PLAYBACK_LOG
|
#ifdef ALSA_PLAYBACK_LOG
|
||||||
snd_pcm_status_t *pcm_stat;
|
snd_pcm_status_t *pcm_stat;
|
||||||
snd_pcm_status_alloca(&pcm_stat);
|
snd_pcm_status_alloca(&pcm_stat);
|
||||||
@ -524,7 +530,7 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[],
|
|||||||
// printf("start_threads: creating thread for decode1\n");
|
// printf("start_threads: creating thread for decode1\n");
|
||||||
iret1 = pthread_create(&thread1,NULL,decode1_,&iarg1);
|
iret1 = pthread_create(&thread1,NULL,decode1_,&iarg1);
|
||||||
/* Open audio card. */
|
/* Open audio card. */
|
||||||
printf("Starting alsa routines.\n");
|
printf("Using ALSA sound.\n");
|
||||||
ao_alsa_open(&alsa_driver_playback, &rate, SND_PCM_STREAM_PLAYBACK);
|
ao_alsa_open(&alsa_driver_playback, &rate, SND_PCM_STREAM_PLAYBACK);
|
||||||
ao_alsa_open(&alsa_driver_capture, &rate, SND_PCM_STREAM_CAPTURE);
|
ao_alsa_open(&alsa_driver_capture, &rate, SND_PCM_STREAM_CAPTURE);
|
||||||
|
|
||||||
|
9
wsjt.py
9
wsjt.py
@ -1,4 +1,4 @@
|
|||||||
#--------------------------------------------------------------- WSJT
|
#-------------------------------------------------------------- WSJT
|
||||||
from Tkinter import *
|
from Tkinter import *
|
||||||
from tkFileDialog import *
|
from tkFileDialog import *
|
||||||
import Pmw
|
import Pmw
|
||||||
@ -647,8 +647,11 @@ on 50 MHz; JT65, an extremely sensitive mode for troposcatter
|
|||||||
and EME; CW at 15 WPM with messages structured for EME; and
|
and EME; CW at 15 WPM with messages structured for EME; and
|
||||||
an EME Echo mode for measuring your own echoes from the moon.
|
an EME Echo mode for measuring your own echoes from the moon.
|
||||||
|
|
||||||
WSJT is Copyright (c) 2001-2005 by Joseph H. Taylor, Jr., K1JT,
|
WSJT is Copyright (c) 2001-2006 by Joseph H. Taylor, Jr., K1JT,
|
||||||
and is licensed under the GNU General Public License (GPL).
|
with contributions from additional authors. It is Open Source
|
||||||
|
software, licensed under the GNU General Public License (GPL).
|
||||||
|
Source code and programming information may be found at
|
||||||
|
http://developer.berlios.de/projects/wsjt/.
|
||||||
"""
|
"""
|
||||||
Label(about,text=t,justify=LEFT).pack(padx=20)
|
Label(about,text=t,justify=LEFT).pack(padx=20)
|
||||||
t="Revision date: " + \
|
t="Revision date: " + \
|
||||||
|
Loading…
Reference in New Issue
Block a user