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