mirror of
https://github.com/saitohirga/WSJT-X.git
synced 2024-11-19 02:22:10 -05:00
Summary: Add in timing code. The captured audio is now decoded.
git-svn-id: svn+ssh://svn.code.sf.net/p/wsjt/wsjt/trunk@41 ab8295b8-cf94-4d9e-aec4-7959e3be5d79
This commit is contained in:
parent
db838694d8
commit
43cb15d438
@ -3,6 +3,7 @@
|
||||
#include <pthread.h>
|
||||
#include <alsa/asoundlib.h>
|
||||
#include <inttypes.h>
|
||||
#include <time.h>
|
||||
|
||||
#if 0
|
||||
#define ALSA_LOG
|
||||
@ -27,6 +28,10 @@ typedef struct alsa_driver_s {
|
||||
int16_t *app_buffer_y2;
|
||||
int *app_buffer_offset;
|
||||
int app_buffer_length;
|
||||
double *Tsec;
|
||||
double *tbuf;
|
||||
int *ibuf;
|
||||
|
||||
snd_pcm_uframes_t buffer_size;
|
||||
snd_pcm_uframes_t period_size;
|
||||
int32_t mmap;
|
||||
@ -301,20 +306,31 @@ int playback_callback(alsa_driver_t *alsa_driver_playback) {
|
||||
alsa_driver_t *this = alsa_driver_playback;
|
||||
printf("playback callback\n");
|
||||
//snd_pcm_writen(this->audio_fd, alsa_buffers, this->period_size);
|
||||
//fivehztx_(); //Call fortran routine
|
||||
}
|
||||
|
||||
int capture_callback(alsa_driver_t *alsa_driver_capture) {
|
||||
alsa_driver_t *this = alsa_driver_capture;
|
||||
int result;
|
||||
struct timeval tv;
|
||||
double stime;
|
||||
int ib;
|
||||
#ifdef ALSA_LOG
|
||||
printf("capture callback %d samples\n", this->period_size);
|
||||
#endif
|
||||
#ifdef ALSA_LOG
|
||||
snd_pcm_status_t *pcm_stat;
|
||||
snd_pcm_status_alloca(&pcm_stat);
|
||||
#ifdef ALSA_LOG
|
||||
snd_pcm_status(this->audio_fd, pcm_stat);
|
||||
snd_pcm_status_dump(pcm_stat, jcd_out);
|
||||
#endif
|
||||
gettimeofday(&tv, NULL);
|
||||
stime = (double) tv.tv_sec + ((double)tv.tv_usec / 1000.0);
|
||||
ib=*(this->ibuf);
|
||||
this->tbuf[ib++]=stime;
|
||||
if(ib>=1024) ib=0;
|
||||
*(this->ibuf)=ib;
|
||||
|
||||
alsa_buffers[0]=this->app_buffer_y1 + *(this->app_buffer_offset);
|
||||
alsa_buffers[1]=this->app_buffer_y2 + *(this->app_buffer_offset);
|
||||
result = snd_pcm_readn(this->audio_fd, alsa_buffers, this->period_size);
|
||||
@ -326,6 +342,7 @@ int capture_callback(alsa_driver_t *alsa_driver_capture) {
|
||||
snd_pcm_status(this->audio_fd, pcm_stat);
|
||||
snd_pcm_status_dump(pcm_stat, jcd_out);
|
||||
#endif
|
||||
fivehz_(); //Call fortran routine
|
||||
}
|
||||
|
||||
int capture_xrun(alsa_driver_t *alsa_driver_capture) {
|
||||
@ -407,7 +424,10 @@ int start_threads_(int *ndevin, int *ndevout, short y1[], short y2[],
|
||||
alsa_driver_capture.app_buffer_y1=y1;
|
||||
alsa_driver_capture.app_buffer_y2=y2;
|
||||
alsa_driver_capture.app_buffer_offset=iwrite;
|
||||
alsa_driver_capture.app_buffer_length=nsamperbuf;
|
||||
alsa_driver_capture.app_buffer_length=*nsamperbuf;
|
||||
alsa_driver_capture.Tsec=Tsec;
|
||||
alsa_driver_capture.tbuf=tbuf;
|
||||
alsa_driver_capture.ibuf=ibuf;
|
||||
|
||||
printf("start threads called\n");
|
||||
iret1 = pthread_create(&thread1,NULL,decode1_,&iarg1);
|
||||
|
Loading…
Reference in New Issue
Block a user