Mac-EyeTV

 view release on metacpan or  search on metacpan

lib/Mac/EyeTV/Recording.pm  view on Meta::CPAN

package Mac::EyeTV::Recording;
use strict;
use warnings;
use DateTime;
use DateTime::Format::Strptime;
use Mac::AppleScript qw(RunAppleScript);
use URI::file;
use base qw(Class::Accessor::Fast);

__PACKAGE__->mk_accessors(
  qw(recording start stop title
    description channel_number station_name input_source repeats quality
    enabled busy id)
);

sub delete {
  my $self = shift;
  $self->recording->delete;
}

sub duration {
  my $self = shift;
  return $self->stop - $self->start;
}

sub export {
  my($self, $path) = @_;
  
  my $id = $self->id;
  my $applescript = qq{
tell application "EyeTV"
  export from recording id $id to file "$path" as MPEGPS
end tell
  };
  warn $applescript;
  RunAppleScript($applescript);
}

1;

__END__

=head1 NAME

Mac::EyeTV::Programme - An EyeTV programme

=head1 SYNOPSIS

  use Mac::EyeTV;
  my $eyetv = Mac::EyeTV->new();

  # Examine existing programmes
  foreach my $programme ($eyetv->programmes) {
    my $start       = $programme->start;
    my $stop        = $programme->stop;
    my $title       = $programme->title;
    my $description = $programme->description;

    print "$title $start - $stop ($description)\n";
  }

  # Record a new programme
  my $programme = Mac::EyeTV::Programme->new;
  $programme->start($start_dt);
  $programme->stop($stop_dt);
  $programme->title($title);
  $programme->description($description);
  $programme->channel_number($channel_number);
  $programme->record;

  # Export an existing recording
  $programme->export("new.mpg");



( run in 1.518 second using v1.01-cache-2.11-cpan-97f6503c9c8 )