template.c: extract return type setting
This commit is contained in:
parent
2e701099d0
commit
2f346e7f5f
@ -87,6 +87,8 @@ if __name__ == "__main__":
|
|||||||
help="bit depth")
|
help="bit depth")
|
||||||
parser.add_argument("-s", "--signed", default=False, action="store_true",
|
parser.add_argument("-s", "--signed", default=False, action="store_true",
|
||||||
help="is signed?")
|
help="is signed?")
|
||||||
|
parser.add_argument("-f", "--floating-point", default=False,
|
||||||
|
action="store_true", help="use floating point as the return type")
|
||||||
parser.add_argument("-c", "--channels", default=1, type=int,
|
parser.add_argument("-c", "--channels", default=1, type=int,
|
||||||
help="amount of channels")
|
help="amount of channels")
|
||||||
parser.add_argument("-t", "--seconds", default=None, type=int,
|
parser.add_argument("-t", "--seconds", default=None, type=int,
|
||||||
@ -156,6 +158,7 @@ if __name__ == "__main__":
|
|||||||
"final_sample_rate_code": final_sample_rate_code,
|
"final_sample_rate_code": final_sample_rate_code,
|
||||||
"bit_depth": args.bit_depth,
|
"bit_depth": args.bit_depth,
|
||||||
"is_signed": "1" if args.signed else "0",
|
"is_signed": "1" if args.signed else "0",
|
||||||
|
"fp_return_type": "1" if args.floating_point else "0",
|
||||||
"channels": args.channels,
|
"channels": args.channels,
|
||||||
"length": samples,
|
"length": samples,
|
||||||
"silent_mode": "true" if args.silent else "false",
|
"silent_mode": "true" if args.silent else "false",
|
||||||
|
@ -48,11 +48,19 @@ const char* ANSI_CLEAR = __ANSI_CLEAR_STRING;
|
|||||||
#define VERBOSE_MODE `verbose_mode`
|
#define VERBOSE_MODE `verbose_mode`
|
||||||
|
|
||||||
// function prototypes
|
// function prototypes
|
||||||
|
#if FP_RETURN_TYPE
|
||||||
|
long double
|
||||||
|
#else
|
||||||
SAMPLE_TYPE
|
SAMPLE_TYPE
|
||||||
|
#endif
|
||||||
bytebeat(long double w);
|
bytebeat(long double w);
|
||||||
|
|
||||||
// function implementations
|
// function implementations
|
||||||
|
#if FP_RETURN_TYPE
|
||||||
|
long double
|
||||||
|
#else
|
||||||
SAMPLE_TYPE
|
SAMPLE_TYPE
|
||||||
|
#endif
|
||||||
bytebeat(long double w)
|
bytebeat(long double w)
|
||||||
{
|
{
|
||||||
`final_sample_rate_code`
|
`final_sample_rate_code`
|
||||||
@ -122,7 +130,12 @@ main(void)
|
|||||||
}
|
}
|
||||||
|
|
||||||
// * bytebeat generating loop
|
// * bytebeat generating loop
|
||||||
const uintmax_t product_minus_1 = PRODUCT - 1;
|
const uintmax_t product_minus_1 = PRODUCT - 1,
|
||||||
|
bit_depth_limiter = BIT_DEPTH_LIMITER
|
||||||
|
#if FP_RETURN_TYPE
|
||||||
|
+ 1
|
||||||
|
#endif
|
||||||
|
;
|
||||||
|
|
||||||
for (size_t w = 0; w < PRODUCT; w++) {
|
for (size_t w = 0; w < PRODUCT; w++) {
|
||||||
// 1. generate audio data
|
// 1. generate audio data
|
||||||
@ -133,8 +146,12 @@ main(void)
|
|||||||
bytebeat_res = signed_to_unsigned(bytebeat_res);
|
bytebeat_res = signed_to_unsigned(bytebeat_res);
|
||||||
|
|
||||||
// 3. convert audio data to sample
|
// 3. convert audio data to sample
|
||||||
SAMPLE_TYPE sample_res = (SAMPLE_TYPE) bytebeat_res &
|
SAMPLE_TYPE sample_res = (SAMPLE_TYPE)
|
||||||
BIT_DEPTH_LIMITER;
|
#if FP_RETURN_TYPE
|
||||||
|
fmodl(bytebeat_res, bit_depth_limiter);
|
||||||
|
#else
|
||||||
|
((uintmax_t) bytebeat_res & bit_depth_limiter);
|
||||||
|
#endif
|
||||||
|
|
||||||
// 4. if bit depth is less than 8, stretch it
|
// 4. if bit depth is less than 8, stretch it
|
||||||
#if BIT_DEPTH < 8
|
#if BIT_DEPTH < 8
|
||||||
|
Loading…
Reference in New Issue
Block a user