dernier commit avant travaux...
This commit is contained in:
		
							parent
							
								
									ec27a42dc1
								
							
						
					
					
						commit
						db3d7283df
					
				
							
								
								
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							
							
						
						
									
										2
									
								
								.gitignore
									
									
									
									
										vendored
									
									
								
							| @ -3,8 +3,8 @@ | |||||||
| audio/t | audio/t | ||||||
| audio/*.wav | audio/*.wav | ||||||
| 
 | 
 | ||||||
|  | nclooper | ||||||
| ui/t | ui/t | ||||||
| 
 |  | ||||||
| files/t | files/t | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										13
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										13
									
								
								Makefile
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,13 @@ | |||||||
|  | CC      = gcc | ||||||
|  | CCOPT   = -Wall -g -DDEBUG_LEVEL=1 | ||||||
|  | 
 | ||||||
|  | OBJS	= ui/ncfuncs.o files/smpllist.o files/ffuncs.o | ||||||
|  | LIBS	= -lcurses | ||||||
|  | 
 | ||||||
|  | main.o:	main.c nclooper.h Makefile | ||||||
|  | 	$(CC) ${CCOPT} -c $<  | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | nclooper:	main.o ${OBJS} Makefile | ||||||
|  | 	$(CC) ${CCOPT} $< ${OBJS} ${LIBS} -o $@ | ||||||
|  | 
 | ||||||
| @ -47,11 +47,11 @@ if (NULL==sndf) | |||||||
| 
 | 
 | ||||||
| buffer = calloc(T_BUFF_WAVES, sizeof(short)*2); | buffer = calloc(T_BUFF_WAVES, sizeof(short)*2); | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL | if (verbosity) { | ||||||
| fprintf(stderr, "samplerate : %d\n", sfinfo.samplerate); | 	fprintf(stderr, "samplerate : %d\n", sfinfo.samplerate); | ||||||
| fprintf(stderr, "frames     : %ld\n", sfinfo.frames); | 	fprintf(stderr, "frames     : %ld\n", sfinfo.frames); | ||||||
| fprintf(stderr, "seekable   : %d\n", sfinfo.seekable); | 	fprintf(stderr, "seekable   : %d\n", sfinfo.seekable); | ||||||
| #endif | 	} | ||||||
| 
 | 
 | ||||||
| for (pass=0; pass<loop; pass++) { | for (pass=0; pass<loop; pass++) { | ||||||
| 
 | 
 | ||||||
|  | |||||||
							
								
								
									
										42
									
								
								audio/t.c
									
									
									
									
									
								
							
							
						
						
									
										42
									
								
								audio/t.c
									
									
									
									
									
								
							| @ -19,14 +19,37 @@ void help(int k) | |||||||
| { | { | ||||||
| } | } | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
|  | int envoyer_du_son(char *fname, int k) | ||||||
|  | { | ||||||
|  | ao_device		*device; | ||||||
|  | int			foo; | ||||||
|  | 
 | ||||||
|  | device = init_ao_output(44100); | ||||||
|  | fprintf(stderr, "AO init    -> %p\n", device); | ||||||
|  | 
 | ||||||
|  | switch (k) { | ||||||
|  | 	case 0: | ||||||
|  | 		foo = blast_this_file(fname, device, 1); | ||||||
|  | 		fprintf(stderr, "blast file -> %d\n", foo); | ||||||
|  | 		break; | ||||||
|  | 
 | ||||||
|  | 	case 1: | ||||||
|  | 		foo = play_some_stuff(device, 0); | ||||||
|  | 		fprintf(stderr, "play stuff -> %d\n", foo); | ||||||
|  | 		break; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | foo = close_ao_output(device); | ||||||
|  | fprintf(stderr, "AO close   -> %d\n", foo); | ||||||
|  | 
 | ||||||
|  | return 0; | ||||||
|  | } | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
| 
 | 
 | ||||||
| int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||||||
| { | { | ||||||
| int			foo; |  | ||||||
| ao_device		*device; |  | ||||||
| int			opt; | int			opt; | ||||||
| 
 | 
 | ||||||
| 
 |  | ||||||
| while ((opt = getopt(argc, argv, "hv")) != -1) { | while ((opt = getopt(argc, argv, "hv")) != -1) { | ||||||
| 	switch(opt) { | 	switch(opt) { | ||||||
| 		case 'h':	help(0);			break; | 		case 'h':	help(0);			break; | ||||||
| @ -38,18 +61,7 @@ while ((opt = getopt(argc, argv, "hv")) != -1) { | |||||||
| fprintf(stderr, "argc = %d, optind = %d\n", argc, optind); | fprintf(stderr, "argc = %d, optind = %d\n", argc, optind); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| device = init_ao_output(44100); | envoyer_du_son("AK14V-ORDRES.wav", 0); | ||||||
| fprintf(stderr, "AO init    -> %p\n", device); |  | ||||||
| 
 |  | ||||||
| foo = play_some_stuff(device, 0); |  | ||||||
| fprintf(stderr, "play stuff -> %d\n", foo); |  | ||||||
| 
 |  | ||||||
| foo = blast_this_file("AK14V-ORDRES.wav", device, 3); |  | ||||||
| fprintf(stderr, "blast file -> %d\n", foo); |  | ||||||
| 
 |  | ||||||
| foo = close_ao_output(device); |  | ||||||
| fprintf(stderr, "AO close   -> %d\n", foo); |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| return 0; | return 0; | ||||||
| } | } | ||||||
|  | |||||||
| @ -4,8 +4,11 @@ CCOPT   = -Wall -g -DDEBUG_LEVEL=1 | |||||||
| ffuncs.o:  ffuncs.c ffuncs.h Makefile | ffuncs.o:  ffuncs.c ffuncs.h Makefile | ||||||
| 	$(CC) ${CCOPT} -c $< | 	$(CC) ${CCOPT} -c $< | ||||||
| 
 | 
 | ||||||
|  | smpllist.o:  smpllist.c smpllist.h ffuncs.h Makefile | ||||||
|  | 	$(CC) ${CCOPT} -c $< | ||||||
|  | 
 | ||||||
| LIBS	=  | LIBS	=  | ||||||
| OBJS	= ffuncs.o | OBJS	= ffuncs.o smpllist.o | ||||||
| 
 | 
 | ||||||
| t:	t.c ${OBJS} Makefile | t:	t.c ${OBJS} Makefile | ||||||
| 	$(CC) ${CCOPT} $< ${OBJS} ${LIBS} -o $@ | 	$(CC) ${CCOPT} $< ${OBJS} ${LIBS} -o $@ | ||||||
|  | |||||||
| @ -2,19 +2,6 @@ | |||||||
|  *		various file functions |  *		various file functions | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| /* --------------------------------------------------------------------- */ |  | ||||||
| 
 |  | ||||||
