struct化の方法は

まずはすべての関数の変数にtmdy_struct_ex_t *timdy_struct を付け足し動くようにする。
MUTEXの宣言をtimdy_struct.hに入れる。

1)xxxx.hの　関数宣言を　xxxx_prv.hにコピーする。
2)xxxx.hの　関数宣言と変数宣言を全部構造体xxxx_ext_tにいれる。timidity_mainにはbusyもいれる。
3)xxxx.cでxxxx_prv.hをインクルードしたあと変数や関数のアクセスを書き換える。
3)xxxx.cの　中にコンストラクタ　デストラクタを作る。
4)xxxx.cの　コンストラクタ　デストラクタを　xxxx.hに宣言する。
5)timidity.cのnew_tmdy_struct destroy_tmdy_structに　new_xxxx destroy_xxxxxを付け足す。
6)tmdy_struct.hのtimidity_struct_tに　xxxx_ex_t * xxxxxの行を付け足す
7)外部からxxxx.hの関数や変数を参照してるところを書き換える。
こんな感じかな

関数をtmdy_structつきで呼ぶようにする。
関数を構造体にいれて使えるようにする
変数を構造体にいれて使えるようにする
という３段階で作業するといいようだ。

<tmdy_struct>
<timidy_main>
effect.c  変数　effect_lr_mode effect_lr_delay_msec
playmidi.c　変数 free_instruments_afterwards
w32_a.c  変数	critSect
w32g_a.c  変数	critSect
mac_main.c 関数　timidity_start_initialize　timidity_pre_load_configuration　timidity_post_load_configuration
　timidity_init_player　timidity_play_main　timidity_init_aq_buff

<output.h>
playmidi.c 変数　play_mode target_playmode
effect.c 変数　play_mode
timidity.c 変数　play_mode play_mode_list
plugin_c.c 変数　lay_mode
aq.c 変数　playmode
common.c 変数　playmode
instrum.c 変数　playmode
list_a.c 変数　playmode
m2m.c 変数　playmode
mix.c 変数　playmode
miditrace.c 変数　playmode
mod2midi.c 変数　playmode
quantity.c 変数　playmode
readmidi.c 変数　playmode
dumb_c.o 変数　playmode
rtsyn_common.o 変数　playmode
sndfont.o 変数　playmode
reverb.o 変数　playmode
smplfile.o 変数　playmode
resample.o 変数　playmode
recache.o 変数　playmode
aq.c 関数　general_output_convert
gogo_a.c　関数　create_auto_output_name
vorbis_a.c　関数　create_auto_output_name
wave_a.c:　関数　create_auto_output_name
sun_a.c　関数　output_encoding_string
w32g_a.c:　関数　output_encoding_string
aRts_a.c　関数validate_encoding
aiff_a.c　関数validate_encoding
au_a.c　関数validate_encoding
esd_a.c　関数validate_encoding
gogo_a.c関数validate_encoding
mac_a.c　関数validate_encoding
nas_a.c　関数validate_encoding
oss_a.c　関数validate_encoding
raw_a.c　関数validate_encoding
sun_a.c　関数validate_encoding
vorbis_a.c　関数validate_encoding
wave_a.c　関数validate_encoding　create_auto_output_name

mac_main.c　open_output close_output acntl
timidity.c　open_output close_output detect
common.c    close_output acntl
aq.c		output_data acntl
playmidi.c  acntl
rtsyn_common.c open_output close_output

<aq.h aq.c effect.c>
timidity.c 関数aq_calc_fragsize　aq_setup aq_set_soft_queue　aq_flush　aq_get_dev_queuesize noise_sharp_type
mac_main.c 関数aq_setup
playmidi.c 関数aq_setup aq_set_soft_queue aq_add　aq_filled　aq_flush　aq_soft_flush　aq_get_dev_queuesize
　　　　　変数　aq_fill_buffer_flag
miditrace.c 関数aq_samples
w32g_c.c 関数aq_setup　aq_filled　aq_flush　aq_get_dev_queuesize
alsaseq_c.c　関数aq_set_soft_queue　aq_flush　aq_fill_nonblocking
rtsyn_common.c　関数aq_set_soft_queue　aq_flush　aq_fill_nonblocking
server_c.c　関数aq_set_soft_queue　aq_add　aq_samples　aq_filled　aq_flush　aq_soft_flush　aq_get_dev_queuesize
　　　　　　変数aq_fill_buffer_flag
mac_trace.c　関数aq_filled_ratio
ncurs_c.c　関数aq_filled　aq_flush　aq_get_dev_queuesize
wrdt_mac.c　関数aq_filled_ratio
x_sherry.c　関数aq_filled_ratio
x_wrdwindow.c　関数aq_filled

