diff -urN midi_prog-/Makefile midi_prog/Makefile --- midi_prog-/Makefile Sat Apr 5 22:00:00 2014 +++ midi_prog/Makefile Wed Apr 23 23:30:00 2014 @@ -1,7 +1,9 @@ -CC = gcc -Wall -LIB = -lm -TARG = prog31 +CC = gcc +LIB = -lm -lpthread -L../cui -lcui +TARG = prog32 OBJS = main.o vcf.o ch.o delay.o stat.o note.o env.o tone.o filter.o lfo.o modu.o vco.o wave.o out.o rd.o util.o +OBJS += pth.o +CFLAGS += -Wall -I.. all: $(TARG) diff -urN midi_prog-/main.c midi_prog/main.c --- midi_prog-/main.c Fri Apr 4 00:00:00 2014 +++ midi_prog/main.c Wed Apr 23 23:30:00 2014 @@ -4,6 +4,7 @@ #include "note.h" #include "stat.h" #include "ch.h" +#include "pth.h" static int header(void) @@ -73,6 +74,9 @@ struct out_rec otr; int tempo, tempo_delta_sum; double tempo_sec; + pthread_t pth; + + if(pthread_create(&pth, NULL, pth_func, av)) ERR("pthrad_create"); out_init(&otr, ac, av); note_buf_init(); diff -urN midi_prog-/pth.c midi_prog/pth.c --- midi_prog-/pth.c Thu Jan 1 09:00:00 1970 +++ midi_prog/pth.c Wed Apr 23 23:30:00 2014 @@ -0,0 +1,51 @@ +#include "pth.h" +#include "cui/cui.h" +#include "cui/scpanel.h" +#include "cui/button.h" +#include "cui/menu.h" +#include "cui/handler.h" +#include "tone.h" + +static int +hdr(cui obj, int evt, int val, void *prm) +{ + cui sheet = (cui)prm; + int n; + struct tone_compo_rec *tcr = tone_compo_get(0, 69, &n); + struct tone_rec *tr = tcr[0].tone; + cui wave1 = cui_index_to_child(sheet, 1); + cui wave2 = cui_index_to_child(sheet, 2); + if(wave1->flags & CUI_FLG_HIDE){ + cui_menu_popup_vp_set(wave1, &tr->vco.wave1); + cui_show(wave1); + cui_menu_popup_vp_set(wave2, &tr->vco.wave2); + cui_show(wave2); + } + return TRUE; +} + +void * +pth_func(void *arg) +{ + char **av = (char **)arg; + int init_ret = cui_init(av); + + cui root = cui_scpanel_new(NULL, 0, 0, 20, 8, "cui_tone"); + cui sheet = cui_scpanel_sheet_get(root); + cui update = cui_button_new(sheet, 0, 0, "update"); + char *lst[] = { "sin", "saw", "square", "noise", NULL }; + cui wave1 = cui_menu_popup_new(sheet, 0, 1, 6+1, lst, 0); + cui wave2 = cui_menu_popup_new(sheet, 0, 2, 6+1, lst, 0); + + cui_hide(wave1); + cui_hide(wave2); + cui_bind(update, CUI_EVT_BUTTON, hdr, sheet); + cui_wh_fit(sheet); + + cui_main(root, NULL); + + cui_fini(init_ret); + return NULL; +} + +/* EOF */ diff -urN midi_prog-/pth.h midi_prog/pth.h --- midi_prog-/pth.h Thu Jan 1 09:00:00 1970 +++ midi_prog/pth.h Wed Apr 23 23:30:00 2014 @@ -0,0 +1,8 @@ +#ifndef __PTH_H__ +#define __PTH_H__ + +#include + +void *pth_func(void *arg); + +#endif