| /* two arbitrary magic number */ |  | ||||||
| #define   SZ_TEXT	20 |  | ||||||
| #define   SZ_PATH	400 |  | ||||||
| 
 |  | ||||||
| typedef struct	{ |  | ||||||
| 	char		key; |  | ||||||
| 	int		flags; |  | ||||||
| 	char		text[SZ_TEXT+1]; |  | ||||||
| 	char		path[SZ_PATH+1]; |  | ||||||
| 	} SampleRef; |  | ||||||
| 
 |  | ||||||
| 
 | 
 | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -1,3 +1,4 @@ | |||||||
| a | bla bla | ../AK14V-ORDRES.wav | a | bla bla | ../AK14V-ORDRES.wav | ||||||
| z |znare|znare.wav | z |znare|znare.wav | ||||||
|    B | plop ! | ../AK14V-ORDRES.wav |    B | plop ! | ../AK14V-ORDRES.wav | ||||||
|  | c	| classic	|	foo.wav | ||||||
|  | |||||||
							
								
								
									
										139
									
								
								files/smpllist.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										139
									
								
								files/smpllist.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,139 @@ | |||||||
|  | 
 | ||||||
|  | #include  <stdio.h> | ||||||
|  | #include  <stdlib.h> | ||||||
|  | #include  <string.h> | ||||||
|  | #include  <ctype.h> | ||||||
|  | 
 | ||||||
|  | #include  "../nclooper.h" | ||||||
|  | 
 | ||||||
|  | #include  "ffuncs.h" | ||||||
|  | #include  "smpllist.h" | ||||||
|  | 
 | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | extern int verbosity; | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | void affiche_un_sample(SampleRef *sref, int options) | ||||||
|  | { | ||||||
|  | printf("%c  %02X  [%-20s]  %s\n", sref->key, sref->flags, sref->text, | ||||||
|  | 						sref->path); | ||||||
|  | } | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | 
 | ||||||