<controls.c>多すぎるのでシンプルなCUI版にいるもののみ修正した。
timidity.c 変数　ctl　ctl_list
aiff_a.c 変数　ctl
aq.o 変数　ctl
au_a.c 変数　ctl
common.c 変数　ctl
filter.c 変数　ctl
instrum.c 変数　ctl
list_a.c 変数　ctl
loadtab.c 　ctl
m2m.c 　ctl
mfi.c 　ctl
miditrace.c 変数　ctl
mod2midi.c  変数　ctl
output.c  変数　ctl
playmidi.c  変数　ctl
quantity.c 変数　ctl
raw_a.c 変数　ctl
rcp.c 変数　ctl
readmidi.o 変数　ctl
recache.c  変数　ctl
resample.c  変数　ctl
sffile.c  変数　ctl
smplfile.c 変数　ctl
sndfont.c 変数　ctl
wave_a.c 変数　ctl
wrd_read.c 変数　ctl
w32_a.c 変数　ctl

wrdt_dumb.c　変数　ctl
wrdt_tty.c
rtsyn_common.c
rtsyn_winmm.c
wrdt_wcon.c

->open
timidity.c

ctl->close
audriv_a.c
common.c
hpux_a.c
mac_main.c
timidity.c

->pass_playing_list
timidity.c

->event
mac_qt_a.c
mac_soundspec.c
playmidi.c

