… | |
… | |
578 | $::GAUGES->{sklprg}->set_label ("$name %d%%"); |
578 | $::GAUGES->{sklprg}->set_label ("$name %d%%"); |
579 | $::GAUGES->{sklprg}->set_value (@$val); |
579 | $::GAUGES->{sklprg}->set_value (@$val); |
580 | } |
580 | } |
581 | } |
581 | } |
582 | |
582 | |
583 | sub macro_send { |
|
|
584 | my ($self, $macro) = @_; |
|
|
585 | |
|
|
586 | for my $cmd (@{ $macro->{action} }) { |
|
|
587 | $self->send_command ($cmd); |
|
|
588 | } |
|
|
589 | } |
|
|
590 | |
|
|
591 | sub user_send { |
583 | sub user_send { |
592 | my ($self, $command) = @_; |
584 | my ($self, $command) = @_; |
593 | |
585 | |
594 | $self->{record}->($command) |
586 | $self->{record}->($command) |
595 | if $self->{record}; |
587 | if $self->{record}; |
… | |
… | |
886 | # split metadata case, FT_MUSIC, FT_SOUND |
878 | # split metadata case, FT_MUSIC, FT_SOUND |
887 | if ($changed) { # new data |
879 | if ($changed) { # new data |
888 | my ($meta, $data) = unpack "(w/a*)*", $face->{data}; |
880 | my ($meta, $data) = unpack "(w/a*)*", $face->{data}; |
889 | $face->{data} = $meta; |
881 | $face->{data} = $meta; |
890 | |
882 | |
|
|
883 | # rely on strict ordering here and also on later fetch |
891 | CFPlus::DB::put res_data => $face->{name} => $data, sub { }; |
884 | CFPlus::DB::put res_data => $face->{name} => $data, sub { }; |
892 | CFPlus::DB::put res_meta => $face->{name} => $meta, sub { }; |
885 | CFPlus::DB::put res_meta => $face->{name} => $meta, sub { }; |
893 | } |
886 | } |
894 | |
887 | |
895 | $face->{data} = $self->{json_coder}->decode ($face->{data}); |
888 | $face->{data} = $self->{json_coder}->decode ($face->{data}); |
896 | |
|
|
897 | ::add_license ($face); |
889 | ::add_license ($face); |
|
|
890 | ::message ({ markup => CFPlus::asxml "downloaded resource '$face->{data}{name}', type $face->{type}." }) |
|
|
891 | if $changed; |
898 | |
892 | |
899 | if ($face->{type} == 3) { # FT_MUSIC |
893 | if ($face->{type} == 3) { # FT_MUSIC |
900 | ::message ({ markup => "downloaded song #$facenum" }) |
|
|
901 | if $changed; |
|
|
902 | |
|
|
903 | &::audio_music_push ($facenum); |
894 | &::audio_music_push ($facenum); |
904 | } elsif ($face->{type} == 5) { # FT_SOUND |
895 | } elsif ($face->{type} == 5) { # FT_SOUND |
905 | ::message ({ markup => "downloaded sound #$facenum" }) |
|
|
906 | if $changed; |
|
|
907 | |
|
|
908 | &::audio_sound_push ($facenum); |
896 | &::audio_sound_push ($facenum); |
909 | } |
897 | } |
910 | |
898 | |
911 | } else { |
899 | } else { |
912 | # flat resource case, FT_RSRC |
900 | # flat resource case, FT_RSRC |