|  | int decode_la_ligne(char *line, SampleRef *sref) | ||||||
|  | { | ||||||
|  | char			*ptr, *cp; | ||||||
|  | 
 | ||||||
|  | #if DEBUG_LEVEL | ||||||
|  | fprintf(stderr, ">>> %s ( '%s' %p )\n", __func__, line, sref); | ||||||
|  | // dump(line);
 | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  *	ON THE WAY TO PARSING HELL | ||||||
|  |  */ | ||||||
|  | ptr = strtok(line, "|"); | ||||||
|  | if (NULL==ptr) { | ||||||
|  | 	fprintf(stderr, "fubarized\n"); | ||||||
|  | 	return -1; | ||||||
|  | 	} | ||||||
|  | cp = ltrim(rtrim(ptr)); | ||||||
|  | if (verbosity) fprintf(stderr, "key   [%s]\n", cp); | ||||||
|  | if ( ! isalpha(*cp)) { | ||||||
|  | 	fprintf(stderr, "invalid key 0x%02x\n", *cp); | ||||||
|  | 	return -2; | ||||||
|  | 	} | ||||||
|  | sref->key = toupper(*cp); | ||||||
|  | 
 | ||||||
|  | ptr = strtok(NULL, "|"); | ||||||
|  | if (NULL==ptr) { | ||||||
|  | 	fprintf(stderr, "line to short\n"); | ||||||
|  | 	return -3; | ||||||
|  | 	} | ||||||
|  | cp = ltrim(rtrim(ptr)); | ||||||
|  | if (verbosity) fprintf(stderr, "text  [%s]\n", cp); | ||||||
|  | if (strlen(cp) > SZ_TEXT) { | ||||||
|  | 	fprintf(stderr, "text too long\n"); | ||||||
|  | 	return -4; | ||||||
|  | 	} | ||||||
|  | strcpy(sref->text, cp); | ||||||
|  | 
 | ||||||
|  | ptr = strtok(NULL, "|"); | ||||||
|  | if (NULL==ptr) { | ||||||
|  | 	fprintf(stderr, "line to short\n"); | ||||||
|  | 	return -6; | ||||||
|  | 	} | ||||||
|  | cp = ltrim(rtrim(ptr)); | ||||||
|  | if (verbosity) fprintf(stderr, "path  [%s]\n", cp); | ||||||
|  | if (strlen(ptr) > SZ_PATH) { | ||||||
|  | 	fprintf(stderr, "path too long\n"); | ||||||
|  | 	return -5; | ||||||
|  | 	} | ||||||
|  | strcpy(sref->path, cp); | ||||||
|  | 
 | ||||||
|  | return 0; | ||||||
|  | } | ||||||
|  | 
 | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | #define T_LINE		500 | ||||||
|  | 
 | ||||||
|  | int lecture_liste_des_samples(char *fname, SampleRef *samples) | ||||||
|  | { | ||||||
|  | FILE			*fp; | ||||||
|  | char			line[T_LINE+1]; | ||||||
|  | int			ln;				/* line number */ | ||||||
|  | int			foo, bar, idx; | ||||||
|  | SampleRef		sample; | ||||||
|  | 
 | ||||||
|  | #if DEBUG_LEVEL | ||||||
|  | fprintf(stderr, ">>> %s ( '%s' )\n", __func__, fname); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | /*
 | ||||||
|  |  *	first step : clean the current list | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | for (foo=0; foo<26; foo++) { | ||||||
|  | 	memset(samples+foo, 0, sizeof(SampleRef)); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | if (NULL==(fp=fopen(fname, "r"))) { | ||||||
|  | 	perror(fname); | ||||||
|  | 	exit(1); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | ln = 1; | ||||||
|  | while (NULL != fgets(line, T_LINE, fp)) { | ||||||
|  | 
 | ||||||
|  | 	/* degommer l'eventuel \n */ | ||||||
|  | 	bar = strlen(line); | ||||||
|  | 	if (0==bar) { | ||||||
|  | 		fprintf(stderr,"line %d very short\n", ln); | ||||||
|  | 		continue; | ||||||
|  | 		} | ||||||
|  | 	bar--;			/* backspace one char */ | ||||||
|  | 	if ('\n' == line[bar]) line[bar]='\0'; | ||||||
|  | 
 | ||||||
|  | 	memset(&sample, 0, sizeof(SampleRef)); | ||||||
|  | 	foo = decode_la_ligne(line, &sample); | ||||||
|  | #if DEBUG_LEVEL | ||||||
|  | 	fprintf(stderr, "decode la ligne -> %d\n\n", foo); | ||||||
|  | #endif | ||||||
|  | 	if (!foo) { | ||||||
|  | 		affiche_un_sample(&sample, 0); | ||||||
|  | 		idx = tolower(sample.key) - 'a'; | ||||||
|  | 		if (idx<0 || idx>25) { | ||||||
|  | 			/* serious bug here */ | ||||||
|  | 			break; | ||||||
|  | 			} | ||||||
|  | 		memcpy(samples+idx, &sample, sizeof(SampleRef)); | ||||||
|  | 		} | ||||||
|  | 
 | ||||||
|  | 	ln++; | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | fclose(fp); | ||||||
|  | 
 | ||||||
|  | return -1; | ||||||
|  | } | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
							
								
								
									
										12
									
								
								files/smpllist.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										12
									
								
								files/smpllist.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,12 @@ | |||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | void affiche_un_sample(SampleRef *sref, int options); | ||||||
