@@ -37,13 +37,19 @@ mrb_spi_init(mrb_state *mrb, mrb_value self) {
37
37
spi_t * spi = mrb_malloc (mrb , sizeof (spi_t ));
38
38
39
39
mrb_int id ;
40
- mrb_sym kname = MRB_SYM (unit );
41
- mrb_value u ;
42
- const mrb_kwargs kw = {1 , 0 , & kname , & u , NULL };
43
- mrb_get_args (mrb , "|i?:" , & id , & kw );
40
+ mrb_bool given ;
41
+ mrb_sym knames [4 ] = { MRB_SYM (unit ), MRB_SYM (mode ), MRB_SYM (first_bit ), MRB_SYM (frequency ) };
42
+ mrb_value kvalues [4 ] = { 0 };
43
+ const mrb_kwargs kw = { 4 , 0 , knames , kvalues , NULL };
44
+ mrb_get_args (mrb , "|i?:" , & id , & given , & kw );
45
+
46
+ if (!given ) {
47
+ ESP_LOGI (TAG , "initialize()" );
48
+ } else {
49
+ ESP_LOGI (TAG , "initialize(%d)" , id );
50
+ }
44
51
45
52
mrb_data_init (self , spi , & mrb_spi );
46
- ESP_LOGI (TAG , "initialize(%d)" , id );
47
53
48
54
return self ;
49
55
}
52
58
mrb_mruby_esp32_spi_gem_init (mrb_state * mrb ) {
53
59
struct RClass * client_class = mrb_define_class (mrb , "SPI" , mrb -> object_class );
54
60
55
- mrb_define_method (mrb , client_class , "initialize" , mrb_spi_init , MRB_ARGS_REQ ( 2 ));
61
+ mrb_define_method (mrb , client_class , "initialize" , mrb_spi_init , MRB_ARGS_ANY ( ));
56
62
}
57
63
58
64
void
0 commit comments