Skip to content

Commit efa18bb

Browse files
committed
Define Whisper::Params' calback and user data reader
1 parent 5ab326d commit efa18bb

File tree

1 file changed

+48
-0
lines changed

1 file changed

+48
-0
lines changed

bindings/ruby/ext/ruby_whisper_params.c

Lines changed: 48 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -715,6 +715,13 @@ ruby_whisper_params_set_no_speech_thold(VALUE self, VALUE value)
715715
rwp->params.no_speech_thold = RFLOAT_VALUE(value);
716716
return value;
717717
}
718+
static VALUE
719+
ruby_whisper_params_get_new_segment_callback(VALUE self)
720+
{
721+
ruby_whisper_params *rwp;
722+
Data_Get_Struct(self, ruby_whisper_params, rwp);
723+
return rwp->new_segment_callback_container->callback;
724+
}
718725
/*
719726
* Sets new segment callback, called for every newly generated text segment.
720727
*
@@ -733,6 +740,13 @@ ruby_whisper_params_set_new_segment_callback(VALUE self, VALUE value)
733740
rwp->new_segment_callback_container->callback = value;
734741
return value;
735742
}
743+
static VALUE
744+
ruby_whisper_params_get_new_segment_callback_user_data(VALUE self)
745+
{
746+
ruby_whisper_params *rwp;
747+
Data_Get_Struct(self, ruby_whisper_params, rwp);
748+
return rwp->new_segment_callback_container->user_data;
749+
}
736750
/*
737751
* Sets user data passed to the last argument of new segment callback.
738752
*
@@ -747,6 +761,13 @@ ruby_whisper_params_set_new_segment_callback_user_data(VALUE self, VALUE value)
747761
rwp->new_segment_callback_container->user_data = value;
748762
return value;
749763
}
764+
static VALUE
765+
ruby_whisper_params_get_progress_callback(VALUE self)
766+
{
767+
ruby_whisper_params *rwp;
768+
Data_Get_Struct(self, ruby_whisper_params, rwp);
769+
return rwp->progress_callback_container->callback;
770+
}
750771
/*
751772
* Sets progress callback, called on each progress update.
752773
*
@@ -765,6 +786,13 @@ ruby_whisper_params_set_progress_callback(VALUE self, VALUE value)
765786
rwp->progress_callback_container->callback = value;
766787
return value;
767788
}
789+
static VALUE
790+
ruby_whisper_params_get_progress_callback_user_data(VALUE self)
791+
{
792+
ruby_whisper_params *rwp;
793+
Data_Get_Struct(self, ruby_whisper_params, rwp);
794+
return rwp->progress_callback_container->user_data;
795+
}
768796
/*
769797
* Sets user data passed to the last argument of progress callback.
770798
*
@@ -779,6 +807,13 @@ ruby_whisper_params_set_progress_callback_user_data(VALUE self, VALUE value)
779807
rwp->progress_callback_container->user_data = value;
780808
return value;
781809
}
810+
static VALUE
811+
ruby_whisper_params_get_abort_callback(VALUE self)
812+
{
813+
ruby_whisper_params *rwp;
814+
Data_Get_Struct(self, ruby_whisper_params, rwp);
815+
return rwp->abort_callback_container->callback;
816+
}
782817
/*
783818
* Sets abort callback, called to check if the process should be aborted.
784819
*
@@ -797,6 +832,13 @@ ruby_whisper_params_set_abort_callback(VALUE self, VALUE value)
797832
rwp->abort_callback_container->callback = value;
798833
return value;
799834
}
835+
static VALUE
836+
ruby_whisper_params_get_abort_callback_user_data(VALUE self)
837+
{
838+
ruby_whisper_params *rwp;
839+
Data_Get_Struct(self, ruby_whisper_params, rwp);
840+
return rwp->abort_callback_container->user_data;
841+
}
800842
/*
801843
* Sets user data passed to the last argument of abort callback.
802844
*
@@ -933,11 +975,17 @@ init_ruby_whisper_params(VALUE *mWhisper)
933975
rb_define_method(cParams, "no_speech_thold", ruby_whisper_params_get_no_speech_thold, 0);
934976
rb_define_method(cParams, "no_speech_thold=", ruby_whisper_params_set_no_speech_thold, 1);
935977

978+
rb_define_method(cParams, "new_segment_callback", ruby_whisper_params_get_new_segment_callback, 0);
936979
rb_define_method(cParams, "new_segment_callback=", ruby_whisper_params_set_new_segment_callback, 1);
980+
rb_define_method(cParams, "new_segment_callback_user_data", ruby_whisper_params_get_new_segment_callback_user_data, 0);
937981
rb_define_method(cParams, "new_segment_callback_user_data=", ruby_whisper_params_set_new_segment_callback_user_data, 1);
982+
rb_define_method(cParams, "progress_callback", ruby_whisper_params_get_progress_callback, 0);
938983
rb_define_method(cParams, "progress_callback=", ruby_whisper_params_set_progress_callback, 1);
984+
rb_define_method(cParams, "progress_callback_user_data", ruby_whisper_params_get_progress_callback_user_data, 0);
939985
rb_define_method(cParams, "progress_callback_user_data=", ruby_whisper_params_set_progress_callback_user_data, 1);
986+
rb_define_method(cParams, "abort_callback", ruby_whisper_params_get_abort_callback, 0);
940987
rb_define_method(cParams, "abort_callback=", ruby_whisper_params_set_abort_callback, 1);
988+
rb_define_method(cParams, "abort_callback_user_data", ruby_whisper_params_get_abort_callback_user_data, 0);
941989
rb_define_method(cParams, "abort_callback_user_data=", ruby_whisper_params_set_abort_callback_user_data, 1);
942990

943991
rb_define_method(cParams, "on_new_segment", ruby_whisper_params_on_new_segment, 0);

0 commit comments

Comments
 (0)