| XML-ASX documentation | Contained in the XML-ASX distribution. |
XML::ASX - Create ASX (Advanced Streaming XML) files for Windows Media Player
use XML::ASX; my $asx = XML::ASX->new; print $asx;
XML::ASX generates ASX v3.0-compliant XML files. ASX files are used by the Windows Media Player (WMP) to play a queue of files.
Attributes can be added to several ASX tags to achieve a 'scripting' effect. You can define items to begin playing at an offset from the beginning, can cause items to repeat, and can even prevent users from fast-forwarding to the next item in the playlist (think advertising).
Microsoft has even added tags that allow you to 'brand' WMP by placing customized 16x16 icons and 80x32 clickable banners inside the player. What more can you ask for?
XML::ASX is a parent class for the XML::ASX::* suite. Methods not documented in subclasses are documented here, or not at all. :)
All subclasses overload '""' with xml(). Just call print $thing to get the scalar.
new() - really returns XML::ASX::File::new(). Read about that instead.
add_param(key,value) - add a key/value parameter to an XML::ASX::Entry or XML::ASX::File object. You can add as many as you like.
each_param() - returns a hash of parameters that were added with add_param().
each_in_queue() - returns a (possibly heterogenous) list of XML::ASX::Entry, XML::ASX::Event, and XML::ASX::Repeat objects. They are in the same order that they were added to the queue. See subclasses for details about how to enqueue objects.
entag() - function for building XML. ugly.
Allen Day, <allenday@ucla.edu>
XML::ASX::File XML::ASX::Entry XML::ASX::Event XML::ASX::Repeat
Video::Info MP3::Info Multimedia::Playlist Apache::MP3 Apache::Jukebox
MSDN: All About Windows Media Metafiles http://msdn.microsoft.com/library/en-us/dnwmt/thml/asx.asp
| XML-ASX documentation | Contained in the XML-ASX distribution. |
package XML::ASX; use strict; use vars qw($VERSION $AUTOLOAD %ASX_SLOTS); use XML::ASX::File; use overload '""' => \&xml; $VERSION = '0.01'; %ASX_SLOTS = ( ); sub new { my $class = shift; return XML::ASX::File->new(@_); } sub add_param { my($self,$key,$value) = @_; $self->{param}->{$key} = $value; return $self->{param}->{$key}; } sub each_param { my $self = shift; return $self->{param} ? %{$self->{param}} : (); } sub each_in_queue { my $self = shift; return $self->{queue} ? @{$self->{queue}} : (); } sub entag { my $self = shift; my $tag = shift; my $content = shift; my $attr = shift; my $closed = shift; my $output = ''; $output .= "<$tag"; if($attr){ foreach(keys %$attr){ $output .= ' ' . $_ . '="' . $attr->{$_} . '"'; } } $output .= "/>\n" and return $output if $closed; $output .= ">$content</$tag>\n"; return $output; } 1; __END__ # Below is stub documentation for your module. You better edit it!