Skip to content

Commit 41eaec7

Browse files
committed
Use macro to define params
1 parent 31a33a8 commit 41eaec7

File tree

1 file changed

+36
-125
lines changed

1 file changed

+36
-125
lines changed

bindings/ruby/ext/ruby_whisper_params.c

Lines changed: 36 additions & 125 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,12 @@
2020
return Qfalse; \
2121
}
2222

23+
#define DEFINE_PARAM(param_name, nth) \
24+
id_ ## param_name = rb_intern(#param_name); \
25+
param_names[nth] = id_ ## param_name; \
26+
rb_define_method(cParams, #param_name, ruby_whisper_params_get_ ## param_name, 0); \
27+
rb_define_method(cParams, #param_name "=", ruby_whisper_params_set_ ## param_name, 1);
28+
2329
#define RUBY_WHISPER_PARAMS_PARAM_NAMES_COUNT 30
2430

2531
extern VALUE cParams;
@@ -1029,136 +1035,41 @@ ruby_whisper_params_abort_on(VALUE self)
10291035
void
10301036
init_ruby_whisper_params(VALUE *mWhisper)
10311037
{
1032-
id_language = rb_intern("language");
1033-
id_translate = rb_intern("translate");
1034-
id_no_context = rb_intern("no_context");
1035-
id_single_segment = rb_intern("single_segment");
1036-
id_print_special = rb_intern("print_special");
1037-
id_print_progress = rb_intern("print_progress");
1038-
id_print_realtime = rb_intern("print_realtime");
1039-
id_print_timestamps = rb_intern("print_timestamps");
1040-
id_suppress_blank = rb_intern("suppress_blank");
1041-
id_suppress_nst = rb_intern("suppress_nst");
1042-
id_token_timestamps = rb_intern("token_timestamps");
1043-
id_split_on_word = rb_intern("split_on_word");
1044-
id_initial_prompt = rb_intern("initial_prompt");
1045-
id_diarize = rb_intern("diarize");
1046-
id_offset = rb_intern("offset");
1047-
id_duration = rb_intern("duration");
1048-
id_max_text_tokens = rb_intern("max_text_tokens");
1049-
id_temperature = rb_intern("temperature");
1050-
id_max_initial_ts = rb_intern("max_initial_ts");
1051-
id_length_penalty = rb_intern("length_penalty");
1052-
id_temperature_inc = rb_intern("temperature_inc");
1053-
id_entropy_thold = rb_intern("entropy_thold");
1054-
id_logprob_thold = rb_intern("logprob_thold");
1055-
id_no_speech_thold = rb_intern("no_speech_thold");
1056-
id_new_segment_callback = rb_intern("new_segment_callback");
1057-
id_new_segment_callback_user_data = rb_intern("new_segment_callback_user_data");
1058-
id_progress_callback = rb_intern("progress_callback");
1059-
id_progress_callback_user_data = rb_intern("progress_callback_user_data");
1060-
id_abort_callback = rb_intern("abort_callback");
1061-
id_abort_callback_user_data = rb_intern("abort_callback_user_data");
1062-
1063-
param_names[0] = id_language;
1064-
param_names[1] = id_translate;
1065-
param_names[2] = id_no_context;
1066-
param_names[3] = id_single_segment;
1067-
param_names[4] = id_print_special;
1068-
param_names[5] = id_print_progress;
1069-
param_names[6] = id_print_realtime;
1070-
param_names[7] = id_print_timestamps;
1071-
param_names[8] = id_suppress_blank;
1072-
param_names[9] = id_suppress_nst;
1073-
param_names[10] = id_token_timestamps;
1074-
param_names[11] = id_split_on_word;
1075-
param_names[12] = id_initial_prompt;
1076-
param_names[13] = id_diarize;
1077-
param_names[14] = id_offset;
1078-
param_names[15] = id_duration;
1079-
param_names[16] = id_max_text_tokens;
1080-
param_names[17] = id_temperature;
1081-
param_names[18] = id_max_initial_ts;
1082-
param_names[19] = id_length_penalty;
1083-
param_names[20] = id_temperature_inc;
1084-
param_names[21] = id_entropy_thold;
1085-
param_names[22] = id_logprob_thold;
1086-
param_names[23] = id_no_speech_thold;
1087-
param_names[24] = id_new_segment_callback;
1088-
param_names[25] = id_new_segment_callback_user_data;
1089-
param_names[26] = id_progress_callback;
1090-
param_names[27] = id_progress_callback_user_data;
1091-
param_names[28] = id_abort_callback;
1092-
param_names[29] = id_abort_callback_user_data;
1093-
10941038
cParams = rb_define_class_under(*mWhisper, "Params", rb_cObject);
10951039

10961040
rb_define_alloc_func(cParams, ruby_whisper_params_allocate);
10971041
rb_define_method(cParams, "initialize", ruby_whisper_params_initialize, -1);
10981042

1099-
rb_define_method(cParams, "language=", ruby_whisper_params_set_language, 1);
1100-
rb_define_method(cParams, "language", ruby_whisper_params_get_language, 0);
1101-
rb_define_method(cParams, "translate=", ruby_whisper_params_set_translate, 1);
1102-
rb_define_method(cParams, "translate", ruby_whisper_params_get_translate, 0);
1103-
rb_define_method(cParams, "no_context=", ruby_whisper_params_set_no_context, 1);
1104-
rb_define_method(cParams, "no_context", ruby_whisper_params_get_no_context, 0);
1105-
rb_define_method(cParams, "single_segment=", ruby_whisper_params_set_single_segment, 1);
1106-
rb_define_method(cParams, "single_segment", ruby_whisper_params_get_single_segment, 0);
1107-
rb_define_method(cParams, "print_special", ruby_whisper_params_get_print_special, 0);
1108-
rb_define_method(cParams, "print_special=", ruby_whisper_params_set_print_special, 1);
1109-
rb_define_method(cParams, "print_progress", ruby_whisper_params_get_print_progress, 0);
1110-
rb_define_method(cParams, "print_progress=", ruby_whisper_params_set_print_progress, 1);
1111-
rb_define_method(cParams, "print_realtime", ruby_whisper_params_get_print_realtime, 0);
1112-
rb_define_method(cParams, "print_realtime=", ruby_whisper_params_set_print_realtime, 1);
1113-
rb_define_method(cParams, "print_timestamps", ruby_whisper_params_get_print_timestamps, 0);
1114-
rb_define_method(cParams, "print_timestamps=", ruby_whisper_params_set_print_timestamps, 1);
1115-
rb_define_method(cParams, "suppress_blank", ruby_whisper_params_get_suppress_blank, 0);
1116-
rb_define_method(cParams, "suppress_blank=", ruby_whisper_params_set_suppress_blank, 1);
1117-
rb_define_method(cParams, "suppress_nst", ruby_whisper_params_get_suppress_nst, 0);
1118-
rb_define_method(cParams, "suppress_nst=", ruby_whisper_params_set_suppress_nst, 1);
1119-
rb_define_method(cParams, "token_timestamps", ruby_whisper_params_get_token_timestamps, 0);
1120-
rb_define_method(cParams, "token_timestamps=", ruby_whisper_params_set_token_timestamps, 1);
1121-
rb_define_method(cParams, "split_on_word", ruby_whisper_params_get_split_on_word, 0);
1122-
rb_define_method(cParams, "split_on_word=", ruby_whisper_params_set_split_on_word, 1);
1123-
rb_define_method(cParams, "initial_prompt", ruby_whisper_params_get_initial_prompt, 0);
1124-
rb_define_method(cParams, "initial_prompt=", ruby_whisper_params_set_initial_prompt, 1);
1125-
rb_define_method(cParams, "diarize", ruby_whisper_params_get_diarize, 0);
1126-
rb_define_method(cParams, "diarize=", ruby_whisper_params_set_diarize, 1);
1127-
1128-
rb_define_method(cParams, "offset", ruby_whisper_params_get_offset, 0);
1129-
rb_define_method(cParams, "offset=", ruby_whisper_params_set_offset, 1);
1130-
rb_define_method(cParams, "duration", ruby_whisper_params_get_duration, 0);
1131-
rb_define_method(cParams, "duration=", ruby_whisper_params_set_duration, 1);
1132-
1133-
rb_define_method(cParams, "max_text_tokens", ruby_whisper_params_get_max_text_tokens, 0);
1134-
rb_define_method(cParams, "max_text_tokens=", ruby_whisper_params_set_max_text_tokens, 1);
1135-
rb_define_method(cParams, "temperature", ruby_whisper_params_get_temperature, 0);
1136-
rb_define_method(cParams, "temperature=", ruby_whisper_params_set_temperature, 1);
1137-
rb_define_method(cParams, "max_initial_ts", ruby_whisper_params_get_max_initial_ts, 0);
1138-
rb_define_method(cParams, "max_initial_ts=", ruby_whisper_params_set_max_initial_ts, 1);
1139-
rb_define_method(cParams, "length_penalty", ruby_whisper_params_get_length_penalty, 0);
1140-
rb_define_method(cParams, "length_penalty=", ruby_whisper_params_set_length_penalty, 1);
1141-
rb_define_method(cParams, "temperature_inc", ruby_whisper_params_get_temperature_inc, 0);
1142-
rb_define_method(cParams, "temperature_inc=", ruby_whisper_params_set_temperature_inc, 1);
1143-
rb_define_method(cParams, "entropy_thold", ruby_whisper_params_get_entropy_thold, 0);
1144-
rb_define_method(cParams, "entropy_thold=", ruby_whisper_params_set_entropy_thold, 1);
1145-
rb_define_method(cParams, "logprob_thold", ruby_whisper_params_get_logprob_thold, 0);
1146-
rb_define_method(cParams, "logprob_thold=", ruby_whisper_params_set_logprob_thold, 1);
1147-
rb_define_method(cParams, "no_speech_thold", ruby_whisper_params_get_no_speech_thold, 0);
1148-
rb_define_method(cParams, "no_speech_thold=", ruby_whisper_params_set_no_speech_thold, 1);
1149-
1150-
rb_define_method(cParams, "new_segment_callback", ruby_whisper_params_get_new_segment_callback, 0);
1151-
rb_define_method(cParams, "new_segment_callback=", ruby_whisper_params_set_new_segment_callback, 1);
1152-
rb_define_method(cParams, "new_segment_callback_user_data", ruby_whisper_params_get_new_segment_callback_user_data, 0);
1153-
rb_define_method(cParams, "new_segment_callback_user_data=", ruby_whisper_params_set_new_segment_callback_user_data, 1);
1154-
rb_define_method(cParams, "progress_callback", ruby_whisper_params_get_progress_callback, 0);
1155-
rb_define_method(cParams, "progress_callback=", ruby_whisper_params_set_progress_callback, 1);
1156-
rb_define_method(cParams, "progress_callback_user_data", ruby_whisper_params_get_progress_callback_user_data, 0);
1157-
rb_define_method(cParams, "progress_callback_user_data=", ruby_whisper_params_set_progress_callback_user_data, 1);
1158-
rb_define_method(cParams, "abort_callback", ruby_whisper_params_get_abort_callback, 0);
1159-
rb_define_method(cParams, "abort_callback=", ruby_whisper_params_set_abort_callback, 1);
1160-
rb_define_method(cParams, "abort_callback_user_data", ruby_whisper_params_get_abort_callback_user_data, 0);
1161-
rb_define_method(cParams, "abort_callback_user_data=", ruby_whisper_params_set_abort_callback_user_data, 1);
1043+
DEFINE_PARAM(language, 0)
1044+
DEFINE_PARAM(translate, 1)
1045+
DEFINE_PARAM(no_context, 2)
1046+
DEFINE_PARAM(single_segment, 3)
1047+
DEFINE_PARAM(print_special, 4)
1048+
DEFINE_PARAM(print_progress, 5)
1049+
DEFINE_PARAM(print_realtime, 6)
1050+
DEFINE_PARAM(print_timestamps, 7)
1051+
DEFINE_PARAM(suppress_blank, 8)
1052+
DEFINE_PARAM(suppress_nst, 9)
1053+
DEFINE_PARAM(token_timestamps, 10)
1054+
DEFINE_PARAM(split_on_word, 11)
1055+
DEFINE_PARAM(initial_prompt, 12)
1056+
DEFINE_PARAM(diarize, 13)
1057+
DEFINE_PARAM(offset, 14)
1058+
DEFINE_PARAM(duration, 15)
1059+
DEFINE_PARAM(max_text_tokens, 16)
1060+
DEFINE_PARAM(temperature, 17)
1061+
DEFINE_PARAM(max_initial_ts, 18)
1062+
DEFINE_PARAM(length_penalty, 19)
1063+
DEFINE_PARAM(temperature_inc, 20)
1064+
DEFINE_PARAM(entropy_thold, 21)
1065+
DEFINE_PARAM(logprob_thold, 22)
1066+
DEFINE_PARAM(no_speech_thold, 23)
1067+
DEFINE_PARAM(new_segment_callback, 24)
1068+
DEFINE_PARAM(new_segment_callback_user_data, 25)
1069+
DEFINE_PARAM(progress_callback, 26)
1070+
DEFINE_PARAM(progress_callback_user_data, 27)
1071+
DEFINE_PARAM(abort_callback, 28)
1072+
DEFINE_PARAM(abort_callback_user_data, 29)
11621073

11631074
rb_define_method(cParams, "on_new_segment", ruby_whisper_params_on_new_segment, 0);
11641075
rb_define_method(cParams, "on_progress", ruby_whisper_params_on_progress, 0);

0 commit comments

Comments
 (0)