> Now mmap_test compiles without warnings and produces funky sounds.
> Enjoy!
Sorry, forgot the patch:
==========================
--- alsa-driver/test/Makefile
+++ alsa-driver/test/Makefile
@@ -14,7 +14,7 @@
$(CC) $(CFLAGS) -o ossdelay ossdelay.c
mmap_test: mmap_test.c
- $(CC) $(CFLAGS) -DVERBOSE -o mmap_test mmap_test.c
+ $(CC) $(CFLAGS) -DVERBOSE -o mmap_test mmap_test.c -lm
clean:
rm -f *.o $(TARGETS) *~
--- alsa-driver/test/mmap_test.c
+++ alsa-driver/test/mmap_test.c
@@ -16,21 +16,24 @@
#include <stdio.h>
#include <unistd.h>
#include <fcntl.h>
+#include <stdlib.h>
+#include <string.h>
+#include <math.h>
+#include <sys/ioctl.h>
#include <sys/types.h>
#include <sys/mman.h>
#include <sys/soundcard.h>
#include <sys/time.h>
-main()
+int main(int args, char **argv)
{
- int fd, sz, fsz, i, tmp, n, l, have_data=0, nfrag;
+ int fd, sz, fsz, i, tmp, nfrag;
int caps, idx;
int sd, sl=0, sp;
unsigned char data[500000], *dp = data;
- struct buffmem_desc imemd, omemd;
caddr_t buf;
struct timeval tim;
@@ -60,14 +63,21 @@ main()
* Load some test data.
*/
- sl = sp = 0;
- if ((sd=open("smpl", O_RDONLY, 0))!=-1)
- {
- sl = read(sd, data, sizeof(data));
- printf("%d bytes read from file.\n", sl);
- close(sd);
- }
- else perror("smpl");
+ sl = sp = 0;
+ if ((sd=open("smpl", O_RDONLY, 0))!=-1)
+ {
+ sl = read(sd, data, sizeof(data));
+ printf("%d bytes read from file.\n", sl);
+ close(sd);
+ }
+ else
+ {
+ perror("smpl");
+ printf("Using generated sample\n");
+ for (i = 0; i < sizeof(data); i++) {
+ data[i] = (unsigned char) ((1+sin(i*(4+i/1000)))*127);
+ }
+ }
if (ioctl(fd, SNDCTL_DSP_GETCAPS, &caps)==-1)
{
@@ -104,7 +114,7 @@ main()
* select call returns.
*/
- ioctl(fd, SNDCTL_DSP_SETPERIOD, &frag);
+ ioctl(fd, SNDCTL_DSP_SETFRAGMENT, &frag);
/*
* Compute total size of the buffer. It's important to use this value
@@ -121,7 +131,7 @@ main()
fsz = info.fragsize;
printf( "info.fragstotal = %i\n", info.fragstotal );
printf( "info.fragsize = %i\n", info.fragsize );
- printf( "info.periods = %i\n", info.periods );
+ printf( "info.fragsize = %i\n", info.fragsize );
printf( "info.bytes = %i\n", info.bytes );
/*
@@ -154,7 +164,7 @@ main()
perror("mmap (write)");
exit(-1);
}
- printf("mmap (out) returned %08x\n", buf);
+ printf("mmap (out) returned %p\n", buf);
#else
buf=data;
#endif
@@ -198,7 +208,7 @@ main()
for (idx=0; idx<40; idx++)
{
struct count_info count;
- int p, l, extra;
+ int extra;
FD_ZERO(&writeset);
FD_SET(fd, &writeset);
==========================
--
Regards,
Pavel Roskin
-------------------------------------------------------
This sf.net email is sponsored by: Dice - The leading online job board
for high-tech professionals. Search and apply for tech jobs today!
http://seeker.dice.com/seeker.epl?rel_code=31
_______________________________________________
Alsa-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/alsa-devel