###################################################################################################
# Copyright 2013 by Marcel Greter
# This file is part of Webmerge (GPL3)
###################################################################################################
package OCBNET::Webmerge::Optimize::GIF;
###################################################################################################
use base qw(OCBNET::Webmerge::Optimize::ANY);
###################################################################################################

use strict;
use warnings;

###################################################################################################

BEGIN
{
	# enable optimizer executables if not explicitly disabled
	$ENV{'WEBMERGE_GIFSICLE'} = 1 unless exists $ENV{'WEBMERGE_GIFSICLE'};
}

###################################################################################################
use OCBNET::Webmerge qw(options);
###################################################################################################

options('optimize-gif', 'gif!', undef);

###################################################################################################
# get command line template
###################################################################################################
use OCBNET::Webmerge qw(range);
###################################################################################################

sub gifsicle
{
	# get the optimization level (1 to 3)
	my $lvl = range($_[0]->option('level'), 1, 4, 3);
	# return commandline for process
	return sprintf("-O%d -o \"%s\" \"%s\"", $lvl, $_[0]->path, $_[0]->path);
}

###################################################################################################
use OCBNET::Webmerge qw(optimizers);
###################################################################################################

optimizers('gifopt', 'gifsicle', \ &gifsicle, 1) if $ENV{'WEBMERGE_GIFSICLE'};

###################################################################################################
###################################################################################################
1;