|  | 
 | ||||||
|  | int decode_la_ligne(char *line, SampleRef *sref); | ||||||
|  | int lecture_liste_des_samples(char *fname, SampleRef *array); | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
							
								
								
									
										118
									
								
								files/t.c
									
									
									
									
									
								
							
							
						
						
									
										118
									
								
								files/t.c
									
									
									
									
									
								
							| @ -8,116 +8,16 @@ | |||||||
| #include  <string.h> | #include  <string.h> | ||||||
| #include  <ctype.h> | #include  <ctype.h> | ||||||
| 
 | 
 | ||||||
|  | #include  "../nclooper.h" | ||||||
|  | #include  "smpllist.h" | ||||||
| #include  "ffuncs.h" | #include  "ffuncs.h" | ||||||
| 
 | 
 | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
| 
 | 
 | ||||||
| int			verbosity; | int			verbosity; | ||||||
| 
 | 
 | ||||||
| /* --------------------------------------------------------------------- */ | SampleRef	the_samples[26]; | ||||||
| void affiche_un_sample(SampleRef *sref) |  | ||||||
| { |  | ||||||
| printf("%c  %02X  [%-20s]  %s\n", sref->key, sref->flags, sref->text, |  | ||||||
| 						sref->path); |  | ||||||
| } |  | ||||||
| /* --------------------------------------------------------------------- */ |  | ||||||
| static int decode_la_ligne(char *line, SampleRef *sref) |  | ||||||
| { |  | ||||||
| char			*ptr, *cp; |  | ||||||
| 
 | 
 | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( '%s' %p )\n", __func__, line, sref); |  | ||||||
| // dump(line);
 |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| /*
 |  | ||||||
|  *	ON THE WAY TO PARSING HELL |  | ||||||
|  */ |  | ||||||
| ptr = strtok(line, "|"); |  | ||||||
| cp = ltrim(rtrim(ptr)); |  | ||||||
| if (verbosity) fprintf(stderr, "key   [%s]\n", cp); |  | ||||||
| if ( ! isalpha(*cp)) { |  | ||||||
| 	fprintf(stderr, "invalid key 0x%02x\n", *cp); |  | ||||||
| 	return -2; |  | ||||||
| 	} |  | ||||||
| sref->key = toupper(*cp); |  | ||||||
| 
 |  | ||||||
| ptr = strtok(NULL, "|"); |  | ||||||
| if (NULL==ptr) { |  | ||||||
| 	fprintf(stderr, "line to short\n"); |  | ||||||
| 	return -3; |  | ||||||
| 	} |  | ||||||
| cp = ltrim(rtrim(ptr)); |  | ||||||
| if (verbosity) fprintf(stderr, "text  [%s]\n", cp); |  | ||||||
| if (strlen(cp) > SZ_TEXT) { |  | ||||||
| 	fprintf(stderr, "text too long\n"); |  | ||||||
| 	return -4; |  | ||||||
| 	} |  | ||||||
| strcpy(sref->text, cp); |  | ||||||
| 
 |  | ||||||
| ptr = strtok(NULL, "|"); |  | ||||||
| if (NULL==ptr) { |  | ||||||
| 	fprintf(stderr, "line to short\n"); |  | ||||||
| 	return -6; |  | ||||||
| 	} |  | ||||||
| cp = ltrim(rtrim(ptr)); |  | ||||||
| if (verbosity) fprintf(stderr, "path  [%s]\n", cp); |  | ||||||
| if (strlen(ptr) > SZ_PATH) { |  | ||||||
| 	fprintf(stderr, "path too long\n"); |  | ||||||
| 	return -5; |  | ||||||
| 	} |  | ||||||
| strcpy(sref->path, cp); |  | ||||||
| 
 |  | ||||||
| return 0; |  | ||||||
| } |  | ||||||
| /* --------------------------------------------------------------------- */ |  | ||||||
| #define T_LINE		300 |  | ||||||
| 
 |  | ||||||
