Gentoo Websites Logo
Go to: Gentoo Home Documentation Forums Lists Bugs Planet Store Wiki Get Gentoo!
View | Details | Raw Unified | Return to bug 708540
Collapse All | Expand All

(-)a/libqdwav/wav_lib.h (-6 / +2 lines)
Lines 29-39 typedef struct{ Link Here
29
	char   	head[43];
29
	char   	head[43];
30
} wav_sig;
30
} wav_sig;
31
31
32
buffmem_desc	binfo;
32
extern buffmem_desc	binfo;
33
count_info	cinfo;
34
33
35
int 	dsp_fd;
34
extern int dsp_fd;
36
int 	*buffer;
37
35
38
short 	get_wav_format		(wav_sig *info);
36
short 	get_wav_format		(wav_sig *info);
39
int 	open_wav		(char *header, char file_name[]);
37
int 	open_wav		(char *header, char file_name[]);
Lines 46-50 void get_wav_nextblock (int handle, char *buffer); Link Here
46
44
47
int 	init_parm		(int argc, char *argv[], wav_sig *file_info);
45
int 	init_parm		(int argc, char *argv[], wav_sig *file_info);
48
int 	open_wav_rec		(wav_sig *info);
46
int 	open_wav_rec		(wav_sig *info);
49
50
int bsize;
(-)a/timer.c (+2 lines)
Lines 1-6 Link Here
1
#include <stdio.h>
1
#include <stdio.h>
2
#include "wav_lib.h"
2
#include "wav_lib.h"
3
3
4
count_info cinfo;
5
int dsp_fd;
4
6
5
int update_timer(wav_sig *info, int mode){
7
int update_timer(wav_sig *info, int mode){
6
	int hr, mn, sc;
8
	int hr, mn, sc;
(-)a/wav_play.c (-8 / +10 lines)
Lines 11-16 Link Here
11
11
12
wav_sig *file_info;
12
wav_sig *file_info;
13
long count;
13
long count;
14
int bsize_p;
15
int * buffer_p;
14
16
15
/* GSM stuff */
17
/* GSM stuff */
16
18
Lines 58-82 int init_dsp(wav_sig *file_info){ Link Here
58
	p =  file_info->srate;
60
	p =  file_info->srate;
59
	i += ioctl(dsp_fd, SOUND_PCM_WRITE_RATE, &p);
61
	i += ioctl(dsp_fd, SOUND_PCM_WRITE_RATE, &p);
60
62
61
	i += ioctl(dsp_fd, SNDCTL_DSP_GETBLKSIZE, &bsize);
63
	i += ioctl(dsp_fd, SNDCTL_DSP_GETBLKSIZE, &bsize_p);
62
	
64
	
63
	ioctl(dsp_fd, SNDCTL_DSP_SYNC, 0);
65
	ioctl(dsp_fd, SNDCTL_DSP_SYNC, 0);
64
66
65
	return(i);
67
	return(i);
66
}
68
}
67
69
68
void play_buffer(){
70
void play_buffer_p(){
69
71
70
#ifndef GSM
72
#ifndef GSM
71
73
72
	if (file_info->len < bsize){
74
	if (file_info->len < bsize_p){
73
		count = read(file_info->handle, buffer, file_info->len);
75
		count = read(file_info->handle, buffer_p, file_info->len);
74
		file_info->len -= count;
76
		file_info->len -= count;
75
	} else {
77
	} else {
76
		count = read(file_info->handle, (int *)buffer, bsize);
78
		count = read(file_info->handle, (int *)buffer_p, bsize_p);
77
		file_info->len -= count;
79
		file_info->len -= count;
78
	}
80
	}
79
	write(dsp_fd, buffer, count);
81
	write(dsp_fd, buffer_p, count);
80
82
81
#else
83
#else
82
84
Lines 103-109 int main(int argc, char *argv[]) { Link Here
103
	filename = argv[1];
105
	filename = argv[1];
104
#endif 	
106
#endif 	
105
	file_info = (wav_sig *)malloc(sizeof(wav_sig));
107
	file_info = (wav_sig *)malloc(sizeof(wav_sig));
106
	buffer = (int *)malloc(32767);
108
	buffer_p = (int *)malloc(32767);
107
109
108
	if (init_wav_read(filename, file_info) == -1){
110
	if (init_wav_read(filename, file_info) == -1){
109
		fprintf(stderr,"Error opening file: %s\n", file_info->name);
111
		fprintf(stderr,"Error opening file: %s\n", file_info->name);
Lines 123-129 int main(int argc, char *argv[]) { Link Here
123
	gsm_info.handle = gsm_create();
125
	gsm_info.handle = gsm_create();
124
#endif
126
#endif
125
	while (file_info->len > 0){
127
	while (file_info->len > 0){
126
		play_buffer();
128
		play_buffer_p();
127
		update_timer(file_info, 1);
129
		update_timer(file_info, 1);
128
	}
130
	}
129
#ifdef GSM
131
#ifdef GSM
(-)a/wav_rec.c (-5 / +7 lines)
Lines 15-20 Link Here
15
wav_sig *file_info;
15
wav_sig *file_info;
16
int count;
16
int count;
17
int have_len;
17
int have_len;
18
int bsize_r;
19
int *buffer_r;
18
20
19
//SignalHandler *old_sigint;
21
//SignalHandler *old_sigint;
20
22
Lines 89-95 int init_dsp(wav_sig *file_info){ Link Here
89
		p =  file_info->srate;
91
		p =  file_info->srate;
90
		i += ioctl(dsp_fd, SNDCTL_DSP_SPEED, &p);
92
		i += ioctl(dsp_fd, SNDCTL_DSP_SPEED, &p);
91
		
93
		
92
		i += ioctl(dsp_fd, SNDCTL_DSP_GETBLKSIZE, &bsize);
94
		i += ioctl(dsp_fd, SNDCTL_DSP_GETBLKSIZE, &bsize_r);
93
		
95
		
94
		
96
		
95
		ioctl(dsp_fd, SNDCTL_DSP_SYNC, 0);
97
		ioctl(dsp_fd, SNDCTL_DSP_SYNC, 0);
Lines 126-135 void write_data(){ Link Here
126
128
127
#ifndef GSM
129
#ifndef GSM
128
130
129
	if ((have_len && file_info->len > bsize) || !have_len) count = read(dsp_fd, buffer, bsize);
131
	if ((have_len && file_info->len > bsize_r) || !have_len) count = read(dsp_fd, buffer_r, bsize);
130
	else count = read(dsp_fd, buffer, file_info->len);
132
	else count = read(dsp_fd, buffer_r, file_info->len);
131
133
132
	write(file_info->handle, buffer, count);
134
	write(file_info->handle, buffer_r, count);
133
	file_info->len -= count;
135
	file_info->len -= count;
134
	file_info->sofar += count;
136
	file_info->sofar += count;
135
137
Lines 193-199 int main(int argc, char *argv[]){ Link Here
193
		exit(-1);
195
		exit(-1);
194
	}
196
	}
195
197
196
	buffer = (int *)malloc(bsize);
198
	buffer_r = (int *)malloc(bsize_r);
197
	
199
	
198
	//old_sigint = (SignalHandler *)
200
	//old_sigint = (SignalHandler *)
199
  	signal(SIGINT, SIG_INT);
201
  	signal(SIGINT, SIG_INT);

Return to bug 708540