Skip to content
Extraits de code Groupes Projets
Sélectionner une révision Git
  • 0b4bfb783c5c9a0840e5044d23449b3f3ba6dffa
  • master par défaut
  • script
  • new-devel
  • devel
  • timingView-edit
  • fix-mpv
7 résultats

VivyDocumentStore.hh

Blame
  • FrameUtils.pm 3,52 Kio
    package FrameUtils;
    
    use strict;
    use warnings;
    use Data::Printer;
    
    BEGIN
    {
        unshift @INC, '.';
    }
    
    use App::TimeUtils;
    use App::MasterUtils;
    
    sub get_syubetsu
    {
        my $master = $_[0];
        my $rosen_id = $_[1];
        my $index = $_[2];
    
        my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id;
        my @syubetsus = @{ $rosen->{'syubetsu'} };
        if ($index >= scalar @syubetsus) { die "Index error"; }
        return $syubetsus[$index]->{'name'};
    }
    
    sub get_destination
    {
        my $master = $_[0];
        my $rosen_id = $_[1];
        my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id;
        my @jikoku = @{ $_[2] };
        my $offset = $_[3];
        my $is_down = $_[4];
    
        return (MasterUtils::sta_from_index $master, $rosen_id, $is_down
    	    ? scalar $offset + @jikoku - 1
    	    : $rosen->{'eki_num'} - $offset - @jikoku)
    	->{'ekimei'};
    }
    
    sub hassya_hyou
    {
        my $master = $_[0];
        my $eki = $_[1];
    
        my @rosens = MasterUtils::get_routes $master, $eki;
    
        my %sta_info = %{ MasterUtils::sta_from_id $master, $eki };
    
        my sub process_ressya_list
        {
    	my $rosen_id = $_[0];
    	my $rosen = MasterUtils::get_rosen_frame $master, $rosen_id;
    	my @ressyas = @{ $_[1] };
    	my @sorted_ressyas = ();
    	my $is_down = $_[3];
    	my $target_absolute = MasterUtils::get_eki_position $master, $rosen_id, $_[2];
    	my $target_relative = $is_down
    	    ? $target_absolute
    	    : $rosen->{'eki_num'} - $target_absolute - 1;
    	
    	foreach my $ressya (@ressyas)
    	{
    	    my @jikoku = @{ $ressya->{'jikoku'} };
    	    my $pos = 0;
    	    while ($pos != $target_relative) { shift @jikoku; $pos++; }
    	    if (!defined $jikoku[0]) { next; }
    	    
    	    my $ts = $jikoku[0];