… | |
… | |
1619 | $self->init; # pass $1 etc. |
1619 | $self->init; # pass $1 etc. |
1620 | return $self; |
1620 | return $self; |
1621 | } |
1621 | } |
1622 | } |
1622 | } |
1623 | |
1623 | |
1624 | Carp::carp "unable to resolve path '$path' (base '$base')."; |
1624 | Carp::cluck "unable to resolve path '$path' (base '$base')."; |
1625 | () |
1625 | () |
1626 | } |
1626 | } |
1627 | |
1627 | |
1628 | sub init { |
1628 | sub init { |
1629 | my ($self) = @_; |
1629 | my ($self) = @_; |
… | |
… | |
1907 | |
1907 | |
1908 | undef $MAP_PREFETCH{$path}; |
1908 | undef $MAP_PREFETCH{$path}; |
1909 | $MAP_PREFETCHER ||= cf::async { |
1909 | $MAP_PREFETCHER ||= cf::async { |
1910 | while (%MAP_PREFETCH) { |
1910 | while (%MAP_PREFETCH) { |
1911 | for my $path (keys %MAP_PREFETCH) { |
1911 | for my $path (keys %MAP_PREFETCH) { |
1912 | my $map = find $path |
1912 | if (my $map = find $path) { |
1913 | or next; |
|
|
1914 | $map->load; |
1913 | $map->load; |
|
|
1914 | } |
1915 | |
1915 | |
1916 | delete $MAP_PREFETCH{$path}; |
1916 | delete $MAP_PREFETCH{$path}; |
1917 | } |
1917 | } |
1918 | } |
1918 | } |
1919 | undef $MAP_PREFETCHER; |
1919 | undef $MAP_PREFETCHER; |
… | |
… | |
2771 | my $meta = $enc->encode ({ |
2771 | my $meta = $enc->encode ({ |
2772 | name => $name, |
2772 | name => $name, |
2773 | type => $info->{type}, |
2773 | type => $info->{type}, |
2774 | copyright => $info->{copyright}, #TODO# |
2774 | copyright => $info->{copyright}, #TODO# |
2775 | }); |
2775 | }); |
2776 | my $data = pack "(w/a*)*", $meta, $info->{data}; |
|
|
2777 | my $chk = Digest::MD5::md5 "$info->{chksum},$meta"; # mangle data checksum and metadata |
|
|
2778 | |
2776 | |
2779 | my $idx = (cf::face::find $name) || cf::face::alloc $name; |
2777 | my $idx = (cf::face::find $name) || cf::face::alloc $name; |
|
|
2778 | |
|
|
2779 | if ($name =~ /\.jpg$/) { |
|
|
2780 | cf::face::set_data $idx, 0, $info->{data}, $info->{chksum};#d# temp hack |
|
|
2781 | cf::face::set_data $idx, 1, $info->{data}, $info->{chksum};#d# temp hack |
|
|
2782 | } else { |
|
|
2783 | my $data = pack "(w/a*)*", $meta, $info->{data}; |
|
|
2784 | my $chk = Digest::MD5::md5 "$info->{chksum},$meta"; # mangle data checksum and metadata |
|
|
2785 | |
2780 | cf::face::set_type $idx, 1; |
2786 | cf::face::set_type $idx, 1; |
2781 | cf::face::set_data $idx, 0, $data, $chk; |
2787 | cf::face::set_data $idx, 0, $data, $chk; |
|
|
2788 | } |
2782 | |
2789 | |
2783 | cf::cede_to_tick; |
2790 | cf::cede_to_tick; |
2784 | } |
2791 | } |
2785 | } |
2792 | } |
2786 | |
2793 | |