#! /usr/bin/perl
#
# Read a list of files with time shifts for Shadow sentence label 
# and shift the times so they align with the original sentences
#
# use:
#> ShiftLabelTimes.pl filepattern
#
# Filepattern is a text file with on each line:
# LabelFilePath OrigItemID TimeShift [CorrelationCoeeficient ...]
#
###############################################################################
#
# Copyright R.J.J.H. van Son © 2000, 2001
#
# Author Rob van Son
# Institute of Phonetic Sciences & ACLC
# University of Amsterdam
# Herengracht 338
# NL-1016CG Amsterdam, The Netherlands
# Email: Rob.van.Son@hum.uva.nl
#        rob.van.son@workmail.com
# WWW  : http://www.fon.hum.uva.nl/rob/
# mail:  Institute of Phonetic Sciences
#        University of Amsterdam
#        Herengracht 338
#        NL-1016CG Amsterdam
#        The Netherlands
#        tel +31 205252183
#        fax +31 205252197
#
# License for use and disclaimers
#
# This program is free software; you can redistribute it and/or
# modify it under the terms of the GNU General Public License
# as published by the Free Software Foundation; either version 2
# of the License, or (at your option) any later version.
#
# This program is distributed in the hope that it will be useful,
# but WITHOUT ANY WARRANTY; without even the implied warranty of
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
# GNU General Public License for more details.
#
# You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
#
#
#######################################################
#
# Define and initialize
$HomeDir = '../../..';
require "$HomeDir/Links.pl";
require "$Scripts/SentenceLabel.pl";

my @GlobFileList = @ARGV;
my $FilePattern;

foreach $FilePattern (@GlobFileList)
{
        # Get the real filenames (expand * and ?)
        my @FileList = glob("$FilePattern");
        my $FileName;

        # Handle All files
        foreach $FileName (@FileList)
        {        	
	    open(SHIFTFILE, "<$FileName") || die "<$FileName: $!\n";
	    while(<SHIFTFILE>)
	    {
	    	next unless /\S/;
	    	my ($LabelFile, $OrigID, $TimeShift) = split;
		(print "$LabelFile does not exists\n", next) unless -e $LabelFile;
		next if -e "$LabelFile.Shifted";
		my $SentenceLabel = new SentenceLabel;
		$SentenceLabel->ReadLabelFile($LabelFile);
		$SentenceLabel->shiftSentenceLabel(-$TimeShift);
		$SentenceLabel->FoldedIDcodes();
		$SentenceLabel->FoldedIDcodes();
		my @AllTiers = reverse(@{$SentenceLabel->{'TIERORDER'}});
		$SentenceLabel->print("$LabelFile.Shifted", @AllTiers);
	    };
    	};
};

