<?xml version="1.0"?>
<rss version="2.0">
	<channel>
		<title>How to read OGG&#39;s from datafiles with AllegroOgg</title>
		<link>http://www.allegro.cc/forums/view/583655</link>
		<description>Allegro.cc Forum Thread</description>
		<webMaster>matthew@allegro.cc (Matthew Leverton)</webMaster>
		<lastBuildDate>Sun, 07 May 2006 13:25:04 +0000</lastBuildDate>
	</channel>
	<item>
		<description><![CDATA[<div class="mockup v2"><p>Hi!</p><p>I&#39;m a begginer who&#39;s trying to read OGG&#39;s from my datafile using AllegroOgg, but I can&#39;t do it <img src="http://www.allegro.cc/forums/smileys/sad.gif" alt=":(" /></p><p>I&#39;m using AllegroOgg because I can&#39;t compile AllOgg, and I only want to use OGG sound .</p><p>When reading from disk, I have no problem and it works 100% ok playing the sound:</p><div class="source-code"><div class="toolbar"></div><div class="inner"><table width="100%"><tbody><tr><td class="number">1</td><td>  <a href="http://www.allegro.cc/manual/install_sound" target="_blank"><span class="a">install_sound</span></a> <span class="k2">(</span>DIGI_AUTODETECT,MIDI_NONE,NULL<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">2</td><td>  <span class="k1">char</span> <span class="k3">*</span>data<span class="k2">;</span>  <span class="c">// OGG file in memory</span></td></tr><tr><td class="number">3</td><td>  <span class="k1">int</span> len<span class="k2">;</span>     <span class="c">// Length of file</span></td></tr><tr><td class="number">4</td><td>  FILE <span class="k3">*</span>f <span class="k3">=</span> NULL<span class="k2">;</span>  <span class="c">// file.ogg</span></td></tr><tr><td class="number">5</td><td>&#160;</td></tr><tr><td class="number">6</td><td>  len  <span class="k3">=</span> <span class="k2">(</span><span class="k1">int</span><span class="k2">)</span>file_size<span class="k2">(</span><span class="s">"conv.ogg"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">7</td><td>  data <span class="k3">=</span> <span class="k1">new</span> <span class="k1">char</span><span class="k2">[</span>len<span class="k2">]</span><span class="k2">;</span></td></tr><tr><td class="number">8</td><td>  f <span class="k3">=</span> <a href="http://www.delorie.com/djgpp/doc/libc/libc_337.html" target="_blank">fopen</a><span class="k2">(</span><span class="s">"conv.ogg"</span>, <span class="s">"r"</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">9</td><td>  <a href="http://www.delorie.com/djgpp/doc/libc/libc_349.html" target="_blank">fread</a><span class="k2">(</span>data, <span class="n">1</span>, len, f<span class="k2">)</span><span class="k2">;</span> </td></tr><tr><td class="number">10</td><td>  ActFx <span class="k3">=</span> alogg_create_ogg_from_buffer<span class="k2">(</span>data, len<span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">11</td><td>&#160;</td></tr><tr><td class="number">12</td><td>  alogg_play_ex_ogg<span class="k2">(</span>ActFx, <span class="n">65536</span>, <span class="n">255</span>, <span class="n">127</span>, <span class="n">1000</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">13</td><td>  alogg_start_autopoll_ogg<span class="k2">(</span>ActFx, <span class="n">25</span><span class="k2">)</span><span class="k2">;</span></td></tr><tr><td class="number">14</td><td>&#160;</td></tr><tr><td class="number">15</td><td>&#160;</td></tr><tr><td class="number">16</td><td>  <span class="k1">while</span><span class="k2">(</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>    alogg_is_playing_ogg<span class="k2">(</span>ActFx<span class="k2">)</span> <span class="k2">)</span></td></tr><tr><td class="number">17</td><td>  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">10</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span></td></tr><tr><td class="number">18</td><td>&#160;</td></tr><tr><td class="number">19</td><td>  alogg_destroy_ogg<span class="k2">(</span>ActFx<span class="k2">)</span></td></tr></tbody></table></div></div><p>

But, when I try to read it from a datafile, I obtain no result:</p><div class="source-code snippet"><div class="inner"><pre>  <a href="http://www.allegro.cc/manual/install_sound" target="_blank"><span class="a">install_sound</span></a> <span class="k2">(</span>DIGI_AUTODETECT,MIDI_NONE,NULL<span class="k2">)</span><span class="k2">;</span>
  <a href="http://www.allegro.cc/manual/DATAFILE" target="_blank"><span class="a">DATAFILE</span></a> <span class="k3">*</span>MyDataFile <span class="k3">=</span> <a href="http://www.allegro.cc/manual/load_datafile" target="_blank"><span class="a">load_datafile</span></a> <span class="k2">(</span><span class="s">"mydat.dat"</span><span class="k2">)</span><span class="k2">;</span>
  ActFx <span class="k3">=</span> alogg_create_ogg_from_buffer <span class="k2">(</span>MyDataFile<span class="k2">[</span>conv<span class="k2">]</span>.dat<span class="k2">)</span>, <span class="n">20786</span><span class="k2">)</span><span class="k2">;</span>
  alogg_play_ex_ogg<span class="k2">(</span>ActFx, <span class="n">65536</span>, <span class="n">255</span>, <span class="n">127</span>, <span class="n">1000</span>, <span class="n">0</span><span class="k2">)</span><span class="k2">;</span>
  <span class="k1">while</span><span class="k2">(</span> <span class="k3">!</span><a href="http://www.allegro.cc/manual/keypressed" target="_blank"><span class="a">keypressed</span></a><span class="k2">(</span><span class="k2">)</span> <span class="k3">&amp;</span><span class="k3">&amp;</span>    alogg_is_playing_ogg<span class="k2">(</span>ActFx<span class="k2">)</span> <span class="k2">)</span>
  <span class="k2">{</span> <a href="http://www.allegro.cc/manual/rest" target="_blank"><span class="a">rest</span></a><span class="k2">(</span><span class="n">100</span><span class="k2">)</span><span class="k2">;</span> <span class="k2">}</span>
     
     alogg_destroy_ogg <span class="k2">(</span>ActFx<span class="k2">)</span><span class="k2">;</span>
</pre></div></div><p>

20786 is the file lenght. If I check ActFx pointer after alogg_create_ogg_from_buffer is not NULL, and allog_play_ex_ogg returns ALLOG_OK, but nothing is played.</p><p>Can you help me? Thank you very much <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /><img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>EDITED:</p><p>I&#39;ve still trying, and, finally, I&#39;ve obtained the result wanted <img src="http://www.allegro.cc/forums/smileys/smiley.gif" alt=":)" /></p><p>I&#39;ve forgot the <span class="source-code">alogg_start_autopoll_ogg<span class="k2">(</span>ActFx, <span class="n">25</span><span class="k2">)</span><span class="k2">;</span></span> call.</p><p>I think I don&#39;t need to improve my PC&#39;s memory, but mine <br /><img src="http://www.allegro.cc/forums/smileys/rolleyes.gif" alt="::)" />
</p></div>]]>
		</description>
		<author>no-reply@allegro.cc (Luis Garcia Ventura)</author>
		<pubDate>Sun, 07 May 2006 13:25:04 +0000</pubDate>
	</item>
</rss>
