diff -urN midi_prog-/Makefile midi_prog/Makefile --- midi_prog-/Makefile 2014-04-24 01:00:00.000000000 +0900 +++ midi_prog/Makefile 2014-04-24 23:00:00.000000000 +0900 @@ -1,8 +1,8 @@ CC = gcc LIB = -lm -lpthread -L../cui -lcui -TARG = prog33 +TARG = prog34 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 +OBJS += cui_tone.o CFLAGS += -Wall -I.. all: $(TARG) diff -urN midi_prog-/cui_tone.c midi_prog/cui_tone.c --- midi_prog-/cui_tone.c 1970-01-01 09:00:00.000000000 +0900 +++ midi_prog/cui_tone.c 2014-04-24 23:00:00.000000000 +0900 @@ -0,0 +1,65 @@ +#include "cui_tone.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 +ch_hdr(cui ch, int evt, int val, void *prm) +{ + /* CUI_EVT_BUTTON */ + + cui sheet = (cui)prm; + cui bs_ch = cui_name_child(sheet, "bs_ch"); + cui wave1 = cui_name_child(bs_ch, "wave1"); + cui wave2 = cui_name_child(bs_ch, "wave2"); + int n; + struct tone_compo_rec *tcr = tone_compo_get(val, -1, &n); + struct tone_rec *tr; + + cui_show_hide(bs_ch, tcr != NULL); + if(tcr == NULL) return TRUE; + + tr = tcr[0].tone; + cui_menu_popup_vp_set(wave1, &tr->vco.wave1); + cui_menu_popup_vp_set(wave2, &tr->vco.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 ch = cui_menu_int_new(NULL, 0, 0, 2+1, 0, 0, 15); + cui dmy1 = cui_wlb_new(sheet, 0, 0, "ch ", ch, NULL); + + cui bs_ch = cui_base_new(sheet, 0, CUI_CHILD_Y2+1, 0, 0); + char *lst[] = { "sin", "saw", "square", "noise", NULL }; + + bs_ch->name = "bs_ch"; + cui_menu_popup_new(bs_ch, 0, 0, -1, lst, 0)->name = "wave1"; + cui_menu_popup_new(bs_ch, 0, CUI_CHILD_Y2, -1, lst, 0)->name = "wave2"; + + cui_hide(bs_ch); + cui_wh_fit(bs_ch); + cui_wh_fit(sheet); + + cui_bind(ch, CUI_EVT_BUTTON, ch_hdr, sheet); + cui_handler_call(ch, CUI_EVT_BUTTON, 0); + + cui_main(root, NULL); + + dmy1 = NULL; + cui_fini(init_ret); + return NULL; +} + +/* EOF */ diff -urN midi_prog-/cui_tone.h midi_prog/cui_tone.h --- midi_prog-/cui_tone.h 1970-01-01 09:00:00.000000000 +0900 +++ midi_prog/cui_tone.h 2014-04-24 23:00:00.000000000 +0900 @@ -0,0 +1,8 @@ +#ifndef __CUI_TONE_H__ +#define __CUI_TONE_H__ + +#include + +void *pth_func(void *arg); + +#endif diff -urN midi_prog-/main.c midi_prog/main.c --- midi_prog-/main.c 2014-04-24 01:00:00.000000000 +0900 +++ midi_prog/main.c 2014-04-24 23:00:00.000000000 +0900 @@ -4,7 +4,7 @@ #include "note.h" #include "stat.h" #include "ch.h" -#include "pth.h" +#include "cui_tone.h" static int header(void) diff -urN midi_prog-/pth.c midi_prog/pth.c --- midi_prog-/pth.c 2014-04-24 01:00:00.000000000 +0900 +++ midi_prog/pth.c 1970-01-01 09:00:00.000000000 +0900 @@ -1,60 +0,0 @@ -#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 ch, int evt, int val, void *prm) -{ - /* CUI_EVT_BUTTON */ - - cui sheet = (cui)prm; - cui bs_ch = cui_index_to_child(sheet, 2); - cui wave1 = cui_index_to_child(bs_ch, 0); - cui wave2 = cui_index_to_child(bs_ch, 1); - int n; - struct tone_compo_rec *tcr = tone_compo_get(val, -1, &n); - struct tone_rec *tr; - - cui_show_hide(bs_ch, tcr != NULL); - if(tcr == NULL) return TRUE; - - tr = tcr[0].tone; - cui_menu_popup_vp_set(wave1, &tr->vco.wave1); - cui_menu_popup_vp_set(wave2, &tr->vco.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 lb = cui_label_new(sheet, 0, 0, "ch"); - cui ch = cui_menu_int_new(sheet, cui_x2(lb)+1, lb->y, 2+1, 0, 0, 15); - - cui bs_ch = cui_base_new(sheet, 0, cui_y2(ch)+1, 0, 0); - char *lst[] = { "sin", "saw", "square", "noise", NULL }; - - cui_menu_popup_new(bs_ch, 0, 0, 6+1, lst, 0); - cui_menu_popup_new(bs_ch, 0, 1, 6+1, lst, 0); - - cui_hide(bs_ch); - cui_wh_fit(bs_ch); - cui_wh_fit(sheet); - cui_bind(ch, CUI_EVT_BUTTON, hdr, sheet); - cui_handler_call(ch, CUI_EVT_BUTTON, 0); - - 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 2014-04-23 23:30:00.000000000 +0900 +++ midi_prog/pth.h 1970-01-01 09:00:00.000000000 +0900 @@ -1,8 +0,0 @@ -#ifndef __PTH_H__ -#define __PTH_H__ - -#include - -void *pth_func(void *arg); - -#endif