package HTTP::MobileAgent::Flash; use strict; use warnings; use vars qw($VERSION); $VERSION = '0.07'; use HTTP::MobileAgent; use HTTP::MobileAgent::Flash::DoCoMoFlashMap; use HTTP::MobileAgent::Flash::EZWebFlashMap; use HTTP::MobileAgent::Flash::SoftBankFlashMap; use Carp; use base qw(Class::Accessor); __PACKAGE__->mk_ro_accessors(qw(max_file_size version width height)); sub import { my $class = shift; no strict 'refs'; *{"HTTP\::MobileAgent\::flash"} = \&_flash; *{"HTTP\::MobileAgent\::is_flash"} = \&_is_flash; } sub _flash { my $self = shift; unless ($self->{flash}) { $self->{flash} = HTTP::MobileAgent::Flash->new($self); } return $self->{flash}; } sub _is_flash { my $self = shift; return ($self->flash->version > 0)? 1 : 0; } sub new { my ($class, $agent) = @_; my $map; if ($agent->is_docomo) { $map = $HTTP::MobileAgent::Flash::DoCoMoFlashMap::FLASH_MAP->{uc($agent->model)}; } elsif ($agent->is_ezweb) { $map = $HTTP::MobileAgent::Flash::EZWebFlashMap::FLASH_MAP->{uc($agent->model)}; } elsif ($agent->is_softbank) { $map = $HTTP::MobileAgent::Flash::SoftBankFlashMap::FLASH_MAP->{uc($agent->model)}; } if ($map) { return bless $map, $class; } else { return bless { max_file_size => -1, version => -1, width => -1, height => -1, }, $class; } } sub is_supported { my $self = shift; my $version = shift || ""; croak "You must set version before call is_supported()" if ($version eq ""); $version =~ s/Lite//ig; return ($version <= $self->version)? 1 : 0; } 1; __END__ =head1 NAME HTTP::MobileAgent::Flash - Flash information for HTTP::MobileAgent =head1 SYNOPSIS use HTTP::MobileAgent; use HTTP::MobileAgent::Flash; my $agent = HTTP::MobileAgent->new; print "Flash Version : " . $agent->flash->version; if ($agent->is_flash ) { ...... } if ($agent->flash->is_supported('lite1.1') and $agent->flash->width <= 230) { : } if ($agent->flash->is_supported('lite1.0') and $agent->flash->max_file_size <= 48) { : } =head1 DESCRIPTION This module adds C, C method to HTTP::MobileAgent =head1 METHODS =head2 is_flash =head2 flash =item version =item max_file_size =item is_supported $agent->flash->is_supported('Lite1.1') $agent->flash->is_supported('Lite1.0') =head1 AUTHOR KIMURA, takefumi Etakefumi@mobilefactory.jpE This library is free software; you can redistribute it and/or modify it under the same terms as Perl itself. =head1 BUGS This module does not support the Vodafone, yet. =head1 SEE ALSO L, L, L, L =cut