ref: 85a22730dfc0b6c3e4de7c44517939f2ac3ed66d
dir: /ft2-clone-plan9/
diff 3af99afd1fb732d735c34c02c926ca4d7ba5b061 uncommitted --- /dev/null +++ b/make-plan9.rc @@ -1,0 +1,36 @@ +#!/bin/rc +rfork ne + +fn pragma_once { + h=_^`"{echo $1 | sed 's,.*/,,g;s/\..*//g' | tr -d ' +'}^_h_ + sed 's/#pragma once/#ifndef '^$h^'\n#define '^$h^'/g' $1 && echo && echo '#endif' +} + +for(f in src/*.h src/*/*.h){ + grep -s '^#pragma[ ]+once' $f && { + pragma_once $f >$f.p + mv $f.p $f + } +} + +fn pragma_pack { + sed 's/#pragma[ ]+pack[ (]*(push|1)[ )]*/#pragma pack on/g +s/#pragma[ ]+pack[ (]*(pop|0)[ )]*/#pragma pack off/g +s/#ifdef[ ]+_MSC_VER/#if defined(_MSC_VER) || defined(__plan9__)/g' $1 +} + +for(f in src/*.[ch] src/*/*.[ch]){ + grep -s '^#pragma[ ]+pack' $f && ! grep -s '^#pragma pack off' $f && { + pragma_pack $f >$f.p + mv $f.p $f + } +} + +{ test -d npe -o -d /sys/include/npe || { + hget https://git.sr.ht/~ft/npe/archive/master.tar.gz | tar xz && + cd npe-master && + mk install && + cd .. && + mv npe-master npe +} } && mk -f mkfile.plan9 $* --- /dev/null +++ b/mkfile @@ -1,0 +1,4 @@ +default:V: all + +%:V: + ./make-plan9.rc $stem --- /dev/null +++ b/mkfile.plan9 @@ -1,0 +1,133 @@ +</$objtype/mkfile + +BIN=/$objtype/bin/audio +TARG=ft2 +CFLAGS=$CFLAGS -p -Isrc -I/sys/include/npe -D__plan9__ + +HFILES=\ + src/ft2_about.h\ + src/ft2_audio.h\ + src/ft2_audioselector.h\ + src/ft2_bmp.h\ + src/ft2_checkboxes.h\ + src/ft2_config.h\ + src/ft2_cpu.h\ + src/ft2_diskop.h\ + src/ft2_edit.h\ + src/ft2_events.h\ + src/ft2_gfxdata.h\ + src/ft2_gui.h\ + src/ft2_header.h\ + src/ft2_help.h\ + src/ft2_inst_ed.h\ + src/ft2_keyboard.h\ + src/ft2_midi.h\ + src/ft2_module_loader.h\ + src/ft2_module_saver.h\ + src/ft2_mouse.h\ + src/ft2_nibbles.h\ + src/ft2_palette.h\ + src/ft2_pattern_draw.h\ + src/ft2_pattern_ed.h\ + src/ft2_pushbuttons.h\ + src/ft2_radiobuttons.h\ + src/ft2_replayer.h\ + src/ft2_sample_ed.h\ + src/ft2_sample_ed_features.h\ + src/ft2_sample_loader.h\ + src/ft2_sample_saver.h\ + src/ft2_sampling.h\ + src/ft2_scrollbars.h\ + src/ft2_structs.h\ + src/ft2_sysreqs.h\ + src/ft2_tables.h\ + src/ft2_textboxes.h\ + src/ft2_trim.h\ + src/ft2_unicode.h\ + src/ft2_video.h\ + src/ft2_wav_renderer.h\ + src/helpdata/ft2_help_data.h\ + src/mixer/ft2_center_mix.h\ + src/mixer/ft2_mix.h\ + src/mixer/ft2_mix_macros.h\ + src/mixer/ft2_silence_mix.h\ + src/mixer/ft2_windowed_sinc.h\ + src/scopes/ft2_scope_macros.h\ + src/scopes/ft2_scopedraw.h\ + src/scopes/ft2_scopes.h\ + +OFILES=\ + src/ft2_about.$O\ + src/ft2_audio.$O\ + src/ft2_audioselector.$O\ + src/ft2_bmp.$O\ + src/ft2_checkboxes.$O\ + src/ft2_config.$O\ + src/ft2_diskop.$O\ + src/ft2_edit.$O\ + src/ft2_events.$O\ + src/ft2_gui.$O\ + src/ft2_help.$O\ + src/ft2_inst_ed.$O\ + src/ft2_keyboard.$O\ + src/ft2_main.$O\ + src/ft2_midi.$O\ + src/ft2_module_loader.$O\ + src/ft2_module_saver.$O\ + src/ft2_mouse.$O\ + src/ft2_nibbles.$O\ + src/ft2_palette.$O\ + src/ft2_pattern_draw.$O\ + src/ft2_pattern_ed.$O\ + src/ft2_pushbuttons.$O\ + src/ft2_radiobuttons.$O\ + src/ft2_replayer.$O\ + src/ft2_sample_ed.$O\ + src/ft2_sample_ed_features.$O\ + src/ft2_sample_loader.$O\ + src/ft2_sample_saver.$O\ + src/ft2_sampling.$O\ + src/ft2_scrollbars.$O\ + src/ft2_structs.$O\ + src/ft2_sysreqs.$O\ + src/ft2_tables.$O\ + src/ft2_textboxes.$O\ + src/ft2_trim.$O\ + src/ft2_unicode.$O\ + src/ft2_video.$O\ + src/ft2_wav_renderer.$O\ + src/gfxdata/ft2_bmp_fonts.$O\ + src/gfxdata/ft2_bmp_gui.$O\ + src/gfxdata/ft2_bmp_instr.$O\ + src/gfxdata/ft2_bmp_logo.$O\ + src/gfxdata/ft2_bmp_looppins.$O\ + src/gfxdata/ft2_bmp_midi.$O\ + src/gfxdata/ft2_bmp_mouse.$O\ + src/gfxdata/ft2_bmp_nibbles.$O\ + src/gfxdata/ft2_bmp_scopes.$O\ + src/mixer/ft2_center_mix.$O\ + src/mixer/ft2_mix.$O\ + src/mixer/ft2_silence_mix.$O\ + src/mixer/ft2_windowed_sinc.$O\ + src/modloaders/ft2_load_digi.$O\ + src/modloaders/ft2_load_mod.$O\ + src/modloaders/ft2_load_s3m.$O\ + src/modloaders/ft2_load_stk.$O\ + src/modloaders/ft2_load_stm.$O\ + src/modloaders/ft2_load_xm.$O\ + src/scopes/ft2_scopedraw.$O\ + src/scopes/ft2_scopes.$O\ + src/smploaders/ft2_load_aiff.$O\ + src/smploaders/ft2_load_flac.$O\ + src/smploaders/ft2_load_iff.$O\ + src/smploaders/ft2_load_raw.$O\ + src/smploaders/ft2_load_wav.$O\ + +default:V: all + +CLEANFILES=$OFILES + +</sys/src/cmd/mkone + +%.$O: %.c + $CC $CFLAGS -o $target $stem.c --- a/src/ft2_audio.c +++ b/src/ft2_audio.c @@ -5,6 +5,7 @@ #include <stdio.h> #include <stdint.h> +#include <math.h> #include "ft2_header.h" #include "ft2_config.h" #include "scopes/ft2_scopes.h" --- a/src/ft2_scrollbars.c +++ b/src/ft2_scrollbars.c @@ -224,7 +224,7 @@ { dTmp = (scrollBar->w / (double)scrollBar->end) * scrollBar->page; tmp32 = (int32_t)(dTmp + 0.5); - realThumbLength = (int16_t)CLAMP(tmp32, 1, scrollBar->w); + realThumbLength = (int16_t)CLAMP(tmp32, 1, (int)scrollBar->w); } else { @@ -251,7 +251,7 @@ } // prevent scrollbar thumb coords from being outside of the scrollbar area - thumbX = CLAMP(thumbX, scrollBar->x, scrollEnd-1); + thumbX = CLAMP((int)thumbX, (int)scrollBar->x, (int)scrollEnd-1); if (thumbX+thumbW > scrollEnd) thumbW = scrollEnd - thumbX; } @@ -267,7 +267,7 @@ { dTmp = (scrollBar->h / (double)scrollBar->end) * scrollBar->page; tmp32 = (int32_t)(dTmp + 0.5); - realThumbLength = (int16_t)CLAMP(tmp32, 1, scrollBar->h); + realThumbLength = (int16_t)CLAMP(tmp32, 1, (int)scrollBar->h); } else { @@ -293,7 +293,7 @@ } // prevent scrollbar thumb coords from being outside of the scrollbar area - thumbY = CLAMP(thumbY, scrollBar->y, scrollEnd - 1); + thumbY = CLAMP((int)thumbY, (int)scrollBar->y, (int)scrollEnd - 1); if (thumbY+thumbH > scrollEnd) thumbH = scrollEnd - thumbY; } @@ -523,7 +523,7 @@ } assert(scrollBar->w > 0); - scrollPos = CLAMP(scrollPos, 0, scrollBar->w); + scrollPos = CLAMP((int)scrollPos, 0, (int)scrollBar->w); length = scrollBar->w + (scrollBar->realThumbLength - scrollBar->thumbW); if (length < 1) @@ -549,7 +549,7 @@ scrollPos = mouse.lastScrollY - scrollBar->y - mouse.saveMouseY; assert(scrollBar->h > 0); - scrollPos = CLAMP(scrollPos, 0, scrollBar->h); + scrollPos = CLAMP((int)scrollPos, 0, (int)scrollBar->h); length = scrollBar->h + (scrollBar->realThumbLength - scrollBar->thumbH); if (length < 1) @@ -617,7 +617,7 @@ } assert(scrollBar->w > 0); - scrollX = CLAMP(scrollX, 0, scrollBar->w); + scrollX = CLAMP((int)scrollX, 0, (int)scrollBar->w); length = scrollBar->w + (scrollBar->realThumbLength - scrollBar->thumbW); if (length < 1) @@ -641,7 +641,7 @@ scrollY = mouse.lastScrollY - mouse.saveMouseY - scrollBar->y; assert(scrollBar->h > 0); - scrollY = CLAMP(scrollY, 0, scrollBar->h); + scrollY = CLAMP((int)scrollY, 0, (int)scrollBar->h); length = scrollBar->h + (scrollBar->realThumbLength - scrollBar->thumbH); if (length < 1)