<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0" xml:base="http://php.apsique.com" xmlns:dc="http://purl.org/dc/elements/1.1/">
<channel>
 <title>Php y otras yerbas - rb_cdio en operaciones! - Comentarios</title>
 <link>http://php.apsique.com/contenido/rb_cdio_operaciones</link>
 <description>Comentarios para &quot;rb_cdio en operaciones!&quot;</description>
 <language>es</language>
<item>
 <title>rb_cdio en operaciones!</title>
 <link>http://php.apsique.com/contenido/rb_cdio_operaciones</link>
 <description>&lt;p&gt;Aunque ni yo lo creo, ya tengo una versión útil de  &lt;a href=&#039;http://php.apsique.com/project/rb_cdio&#039;&gt;rb_cdio&lt;/a&gt;! &lt;/p&gt;
&lt;p&gt;Para los que no han leído los post anteriores, es una extensión en C para Ruby, que permite utilizar parte de las funciones incluidas en las bibliotecas cdio e iso9660, del proyecto &lt;a href=&#039;http://www.gnu.org/software/libcdio/&#039;&gt;libcdio&lt;/a&gt;.&lt;/p&gt;
&lt;p&gt;Estas bibliotecas nos permiten determinar, para un cd, cosas como su tipo, el número de pistas que tiene, el tipo y formato de estas últimas, entre otras cosas. También permite, si tienen instalado &lt;a href=&#039;http://ruby-freedb.rubyforge.org/&#039;&gt;ruby-freedb&lt;/a&gt;, acceder de inmediato a un objeto Freedb a partir de un lindo CdIo::Cd.&lt;/p&gt;
&lt;!--break--&gt;
&lt;p&gt;A continuación, les muestro la definición de interface para el módulo CdIo. Espero que hable por si solo:&lt;/p&gt;
&lt;div class=&#039;code&#039;&gt;&lt;div class=&quot;hl-main&quot;&gt;&lt;ol class=&quot;hl-main&quot;&gt;&lt;li&gt;&amp;nbsp;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;!/bin/env ruby&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; Definición del módulo y las clases del archivo&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;module&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_devices_with_cap&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;search_devices&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;capabilities&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; debe devolver un objeto:&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; - propiedad &#039;devices&#039; :array de string con los devices&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; - propiedad &#039;driver&#039;: con el driver por defecto&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; y otro con &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_devices_with_cap_ret&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;search_devices&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;capabilities&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;any&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;driver_id&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_devices&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; Devuelve el mismo objeto que get_devices_with_cap_ret&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_devices_ret&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; Devuelve el device por defecto. Se puede entregar un objeto&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_default_device&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; Devuelve las capacidades del device en un objeto DeviceCap &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; ¿Valdrá la pena?&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_drive_cap&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_hwinfo&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;driver_describe&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;discmode_describe&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdIo&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;.&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;track_type_describe&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;track&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; ocupamos lo que haya que ocupar para abrir la fuente y el driver por defecto&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; si la fuente es null, ocupamos get_default_device con null.&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;open&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;source&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;driver&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;=&lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;nil&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;Cd&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;attr_reader&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;    :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;device&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;mcn&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;driver_name&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;driver_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;first_track_num&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;disc_mode&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;num_tracks&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;stat_size&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;cddb_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_arg&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;key&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; puede entregarse el número o el objeto pista&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_cdtext&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;(&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;track&lt;/span&gt;&lt;span class=&quot;hl-brackets&quot;&gt;)&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;#&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt; devuelve un array con las pistas del Cd.&lt;/span&gt;&lt;span class=&quot;hl-comment&quot;&gt;&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;get_tracks&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;is_cd&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;?&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;is_dvd&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;?&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp; &lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;CdText&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;Track&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;attr_reader&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;cd&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;number&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;format&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;green&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;?, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;lba&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,:&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;lsn&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,:&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;min&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,:&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;sec&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,:&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;frames&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;,:&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;sec_count&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;def&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;green&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;?&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;TrackIso9660&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &amp;lt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;Track&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;        &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;attr_reader&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;system_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;volume_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;volumeset_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;preparer_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;publisher_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;, :&lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;application_id&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;class&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt; &lt;/span&gt;&lt;span class=&quot;hl-identifier&quot;&gt;Device&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;  &lt;/li&gt;
&lt;li&gt;&amp;nbsp;    &lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;span class=&quot;hl-code&quot;&gt;&lt;/li&gt;
&lt;li&gt;&amp;nbsp;&lt;/span&gt;&lt;span class=&quot;hl-reserved&quot;&gt;end&lt;/span&gt;&lt;/li&gt;&lt;/ol&gt;&lt;/div&gt;&lt;/div&gt;
&lt;p&gt;Como se darán cuenta, aun falta trabajo por hacer. Por ejemplo, no he hecho nada para la clase Device, ni tengo mucha documentación. De todas maneras, con lo que ya está, se pueden hacer cosas muy interesantes :)&lt;/p&gt;
&lt;p&gt;Pueden acceder a la página del proyecto en &lt;a href=&#039;http://php.apsique.com/project/rb_cdio&#039;&gt;http://php.apsique.com/project/rb_cdio&lt;/a&gt;&lt;/p&gt;</description>
 <comments>http://php.apsique.com/contenido/rb_cdio_operaciones#comments</comments>
 <category domain="http://php.apsique.com/categoria/lenguajes/cc">C/C++</category>
 <category domain="http://php.apsique.com/categoria/temas_generales/programacion">Programación</category>
 <category domain="http://php.apsique.com/lenguajes/ruby">Ruby</category>
 <pubDate>Wed, 18 May 2005 23:50:32 -0700</pubDate>
 <dc:creator>clbustos</dc:creator>
 <guid isPermaLink="false">449 at http://php.apsique.com</guid>
</item>
</channel>
</rss>