| int essai_lecture_liste(char *fname) |  | ||||||
| { |  | ||||||
| FILE			*fp; |  | ||||||
| char			line[T_LINE+1]; |  | ||||||
| int			ln;				/* line number */ |  | ||||||
| int			foo, bar; |  | ||||||
| SampleRef		sample; |  | ||||||
| 
 |  | ||||||
| #if DEBUG_LEVEL |  | ||||||
| fprintf(stderr, ">>> %s ( '%s' )\n", __func__, fname); |  | ||||||
| #endif |  | ||||||
| 
 |  | ||||||
| if (NULL==(fp=fopen(fname, "r"))) { |  | ||||||
| 	perror(fname); |  | ||||||
| 	exit(1); |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| ln = 1; |  | ||||||
| while (NULL != fgets(line, T_LINE, fp)) { |  | ||||||
| 
 |  | ||||||
| 	// fprintf(stderr, "%3d = %s", ln, line);
 |  | ||||||
| 
 |  | ||||||
| 	/* degommer l'eventuel \n */ |  | ||||||
| 	bar = strlen(line); |  | ||||||
| 	if (0==bar) { |  | ||||||
| 		fprintf(stderr,"line %d very short\n", ln); |  | ||||||
| 		continue; |  | ||||||
| 		} |  | ||||||
| 	bar--;			/* backspace one char */ |  | ||||||
| 	if ('\n' == line[bar]) line[bar]='\0'; |  | ||||||
| 
 |  | ||||||
| 	memset(&sample, 0, sizeof(SampleRef)); |  | ||||||
| 	foo = decode_la_ligne(line, &sample); |  | ||||||
| #if DEBUG_LEVEL |  | ||||||
| 	fprintf(stderr, "decode la ligne -> %d\n\n", foo); |  | ||||||
| #endif |  | ||||||
| 	affiche_un_sample(&sample); |  | ||||||
| 
 |  | ||||||
| 	ln++; |  | ||||||
| 	} |  | ||||||
| 
 |  | ||||||
| fclose(fp); |  | ||||||
| 
 |  | ||||||
| return -1; |  | ||||||
| } |  | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
| void help(int k) | void help(int k) | ||||||
| { | { | ||||||
| @ -132,10 +32,11 @@ int			foo; | |||||||
| int			opt; | int			opt; | ||||||
| char			*listname = "samples.list"; | char			*listname = "samples.list"; | ||||||
| 
 | 
 | ||||||
| while ((opt = getopt(argc, argv, "hv")) != -1) { | while ((opt = getopt(argc, argv, "hl:v")) != -1) { | ||||||
| 	switch(opt) { | 	switch(opt) { | ||||||
| 		case 'h':	help(0);			break; | 		case 'h':	help(0);			break; | ||||||
| 		case 'v':	verbosity++;			break; | 		case 'v':	verbosity++;			break; | ||||||
|  | 		case 'l':	listname = optarg;		break; | ||||||
| 		} | 		} | ||||||
| 	} | 	} | ||||||
| 
 | 
 | ||||||
| @ -143,8 +44,13 @@ while ((opt = getopt(argc, argv, "hv")) != -1) { | |||||||
| fprintf(stderr, "argc = %d, optind = %d\n", argc, optind); | fprintf(stderr, "argc = %d, optind = %d\n", argc, optind); | ||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| foo = essai_lecture_liste(listname); | foo = lecture_liste_des_samples(listname, the_samples); | ||||||
| fprintf(stderr,"essai lecture '%s' -> %d\n", listname, foo); | fprintf(stderr,"retour lecture liste '%s' -> %d\n", listname, foo); | ||||||
|  | 
 | ||||||
|  | for (foo=0; foo<26; foo++) { | ||||||
|  | 	printf("%3d  %02x  %s\n", foo, the_samples[foo].key, | ||||||
|  | 					the_samples[foo].text); | ||||||
|  | 	} | ||||||
| 
 | 
 | ||||||
| return 0; | return 0; | ||||||
| } | } | ||||||
|  | |||||||
							
								
								
									
										59
									
								
								main.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										59
									
								
								main.c
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,59 @@ | |||||||
|  | /*
 | ||||||
|  |  *      NcLooper        test des fonctions fichier (???) | ||||||
|  |  */ | ||||||
|  |   | ||||||
|  | #include  <stdio.h> | ||||||
|  | #include  <stdlib.h> | ||||||
|  | #include  <unistd.h> | ||||||
|  | #include  <string.h> | ||||||
|  | #include  <ctype.h> | ||||||
|  | 
 | ||||||
|  | #include  "nclooper.h" | ||||||
|  | // #include  "files/smpllist.h"
 | ||||||
|  | // #include  "files/ffuncs.h"
 | ||||||
|  | 
 | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | 
 | ||||||
|  | int			verbosity; | ||||||
|  | 
 | ||||||
|  | SampleRef	the_samples[26]; | ||||||
|  | 
 | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | void help(int k) | ||||||
|  | { | ||||||
|  | puts("NcLooper : version pas finie..."); | ||||||
|  | exit(0); | ||||||
|  | } | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | 
 | ||||||
|  | int main(int argc, char *argv[]) | ||||||
|  | { | ||||||
|  | int			foo; | ||||||
|  | int			opt; | ||||||
|  | char			*listname = "samples.list"; | ||||||
|  | 
 | ||||||
|  | while ((opt = getopt(argc, argv, "hl:v")) != -1) { | ||||||
|  | 	switch(opt) { | ||||||
|  | 		case 'h':	help(0);			break; | ||||||
|  | 		case 'v':	verbosity++;			break; | ||||||
|  | 		case 'l':	listname = optarg;		break; | ||||||
|  | 		} | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | #if DEBUG_LEVEL | ||||||
|  | fprintf(stderr, "argc = %d, optind = %d\n", argc, optind); | ||||||
|  | #endif | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | foo = lecture_liste_des_samples(listname, the_samples); | ||||||
|  | fprintf(stderr,"retour lecture liste '%s' -> %d\n", listname, foo); | ||||||
|  | 
 | ||||||
|  | for (foo=0; foo<26; foo++) { | ||||||
|  | 	printf("%3d  %02x  %s\n", foo, the_samples[foo].key, | ||||||
|  | 					the_samples[foo].text); | ||||||
|  | 	} | ||||||
|  | 
 | ||||||
|  | return 0; | ||||||
|  | } | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | 
 | ||||||
							
								
								
									
										18
									
								
								nclooper.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										18
									
								
								nclooper.h
									
									
									
									
									
										Normal file
									
								
							| @ -0,0 +1,18 @@ | |||||||
|  | /*
 | ||||||
|  |  *		NcLooper | ||||||
|  |  */ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | /* two arbitrary magic number */ | ||||||
|  | #define   SZ_TEXT	20 | ||||||
|  | #define   SZ_PATH	400 | ||||||
|  | 
 | ||||||
|  | typedef struct	{ | ||||||
|  | 	char		key; | ||||||
|  | 	int		flags; | ||||||
|  | 	char		text[SZ_TEXT+1]; | ||||||
|  | 	char		path[SZ_PATH+1]; | ||||||
|  | 	} SampleRef; | ||||||
|  | 
 | ||||||
|  | #include  "files/smpllist.h" | ||||||
|  | #include  "files/ffuncs.h" | ||||||
							
								
								
									
										13
									
								
								ui/ncfuncs.c
									
									
									
									
									
								
							
							
						
						
									
										13
									
								
								ui/ncfuncs.c
									
									
									
									
									
								
							| @ -3,7 +3,7 @@ | |||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| #include  <curses.h> | #include  "ncfuncs.h" | ||||||
| 
 | 
 | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
| int init_ecran(char *txt) | int init_ecran(char *txt) | ||||||
| @ -11,7 +11,7 @@ int init_ecran(char *txt) | |||||||
| initscr(); | initscr(); | ||||||
| 
 | 
 | ||||||
| standout(); | standout(); | ||||||
| border('o', 'o', 'o', 'o', 'X', 'X', 'X', 'X'); | // border('o', 'o', 'o', 'o', 'X', 'X', 'X', 'X');
 | ||||||
| standend(); | standend(); | ||||||
| mvaddstr(1, 5, txt); | mvaddstr(1, 5, txt); | ||||||
| refresh(); | refresh(); | ||||||
| @ -27,3 +27,12 @@ endwin(); | |||||||
| return 0; | return 0; | ||||||
| } | } | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
|  | int idx2position(int idx, int *prow, int *pcol) | ||||||
|  | { | ||||||
|  | 
 | ||||||
|  | *prow = 6 + (idx % 13); | ||||||
|  | *pcol = 4 + (40*(idx/13)); | ||||||
|  | 
 | ||||||
|  | return 0; | ||||||
|  | } | ||||||
|  | /* --------------------------------------------------------------------- */ | ||||||
|  | |||||||
| @ -2,7 +2,10 @@ | |||||||
|  *	NcLooper--- interface curses, fonctions de base |  *	NcLooper--- interface curses, fonctions de base | ||||||
|  */ |  */ | ||||||
| 
 | 
 | ||||||
|  | #include  <curses.h> | ||||||
| 
 | 
 | ||||||
| int init_ecran(char *txt); | int init_ecran(char *txt); | ||||||
| int fin_ecran(void); | int fin_ecran(void); | ||||||
| 
 | 
 | ||||||
|  | int idx2position(int idx, int *prow, int *pcol); | ||||||
|  | 
 | ||||||
|  | |||||||
							
								
								
									
										20
									
								
								ui/t.c
									
									
									
									
									
								
							
							
						
						
									
										20
									
								
								ui/t.c
									
									
									
									
									
								
							| @ -6,24 +6,26 @@ | |||||||
| #include  <stdlib.h> | #include  <stdlib.h> | ||||||
| #include  <unistd.h> | #include  <unistd.h> | ||||||
| 
 | 
 | ||||||
|  | #include  "../nclooper.h" | ||||||
| #include  "ncfuncs.h" | #include  "ncfuncs.h" | ||||||
| 
 | 
 | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
|  | 
 | ||||||
| int			verbosity; | int			verbosity; | ||||||
| 
 | 
 | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
| void help(int k) | void help(int k) | ||||||
| { | { | ||||||
| puts("plop..."); | puts("test des fonctions de l'interface utilisateur"); | ||||||
| exit(0); | exit(0); | ||||||
| } | } | ||||||
| /* --------------------------------------------------------------------- */ | /* --------------------------------------------------------------------- */ | ||||||
| 
 | 
 | ||||||
| int main(int argc, char *argv[]) | int main(int argc, char *argv[]) | ||||||
| { | { | ||||||
| int			foo; | int			foo, idx; | ||||||
| int			opt; | int			opt; | ||||||
| 
 | int			row, col; | ||||||
| 
 | 
 | ||||||
| while ((opt = getopt(argc, argv, "hv")) != -1) { | while ((opt = getopt(argc, argv, "hv")) != -1) { | ||||||
| 	switch(opt) { | 	switch(opt) { | ||||||
| @ -37,9 +39,19 @@ fprintf(stderr, "argc = %d, optind = %d\n", argc, optind); | |||||||
| #endif | #endif | ||||||
| 
 | 
 | ||||||
| foo = init_ecran("* NcLooper *"); | foo = init_ecran("* NcLooper *"); | ||||||
| sleep(2); |  | ||||||
| 
 | 
 | ||||||
|  | for (idx=0; idx<26; idx++) { | ||||||
|  | 	foo = idx2position(idx, &row, &col); | ||||||
|  | 	standout(); | ||||||
|  | 	mvaddch(row, col,   '<'); | ||||||
|  | 	mvaddch(row, col+1, 'A' + idx); | ||||||
|  | 	mvaddch(row, col+2, '>'); | ||||||
|  | 	standend(); | ||||||
|  | 	mvaddstr(row, col+5, "bla bla bla..."); | ||||||
|  | 	} | ||||||
|  | 	refresh(); | ||||||
| 
 | 
 | ||||||
|  | sleep(3); | ||||||
| 
 | 
 | ||||||
| fin_ecran(); | fin_ecran(); | ||||||
| 
 | 
 | ||||||
|  | |||||||
		Loading…
	
		Reference in New Issue
	
	Block a user