1 # chiseperl.pl --- some useful funcions for using libchise with SWIG
\r
3 # Copyright (C) 2005 Koichi Kamichi.
\r
5 # global : $chise_ds, @chise_feature, @chise_ft, $chise_newid
\r
6 # function : void init_chise();
\r
7 # void close_chise();
\r
8 # void update_chise();
\r
9 # void search_newid();
\r
10 # $var get_feature_value($feature, $char_id);
\r
11 # $var set_feature_value($feature, $char_id, $value);
\r
12 # $var create_new_char($feature, $value);
\r
18 $chise_ds = chise::CHISE_DS_open(0, $chise::chise_system_db_dir, 0, 0755);
\r
19 chise_tools::listup_feature($chise_ds);
\r
20 @chise_feature = split(/\n/, chise_tools::get_char($chise_tools::feature));
\r
22 foreach(@chise_feature){
\r
23 push(@chise_ft, chise::chise_ds_get_feature($chise_ds, chise_tools::get_uchar($_)));
\r
25 $chise_newid = 0x0F0000;
\r
28 sub get_feature_value{ # feature, char_id -> 0 or value
\r
29 if(scalar(@_) != 2){
\r
32 my $ft = chise::chise_ds_get_feature($chise_ds, chise_tools::get_uchar($_[0]));
\r
33 chise_tools::clear_buffer;
\r
34 chise::chise_char_gets_feature_value($_[1], $ft,
\r
35 $chise_tools::buffer, $chise_tools::buffer_size);
\r
36 return chise_tools::get_char($chise_tools::buffer);
\r
39 sub set_feature_value{ # feature, char_id, value -> result
\r
40 if(scalar(@_) != 3){
\r
43 my $ft = chise::chise_ds_get_feature($chise_ds, chise_tools::get_uchar($_[0]));
\r
44 chise::chise_char_set_feature_value($_[1], $ft, chise_tools::get_uchar($_[2]));
\r
49 chise::CHISE_DS_close($chise_ds);
\r
52 sub create_new_char{ # feature, value -> assinged char_id
\r
54 &set_feature_value($_[0], $chise_newid, $_[1]);
\r
56 return $chise_newid - 1;
\r
59 sub search_newid{ # search new char_id and update $chise_newid
\r
63 chise_tools::clear_buffer;
\r
64 chise::chise_char_gets_feature_value($chise_newid, $_, $chise_tools::buffer, $chise_tools::buffer_size);
\r
65 if(length(chise_tools::get_char($chise_tools::buffer)) != 0){
\r
77 sub update_chise{ # save added data to database
\r
79 chise::chise_feature_sync($_);
\r