->cmsg(多すぎるのでシンプルなCUI版で生成されたやつ全部しらべた）
aiff_a.o
aq.o
au_a.o
common.o
filter.o
instrum.o
list_a.o
loadtab.o
m2m.o
mfi.o
mod2midi.o
output.o
playmidi.o
quantity.o
raw_a.o
rcp.o
readmidi.o
recache.o
resample.o
sffile.o
smfconv.o
smplfile.o
sndfont.o
timidity.o
w32_a.o
wave_a.o
wrd_read.o


../interface/rtsyn_common.o
../interface/rtsyn_winmm.o
../interface/winsyn_c.o
../interface/wrdt_dumb.o
../interface/wrdt_tty.o
../interface/wrdt_wcon.o


<instrum.h instrum.c sndfont.c smplfile.c>面倒なのでGUI用のみ修正
m2m.c 変数　special_patch
mod.c 変数　special_patch
mod3midi.c 変数　special_patch　fast_decay　antialiasing_allowed
playmidi.c　変数tonebank　special_patch　default_program　drumset　default_instrument　tonebank
　　　　　　関数load_missing_instruments free_special_patch clear_magic_instruments load_instrument
　　　　　　instrument_map 
readmidi.c　変数tonebank　drumset　default_program
　　　　　　関数add_altassign_string　alloc_instrument_bank
timidity.c　変数　special_patch　default_program　modify_release　fast_decay　default_instrument　
antialiasing_allowed　tonebank　drumset　progbase　default_instrument_name'
timidity.c　関数add_altassign_string add_soundfont remove_soundfont　init_load_soundfont exclude_soundfont
               order_soundfont free_instruments set_default_instrument alloc_instrument_bank set_instrument_map
               find_altassign
smplfile.c　変数antialiasing_allowed　fast_decay
　　　　　　関数smplfile.c
mfnode.c 変数tonebank special_patch
mac_dlog.c 変数　antialiasing_allowed　fast_decay　free_instruments_afterwards


ncurs_c.c　変数tonebank default_instrument_name
 　　　　　関数soundfont_preset_name　
vt100_c.c default_instrument_name
w32g_ini.cw32g_pref.c　変数
w32g_utl.c　変数　default_program　antialiasing_allowed server_c.c 変数　free_instruments_afterward　modify_release
w32g_pref.c　関数　free_instruments　free_instrument_map
xaw_c.c　変数tonebank　
server_c.c 変数　free_instruments_afterwards
　　　　　関数　free_instruments
alsaseq_c.c 変数　free_instruments_afterwards   
　　　　　　関数　free_instruments
emacs_c.c 変数　progbase
mac_trace.c progbase
slang_c.c progbase
ncurs_c.c progbase
tk_c.c: progbase
vt100_c.c: progbase
w32g_c.c: progbase
xaw_c.c: progbase
rtsyn_common 関数　free_instruments

<resample.h resample.c>
timidity.c　関数　get_current_resampler　set_current_resampler
recache.c　　do_resamplation
mix.c　　　　resample_voice
instrum.c:　　pre_resample
smplfile.c:　　pre_resample
sndfont.c:　　pre_resample

<readmidi.h readmidi.c rcp.c smfconv.c mfi.c>
instrum.c 関数　recompute_userdrum　recompute_userinst
list_a.c　関数　change_system_mode
m2m.c　　　関数　change_system_mode
mfi.c　　　関数　readmidi_add_event　readmidi_set_track
mod2midi.c　関数　readmidi_add_event　readmidi_set_track
playmidi.c　関数　init_channel_layer　get_default_mapID　recompute_eq_status　set_reverb_macro
　recompute_reverb_status　set_chorus_macro　recompute_chorus_status　set_delay_macro　recompute_delay_status
　set_insertion_effect_default_parameter　recompute_insertion_effect　remove_channel_layer　
　add_channel_layer　change_system_mode　open_midi_file　read_midi_file　get_midi_file_info　event2string
rcp.c　　　関数　readmidi_add_event　parse_sysex_event　parse_sysex_event_multi　readmidi_set_track
　　　　　　readmidi_add_ctl_event　readmidi_make_string_event
timidity.c　関数　free_all_midi_file_info　free_userdrum　free_userinst
wrd_read.c　関数　dump_current_timesig　readmidi_add_event　readmidi_make_string_event　readmidi_set_track

（interfaceは単純CUIに関係するもののみ）
関数
dumb_c.c　関数　event2string
wrdt_dumb.c　関数　event2string
wrdt_tty.c:　関数　event2string
rtsyn_common.c　関数　parse_sysex_event　parse_sysex_event_multi　change_system_mode　convert_midi_control_change
rtsyn_winmm.c　関数　change_system_mode　
wrdt_wcon.c　関数　event2string
変数
timidity.c　　quietchannels　opt_trace_text_meta_event　opt_default_mid　opt_system_mid　tempo_adjust
aiff_a.c　変数　current_file_info
au_a.c　変数　current_file_info
gogo_a.c　変数　current_file_info
list_a.c　変数　current_file_info
m2m.c　変数　current_file_info
mfi.c　変数　current_file_info
mod.c　変数　current_file_info
mod2midi.c　変数　current_file_info
playmidi.c　変数　current_file_info　readmidi_wrd_mode　play_system_mode
raw_a.c　変数　current_file_info
rcp.c　変数　current_file_info　opt_trace_text_meta_event　ignore_midi_error　readmidi_error_flag
vorbis_a.c　変数　current_file_info
wave_a.c　変数　current_file_info
wrd_read.c　変数　current_file_info　readmidi_error_flag
wrdt.c　変数　current_file_info
mac_dlog.c　変数　opt_trace_text_meta_event　opt_default_mid　readmidi_wrd_mode
instrum.c　変数　play_system_mode；
mac_qt_a.c　変数　play_system_mode；
reverb.c　変数　play_system_mode；

rtsyn_common.c 変数　quietchannels

<playmidi.h playmidi.c>
aq.c  　　　　関数check_apply_control　
instrum.c　　関数check_apply_control
list_a.c　　　関数midi_program_change
miditrace.c　関数ctl_mode_event　
mix.c　　　　関数　recompute_freq　ctl_note_event　recompute_voice_filter　free_voice　
readmidi.c　　関数　midi_drumpart_change　free_tone_bank_element　dup_tone_bank_element　play_midi_setup_drums
timidity.c　　関数　play_midi_load_instrument
rtsyn_common.c　関数　play_event　playmidi_stream_init　（ctll_pass_playing_list）
dumb_c.c　　　関数　dumb_pass_playing_list　

effect.c　　変数　opt_chorus_control
instrum.c　　変数　control_ratio　
mix.c　　　変数　voice　opt_modulation_envelope　control_ratio　channel　
mod2midi　　変数　control_ratio　
quantity.c　変数　control_ratio　
readmidi.c　変数　channel　default_drumchannels　default_drumchannel_mask　drumchannels　drumchannel_mask　special_tonebank　default_tonebank
recache.c　変数　channel
resample.c　変数　voice　reduce_quality_flag
smplfile.c　変数　control_ratio　
sndfont.c　変数　control_ratio　opt_lpf_def　opt_modulation_envelope　
timidity.o
　変数　
opt_amp_compensation
opt_drum_power
opt_modulation_wheel
opt_portamento
opt_nrpn_vibrato
opt_channel_pressure
opt_lpf_def
opt_modulation_envelope
opt_overlap_voice_allow
opt_temper_control
opt_lpf_def
opt_overlap_voice_allow
opt_chorus_control
opt_surround_chorus
opt_force_keysig
opt_realtime_playing
opt_pure_intonation
opt_init_keysig
opt_reverb_control
control_ratio
adjust_panning_immediately
auto_reduce_polyphony
amplification
key_adjust
reduce_voice_threshold
no_4point_interpolation
voices
channel
temper_type_mute
default_tonebank
special_tonebank
drumchannels
default_drumchannels
drumchannel_mask
default_drumchannel_mask
parse_tmdy_struct
rtsyn_common.c 　変数　opt_realtime_playing　auto_reduce_polyphony　current_keysig　current_temper_keysig
　　　　　　opt_init_keysig　note_key_offset　opt_force_keysig　current_freq_table　reduce_voice_threshold
　　　　　　upper_voices　current_sample
　　　　　　
reverb.c　　opt_reverb_control 
effect.c　　opt_reverb_control
miditrace.c　current_sample
list_a.c　　channel

＜common.h common.c loadtab.c >
aiff_a.c 　　関数　safe_malloc
aq.c 　　関数　safe_malloc
au_a.c 　　関数　safe_malloc
filter.c　関数　safe_malloc
freq.c　関数　safe_malloc safe_realloc
instrum.c　関数　safe_malloc safe_strdup close_file tf_read open_file skip
m2m.c  　関数 safe_realloc
mfi.c　関数　tf_read tf_read safe_malloc
mod.c　関数　safe_malloc check_file_extension
mod2midi.c　関数　safe_strdup code_convert safe_malloc
output.c　関数　safe_malloc
playmidi.c　関数　safe_malloc safe_strdup close_file open_file tf_read int_rand  free_ptr_list

raw_a.c:　関数　safe_malloc
rcp.c　関数　tf_seek tf_tell code_convert tf_read skip safe_strdup check_file_extension
readmidi.c　関数　safe_malloc safe_strdup close_file tf_read skip open_file tf_seek tf_tell 
　　　　　　　　　code_convert open_with_mem
recache.c　関数　safe_large_malloc
resample.c　関数　safe_malloc　safe_realloc
reverb.c　関数　safe_malloc
sffile.c　関数　safe_malloc　tf_read　skip　tf_tell
smplfile.c　関数　tf_read　tf_seek　safe_malloc　tf_tell　close_file　open_file　pathsep_strrchr
sndfont.c　関数　　tf_read　tf_seek　safe_malloc　close_file　open_file

timidity.c　関数　　safe_malloc　expand_file_archives　pathsep_strrchr　sort_pathname　randomize_string_list
　　　　　　　　　int_rand　safe_strdup　safe_exit
　　　　　　　　　load_table　add_to_pathlist　str2mID　clean_up_pathlist　free_ptr_list　close_file　open_file
　　　　　　　　　tf_gets　open_with_mem
wrd_read.c　関数　tf_gets　close_file　open_file　safe_strdup
wrdt.c　関数　open_file　pathsep_strrchr
w32_a.c　関数　　safe_malloc
interface/wrdt_dumb.c　関数　　code_convert
interface/wrdt_tty.c　関数　　code_convert
interface/wrdt_wcon.c　関数　　code_convert
utils/bitset.c 　関数　　safe_malloc
utils/mblock.c　関数　　safe_malloc
utils/nkflib.c　関数　　safe_malloc
utils/strtab.c　関数　　safe_malloc
libarc/arc.c　safe_malloc safe_realloc safe_strdup
libarc/deflate.c　関数　　safe_malloc
libarc/url.c　関数　safe_malloc safe_realloc
libarc/url_dir.c　関数　safe_strdup pathsep_strrchr

sndfont.c　変数　timidity_version
timidity.c　変数　timidity_version　program_name　output_text_code open_file_noise_mode
rcp.c　変数　tmpbuffer
readmidi.c　変数　tmpbuffer　current_filename note_name
sffile.c　変数　current_filename
mfi.c　変数　note_name
instrum.c　変数　note_name
resample.c　変数　note_name
wrdt_dumb.c　変数　tmpbuffer
<version.c>そのままでいく

<filter.c filter.h>     
instrum.c　関数　antialiasing
mod2midi.c　関数　antialiasing
smplfile.c　関数　antialiasing
sndfont.c　関数　antialiasing

＜mix.c mix.h>
playmidi.c　関数　mix_voice　apply_envelope_to_amp　apply_modulation_envelope
　recompute_envelope　recompute_modulation_envelope
timidity.c　変数　min_sustain_time

<sffile.c　sffile.h>
sndfont.c　load_soundfont　correct_samples　free_soundfont

<freq.c　freq.h>
m2m.c　関数　freq_fourier assign_pitch_to_freq
m2m.c　変数　chord_table pitch_freq_table 
playmidi.c 　変数　pitch_freq_table




<w32_a.h w32_a.c>　外部から呼び出されない
<aiff_a.h aiff_a.c>　外部から呼び出されない
<au_a.h au_a.c> 　外部から呼び出されない
<list_a.h list_a.c>　外部から呼び出されない
<modmid_a.h modmid_a.c> 　外部から呼び出されない
<raw_a.h raw_a.c>　外部から呼び出されない
<wave_a.h wave_a.c>　外部から呼び出されない

<dumb_c.c>外部から呼ばれない
<winsyn_c.c>外部から呼ばれない
<wrdt_wcon.c>外部から呼ばれない
<wrdt_dumb.c>外部から呼ばれない
<wrdt_tty.c>外部から呼ばれない

<optcode.c>そのまま
<tables.c>そのまま
<sfitem.c sfitem.h>そのまま
<audio_cnv.c audio_cnv.h>そのまま
<mt19937ar.c mt19937ar.h>そのまま
<sbkconv.c>  そのまま

<mod.c mod.h>
readmidi.c  　関数　get_module_title get_module_type load_module_file

<mod2midi.c mod2midi.h>
 mod.c　関数　Voice_EndPlaying Voice_TickDone Voice_NewTempo Voice_StartPlaying Voice_Stopped Voice_Play
  Voice_SetPeriod Voice_SetPanning Voice_SetVolume Voice_Stop load_module_samples

<m2m.c m2m.h>
playmidi.c　関数　convert_mod_to_midi_file

<miditrace.c miditrace.h>
aq.c 　関数　trace_loop trace_flush trace_wait_samples
playmidi.c　関数　push_midi_trace_ce push_midi_trace1 push_midi_trace2 trace_flush current_trace_samples
       trace_offset

<word.h wrd_read.c wrdt.c>
miditrace.c 　関数　wrd_midi_event
playmidi.c　　関数　wrd_midi_event　wrd_sherry_event　
wrd_read.c　　関数　wrd_add_default_path　wrd_init_path
<wrd_read.c word.h>
readmidi.c 　関数　import_wrd_file
timidity.c 　変数　wrd_read_opts　wrdt_list　wrdt
common.c 　変数　wrdt
playmidi.c　変数　wrdt
readmidi.c　変数　wrdt
interface/dumb_c.c　変数　wrdt
interface/wrdt_tty.c　変数　wrd_color_remap

<recache.c recache.h>
playmidi.c 　関数　resamp_cache_refer_alloff resamp_cache_refer_off resamp_cache_create resamp_cache_refer_on
 resamp_cache_reset resamp_cache_fetch 
timidity.c　関数　resamp_cache_reset
playmidi.c 　変数　allocate_cache_size
timidity.c　変数　allocate_cache_size
interface/rtsyn_common.c　変数　allocate_cache_size

<quantity.c quantity.h>
instrum.c　関数　quantity_to_int
timidity.c　関数　string_to_quantity

<reverb.c reverb.h>
effect.c　関数　init_reverb init_ch_delay init_ch_chorus init_eq init_insertion_effect do_mono_reverb
                  set_dry_signal set_ch_chorus set_ch_reverb mix_dry_signal do_ch_chorus do_ch_reverb
                  
playmidi.c　関数　init_reverb init_ch_chorus init_chorus_lfo init_ch_delay reverb_rc_event do_insertion_effect
     set_ch_chorus set_ch_delay set_ch_reverb set_ch_eq set_dry_signal mix_dry_signal do_ch_eq do_ch_chorus
     do_ch_delay do_ch_reverb
     
readmidi.c　関数　calc_highshelf_coefs init_reverb init_chorus_lfo calc_lowshelf_coefs free_effect_list
      push_effect
timidity.c　関数　free_effect_buffers
playmidi.c　変数　eq_status　delay_status　reverb_status　chorus_param
readmidi.c　変数　chorus_status　reverb_status　chorus_param　delay_status　eq_status

<rtsyn.h rtsyn_common.c rtsyn_winmm.c  >
winsyn_c.c　関数　 rtsyn_init rtsyn_get_port_list rtsyn_synth_start rtsyn_synth_stop rtsyn_close rtsyn_gm_reset
    rtsyn_gs_reset rtsyn_xg_reset rtsyn_normal_reset rtsyn_gm_modeset rtsyn_gs_modeset rtsyn_xg_modeset 
    rtsyn_normal_modeset rtsyn_play_some_data rtsyn_play_calculate



<<utilsも構造体化した>>
まず utils_export.c utils_export.hを書いて土台となる構造体とする。
<utils_export.c utils_export.h>

<tmdy_getopt.h getopt.c>tmdy_structをつけて呼んではまずい。
<readdir.h readdir_win.c>mdy_structをつけて呼んではまずい
<support.h support.c>そのままでいける。
<mac_util.h mac_util.c>そのままでいける
<mac_readdir.h mac_readdir.c>そのままでいける

<bitset.h bitset.c>

<memb.h memb.c>
libarc/url_cache.c　関数　init_memb read_memb delete_memb push_memb rewind_memb skip_read_memb
readmidi.c　関数　init_memb push_memb rewind_memb read_memb delete_memb

<mblock.h mblock.c>
libarc/arc.c　関数　new_segment reuse_mblock free_global_mblock
libarc/arc_mime.c　関数　init_mblock strdup_mblock reuse_mblock new_segment
libarc/explode.c　関数　init_mblock
libarc/inflate.c　関数　new_segment reuse_mblock init_mblock
utils/memb.c　関数　new_segment reuse_mblock
utils/strtab.c　関数　new_segment reuse_mblock
common.c　関数　init_mblock
miditrace.c　関数　new_segment reuse_mblock init_mblock
playmidi.c　関数　new_segment reuse_mblock init_mblock free_global_mblock
rcp.c　関数　new_segment reuse_mblock init_mblock
readmidi.c　関数　new_segment reuse_mblock init_mblock
recache.c　関数　new_segment reuse_mblock init_mblock
sndfont.c　関数　new_segment reuse_mblock init_mblock strdup_mblock
timidity.c　関数　free_global_mblock
wrd_read.c　関数　new_segment reuse_mblock init_mblock
wrdt.c　関数　new_segment reuse_mblock init_mblock
interface/wrdt_dumb.c　関数　new_segment reuse_mblock
interface/wrdt_tty.c　関数　new_segment reuse_mblock
interface/rtsyn_common.c　関数　free_global_mblock
interface/wrdt_wcon.c　関数　new_segment reuse_mblock

<strtab.h strtab.c>
libarc/arc.c　関数　put_string_table init_string_table make_string_array delete_string_table
common.c　関数　put_string_table init_string_table make_string_array
readmidi.c　関数　put_string_table init_string_table make_string_array delete_string_table
timidity.c　関数　put_string_table init_string_table make_string_array
wrdt.c　関数　put_string_table  delete_string_table

<timer.h timer.c>
aq.c　関数　get_current_calender_time
interface/rtsyn_common.c　関数　get_current_calender_time
interface/rtsyn_winmm.c　関数　get_current_calender_time

<fft.h fft.c>

<fft4g.h fft4g.c>
freq.c　関数　rdft

<nkflib.h nkflib.c>
common.c　関数　nkf_convert

<net.h net.c>

<<libunimodも構造体化した>>
unimod_export.cを書いた。
変数をぬきだすのが大変だったのでグローバル関数全部にmutexをかけた。
<unimod.h  unimod_priv.h load_669.c load_amf.c load_dsm.c load_far.c load_gdm.c load_imf.c load_it.c load_m15.c
load_med.c load_mod.c load_mtm.c load_okt.c load_s3m.c load_stm.c load_stx.c load_ult.c  load_uni.c load_xm.c
mmsup.c  munitrk.c mloader.c mlutil.c >
(libunimod を呼んでるファイル)
mod.c　関数　ML_RegisterAllLoaders ML_Load ML_Free ML_LoadTitle getlinearperiod getlogperiod
getoldperiod UniGetByte UniGetWord UniSkipOpcode getAmigaPeriod UniFindRow UniSetRow
timidity.c　関数　ML_RegisterAllLoaders

<<libarcも構造体化した>>
まず arc_export.c arc_export.hを書いて土台となる構造体とする。
<arc_export.c arc_export.h>

<zip.h deflate.c inflate.c>
readmidi.c 　関数　open_deflate_handler zip_deflate close_deflate_handler

<explode.h explode.c>

<unlzh.h unlzh.c>
変数をぬきだすのが大変だったのでグローバル関数全部にmutexをかけた。

<url.h url.c url_dir.c url_http.c url_newsgroup.c url_b64decode.c url_file.c url_inflate.c  url_pipe.c url_buff.c url_ftp.c url_mem.c url_qsdecode.c url_cache.c url_hqxdecode.c url_news.c url_uudecode.c>
変数をぬきだすのが大変だったのでグローバル関数全部にmutexをかけた。
arc.c 　関数　url_mem_open url_inflate_open url_cache_open url_open url_expand_home_dir url_dir_open url_file_open 
arc.c 　変数　url_errno
arc_mime.c　関数　url_dump url_mem_open url_gets url_uudecode_open url_b64decode_open url_hqxdecode_open url_qsdecode_open
memb.c 　変数　url_errno
common.c 　関数　url_read  url_open url_cache_open url_cache_disable
 url_inflate_open url_rewind url_close url_pipe_open url_mem_open url_unexpand_home_dir
 url_skip url_gets url_nread url_seek url_tell
common.h 　関数　url_getc
rcp.c 　関数　url_cache_open
readmidi.c 　関数　url_cache_open url_rewind url_cache_disable url_expand_home_dir url_inflate_open url_nread 
 url_check_type 
sndfont.c 　関数　url_expand_home_dir url_unexpand_home_dir url_cache_open
sndfont.c　変数　URL_module_file URL_module_dir URL_module_ftp URL_module_news URL_module_newsgroup URL_module_pipe URL_module_http
timidity.c 　関数　url_expand_home_dir url_add_module 
timidity.c　変数　uudecode_unquote_html URL_module_file URL_module_dir URL_module_ftp URL_module_news URL_module_newsgroup URL_module_pipe URL_module_http
libunimod/unimod_priv.h 　関数　 url_nread url_seek url_getc url_tell 
libunimod/mmsup.c　関数　url_nread

<arc.h arc.c arc_lzh.c arc_mime.c arc_tar.c arc_zip.c deflate.c>
変数をぬきだすのが大変だったのでグローバル関数全部にmutexをかけた。
common.c 　関数　url_arc_open skip_gzip_header expand_archive_names 
timidity.c 　関数　free_archive_files
timidity.c 　変数　arc_error_handler
wrdt.c 　関数　get_archive_type

ーーーーーーーー結局作った構造体はーーーーーーーーーー

<tmdy_struct>
<timidy_main>
<output.h>
<aq.h aq.c effect.c>
<controls.c>
<instrum.h instrum.c sndfont.c smplfile.c>面倒なのでGUI用のみ修正
<resample.h resample.c>
<readmidi.h readmidi.c rcp.c smfconv.c mfi.c>
<playmidi.h playmidi.c>
＜common.h common.c loadtab.c >
＜mix.c mix.h>
<sffile.c　sffile.h>
<freq.c　freq.h>
<mod.c mod.h>
<m2m.c m2m.h>
<miditrace.c miditrace.h>
<word.h wrd_read.c wrdt.c>
<recache.c recache.h>
<quantity.c quantity.h>
<reverb.c reverb.h>
<rtsyn.h rtsyn_common.c rtsyn_winmm.c  >

<w32_a.h w32_a.c>　外部から呼び出されない
<aiff_a.h aiff_a.c>　外部から呼び出されない
<au_a.h au_a.c> 　外部から呼び出されない
<list_a.h list_a.c>　外部から呼び出されない
<modmid_a.h modmid_a.c> 　外部から呼び出されない
<raw_a.h raw_a.c>　外部から呼び出されない
<wave_a.h wave_a.c>　外部から呼び出されない
<dumb_c.c>外部から呼ばれない
<winsyn_c.c>外部から呼ばれない
<wrdt_wcon.c>外部から呼ばれない
<wrdt_dumb.c>外部から呼ばれない
<wrdt_tty.c>外部から呼ばれない
<optcode.c>そのまま
<tables.c>そのまま
<sfitem.c sfitem.h>そのまま
<audio_cnv.c audio_cnv.h>そのまま
<mt19937ar.c mt19937ar.h>そのまま
<sbkconv.c>  そのまま

<<utilの中身>>
<utils_export.c utils_export.h>
<bitset.h bitset.c>
<memb.h memb.c>
<mblock.h mblock.c>
<strtab.h strtab.c>
<timer.h timer.c>
<fft.h fft.c>
<fft4g.h fft4g.c>
<nkflib.h nkflib.c>
<net.h net.c>
<tmdy_getopt.h getopt.c>そのまま
<readdir.h readdir_win.c>そのまま
<support.h support.c>そのまま
<mac_util.h mac_util.c>そのまま
<mac_readdir.h mac_readdir.c>そのまま

<unimod.h  unimod_priv.h load_669.c load_amf.c load_dsm.c load_far.c load_gdm.c load_imf.c load_it.c load_m15.c
load_med.c load_mod.c load_mtm.c load_okt.c load_s3m.c load_stm.c load_stx.c load_ult.c  load_uni.c load_xm.c
mmsup.c  munitrk.c mloader.c mlutil.c unimod_export.c>

<<libarcの中身>>
<arc_export.c arc_export.h>
<zip.h deflate.c inflate.c>
<explode.h explode.c>
<unlzh.h unlzh.c>
<url.h url.c url_dir.c url_http.c url_newsgroup.c url_b64decode.c url_file.c url_inflate.c  url_pipe.c url_buff.c url_ftp.c url_mem.c url_qsdecode.c url_cache.c url_hqxdecode.c url_news.c url_uudecode.c>
<arc.h arc.c arc_lzh.c arc_mime.c arc_tar.c arc_zip.c deflate.c>


TMDY_XXXXの書き換え　timdityおわり　interface libarc libunimod utils まだ

mutexをかける　まだ
<tmdy_struct>なし
<output.h>なし
<aq.h aq.c effect.c>（済み）
<controls.c>
<instrum.h instrum.c sndfont.c smplfile.c>
<resample.h resample.c newton_table.c>
<readmidi.h readmidi.c rcp.c smfconv.c mfi.c>
<playmidi.h playmidi.c>
＜common.h common.c loadtab.c >
＜mix.c mix.h>
<sffile.c sffile.h>
<freq.c freq.h>
<mod.c mod.h>
<m2m.c m2m.h>
<miditrace.c miditrace.h>
<word.h wrd_read.c wrdt.c>
<recache.c recache.h>
<quantity.c quantity.h>
<reverb.c reverb.h>
<rtsyn.h rtsyn_common.c rtsyn_winmm.c>
<timidy_main>
