<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/> <title>Audacious: drct.c Source File</title> <link href="tabs.css" rel="stylesheet" type="text/css"/> <link href="doxygen.css" rel="stylesheet" type="text/css"/> </head> <body> <!-- Generated by Doxygen 1.7.3 --> <div id="top"> <div id="titlearea"> <table cellspacing="0" cellpadding="0"> <tbody> <tr style="height: 56px;"> <td style="padding-left: 0.5em;"> <div id="projectname">Audacious <span id="projectnumber">$Id:Doxyfile42802007-03-2104:39:00Znenolod$</span></div> </td> </tr> </tbody> </table> </div> <div id="navrow1" class="tabs"> <ul class="tablist"> <li><a href="index.html"><span>Main Page</span></a></li> <li><a href="pages.html"><span>Related Pages</span></a></li> <li><a href="annotated.html"><span>Classes</span></a></li> <li class="current"><a href="files.html"><span>Files</span></a></li> </ul> </div> <div id="navrow2" class="tabs2"> <ul class="tablist"> <li><a href="files.html"><span>File List</span></a></li> <li><a href="globals.html"><span>File Members</span></a></li> </ul> </div> <div class="header"> <div class="headertitle"> <h1>drct.c</h1> </div> </div> <div class="contents"> <a href="drct_8c.html">Go to the documentation of this file.</a><div class="fragment"><pre class="fragment"><a name="l00001"></a>00001 <span class="comment">/*</span> <a name="l00002"></a>00002 <span class="comment"> * drct.c</span> <a name="l00003"></a>00003 <span class="comment"> * Copyright 2009-2010 John Lindgren</span> <a name="l00004"></a>00004 <span class="comment"> *</span> <a name="l00005"></a>00005 <span class="comment"> * This file is part of Audacious.</span> <a name="l00006"></a>00006 <span class="comment"> *</span> <a name="l00007"></a>00007 <span class="comment"> * Audacious is free software: you can redistribute it and/or modify it under</span> <a name="l00008"></a>00008 <span class="comment"> * the terms of the GNU General Public License as published by the Free Software</span> <a name="l00009"></a>00009 <span class="comment"> * Foundation, version 2 or version 3 of the License.</span> <a name="l00010"></a>00010 <span class="comment"> *</span> <a name="l00011"></a>00011 <span class="comment"> * Audacious is distributed in the hope that it will be useful, but WITHOUT ANY</span> <a name="l00012"></a>00012 <span class="comment"> * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR</span> <a name="l00013"></a>00013 <span class="comment"> * A PARTICULAR PURPOSE. See the GNU General Public License for more details.</span> <a name="l00014"></a>00014 <span class="comment"> *</span> <a name="l00015"></a>00015 <span class="comment"> * You should have received a copy of the GNU General Public License along with</span> <a name="l00016"></a>00016 <span class="comment"> * Audacious. If not, see <http://www.gnu.org/licenses/>.</span> <a name="l00017"></a>00017 <span class="comment"> *</span> <a name="l00018"></a>00018 <span class="comment"> * The Audacious team does not consider modular code linking to Audacious or</span> <a name="l00019"></a>00019 <span class="comment"> * using our public API to be a derived work.</span> <a name="l00020"></a>00020 <span class="comment"> */</span> <a name="l00021"></a>00021 <a name="l00022"></a>00022 <span class="preprocessor">#include <glib.h></span> <a name="l00023"></a>00023 <span class="preprocessor">#include <libaudcore/hook.h></span> <a name="l00024"></a>00024 <span class="preprocessor">#include <libaudcore/vfs.h></span> <a name="l00025"></a>00025 <a name="l00026"></a>00026 <span class="preprocessor">#include "<a class="code" href="audconfig_8h.html">audconfig.h</a>"</span> <a name="l00027"></a>00027 <span class="preprocessor">#include "<a class="code" href="compatibility_8h.html">compatibility.h</a>"</span> <a name="l00028"></a>00028 <span class="preprocessor">#include "config.h"</span> <a name="l00029"></a>00029 <span class="preprocessor">#include "<a class="code" href="drct_8h.html">drct.h</a>"</span> <a name="l00030"></a>00030 <span class="preprocessor">#include "<a class="code" href="i18n_8h.html">i18n.h</a>"</span> <a name="l00031"></a>00031 <span class="preprocessor">#include "<a class="code" href="main_8h.html">main.h</a>"</span> <a name="l00032"></a>00032 <span class="preprocessor">#include "<a class="code" href="playback_8h.html">playback.h</a>"</span> <a name="l00033"></a>00033 <span class="preprocessor">#include "<a class="code" href="playlist_8h.html">playlist.h</a>"</span> <a name="l00034"></a>00034 <a name="l00035"></a>00035 <span class="comment">/* --- PROGRAM CONTROL --- */</span> <a name="l00036"></a>00036 <a name="l00037"></a><a class="code" href="drct_8c.html#a2c355bae6814f113c352b4d2c1b3e7c7">00037</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a2c355bae6814f113c352b4d2c1b3e7c7">drct_quit</a> (<span class="keywordtype">void</span>) <a name="l00038"></a>00038 { <a name="l00039"></a>00039 <a class="code" href="main_8c.html#ae8e6dca51f304e64a2d32c870195c625">aud_quit</a> (); <a name="l00040"></a>00040 } <a name="l00041"></a>00041 <a name="l00042"></a>00042 <span class="comment">/* --- PLAYBACK CONTROL --- */</span> <a name="l00043"></a>00043 <a name="l00044"></a><a class="code" href="drct_8c.html#a8a6639554e6e7c5637b62b5474354e54">00044</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a8a6639554e6e7c5637b62b5474354e54">drct_play</a> (<span class="keywordtype">void</span>) <a name="l00045"></a>00045 { <a name="l00046"></a>00046 <span class="keywordflow">if</span> (<a class="code" href="playback_8c.html#aafc1a680d8f23633c84f247112715095">playback_get_playing</a> ()) <a name="l00047"></a>00047 { <a name="l00048"></a>00048 <span class="keywordflow">if</span> (<a class="code" href="playback_8c.html#a8e0588ead2bf5672fdb8520a4e9b2011">playback_get_paused</a> ()) <a name="l00049"></a>00049 <a class="code" href="playback_8c.html#aace8df4bed185e5e8ededbf13f206b1d">playback_pause</a> (); <a name="l00050"></a>00050 <span class="keywordflow">else</span> <a name="l00051"></a>00051 <a class="code" href="playback_8c.html#ab5f30a127d666a2dd44918ebb1e9c844">playback_seek</a> (0); <a name="l00052"></a>00052 } <a name="l00053"></a>00053 <span class="keywordflow">else</span> <a name="l00054"></a>00054 <a class="code" href="playback_8c.html#a8ddcc8a2a037e189c10ecc7d51c0e224">playback_play</a> (0, FALSE); <a name="l00055"></a>00055 } <a name="l00056"></a>00056 <a name="l00057"></a><a class="code" href="drct_8c.html#a4c5d4d21ae7748fca3ae90b72e3a31df">00057</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a4c5d4d21ae7748fca3ae90b72e3a31df">drct_pause</a> (<span class="keywordtype">void</span>) <a name="l00058"></a>00058 { <a name="l00059"></a>00059 <span class="keywordflow">if</span> (<a class="code" href="playback_8c.html#aafc1a680d8f23633c84f247112715095">playback_get_playing</a> ()) <a name="l00060"></a>00060 <a class="code" href="playback_8c.html#aace8df4bed185e5e8ededbf13f206b1d">playback_pause</a> (); <a name="l00061"></a>00061 } <a name="l00062"></a>00062 <a name="l00063"></a><a class="code" href="drct_8c.html#ad6f5d3149d9ad30a0c6fc897ca0c0be7">00063</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#ad6f5d3149d9ad30a0c6fc897ca0c0be7">drct_stop</a> (<span class="keywordtype">void</span>) <a name="l00064"></a>00064 { <a name="l00065"></a>00065 <span class="keywordflow">if</span> (<a class="code" href="playback_8c.html#aafc1a680d8f23633c84f247112715095">playback_get_playing</a> ()) <a name="l00066"></a>00066 <a class="code" href="playback_8c.html#a37316a2d8c857f7ee39ecf339f63a551">playback_stop</a> (); <a name="l00067"></a>00067 } <a name="l00068"></a>00068 <a name="l00069"></a><a class="code" href="drct_8c.html#a3934088c5adf233b98710235141267e1">00069</a> <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> <a class="code" href="drct_8c.html#a3934088c5adf233b98710235141267e1">drct_get_playing</a> (<span class="keywordtype">void</span>) <a name="l00070"></a>00070 { <a name="l00071"></a>00071 <span class="keywordflow">return</span> <a class="code" href="playback_8c.html#aafc1a680d8f23633c84f247112715095">playback_get_playing</a> (); <a name="l00072"></a>00072 } <a name="l00073"></a>00073 <a name="l00074"></a><a class="code" href="drct_8c.html#aa7f3891dde874e22fc2d7c061861875a">00074</a> <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> <a class="code" href="drct_8c.html#aa7f3891dde874e22fc2d7c061861875a">drct_get_paused</a> (<span class="keywordtype">void</span>) <a name="l00075"></a>00075 { <a name="l00076"></a>00076 <span class="keywordflow">return</span> <a class="code" href="playback_8c.html#a8e0588ead2bf5672fdb8520a4e9b2011">playback_get_paused</a> (); <a name="l00077"></a>00077 } <a name="l00078"></a>00078 <a name="l00079"></a><a class="code" href="drct_8c.html#ab22476810a9d1669a6b875a79d0dd4c7">00079</a> gchar * <a class="code" href="drct_8c.html#ab22476810a9d1669a6b875a79d0dd4c7">drct_get_title</a> (<span class="keywordtype">void</span>) <a name="l00080"></a>00080 { <a name="l00081"></a>00081 <span class="keywordflow">return</span> <a class="code" href="playback_8c.html#ae69864be746bfc562b111da629637ecb">playback_get_title</a> (); <a name="l00082"></a>00082 } <a name="l00083"></a>00083 <a name="l00084"></a><a class="code" href="drct_8c.html#a85182a395b86ba4c109292633eb4fa13">00084</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a85182a395b86ba4c109292633eb4fa13">drct_get_info</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> * bitrate, <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> * samplerate, <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> * <a class="code" href="equalizer_8c.html#a321056aba52218c44e8b3e0ce010cb11">channels</a>) <a name="l00085"></a>00085 { <a name="l00086"></a>00086 <a class="code" href="playback_8c.html#a2c051daa5b1b94d87ba300822d32e29d">playback_get_info</a> (bitrate, samplerate, channels); <a name="l00087"></a>00087 } <a name="l00088"></a>00088 <a name="l00089"></a><a class="code" href="drct_8c.html#ab4b3030551ff4bf17edde04ab14d40cd">00089</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#ab4b3030551ff4bf17edde04ab14d40cd">drct_get_time</a> (<span class="keywordtype">void</span>) <a name="l00090"></a>00090 { <a name="l00091"></a>00091 <span class="keywordflow">return</span> <a class="code" href="playback_8c.html#ad23a744953eca2b3b2ff96875d6955e2">playback_get_time</a> (); <a name="l00092"></a>00092 } <a name="l00093"></a>00093 <a name="l00094"></a><a class="code" href="drct_8c.html#af8e1d7e39cf30d967ee8f7cadc3d1351">00094</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#af8e1d7e39cf30d967ee8f7cadc3d1351">drct_get_length</a> (<span class="keywordtype">void</span>) <a name="l00095"></a>00095 { <a name="l00096"></a>00096 <span class="keywordflow">return</span> <a class="code" href="playback_8c.html#aad15f8d0722a32cc37f01c0a0d85606d">playback_get_length</a> (); <a name="l00097"></a>00097 } <a name="l00098"></a>00098 <a name="l00099"></a><a class="code" href="drct_8c.html#ae92b43c5bf8e648480a91f93ec8d8664">00099</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#ae92b43c5bf8e648480a91f93ec8d8664">drct_seek</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> time) <a name="l00100"></a>00100 { <a name="l00101"></a>00101 <a class="code" href="playback_8c.html#ab5f30a127d666a2dd44918ebb1e9c844">playback_seek</a> (time); <a name="l00102"></a>00102 } <a name="l00103"></a>00103 <a name="l00104"></a>00104 <span class="comment">/* --- VOLUME CONTROL --- */</span> <a name="l00105"></a>00105 <a name="l00106"></a><a class="code" href="drct_8c.html#af190c757a6e7989e1544b64d4076d564">00106</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#af190c757a6e7989e1544b64d4076d564">drct_get_volume</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> * left, <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> * right) <a name="l00107"></a>00107 { <a name="l00108"></a>00108 <a class="code" href="playback_8c.html#ade54e6821c078a3ddc61da309f5adab3">input_get_volume</a> (left, right); <a name="l00109"></a>00109 * left = CLAMP (* left, 0, 100); <a name="l00110"></a>00110 * right = CLAMP (* right, 0, 100); <a name="l00111"></a>00111 } <a name="l00112"></a>00112 <a name="l00113"></a><a class="code" href="drct_8c.html#a2c336efe9d9d269fe4792ec217135342">00113</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a2c336efe9d9d269fe4792ec217135342">drct_set_volume</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> left, <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> right) <a name="l00114"></a>00114 { <a name="l00115"></a>00115 <a class="code" href="playback_8c.html#a2b89165315b9b30283b743b0f637963c">input_set_volume</a> (CLAMP (left, 0, 100), CLAMP (right, 0, 100)); <a name="l00116"></a>00116 } <a name="l00117"></a>00117 <a name="l00118"></a><a class="code" href="drct_8c.html#a66ebad21bc65a8939933c02b95c45774">00118</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a66ebad21bc65a8939933c02b95c45774">drct_get_volume_main</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> * volume) <a name="l00119"></a>00119 { <a name="l00120"></a>00120 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> left, right; <a name="l00121"></a>00121 <a class="code" href="drct_8c.html#af190c757a6e7989e1544b64d4076d564">drct_get_volume</a> (& left, & right); <a name="l00122"></a>00122 * volume = MAX (left, right); <a name="l00123"></a>00123 } <a name="l00124"></a>00124 <a name="l00125"></a><a class="code" href="drct_8c.html#a3e94b5744694409893e965b037ea1e80">00125</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a3e94b5744694409893e965b037ea1e80">drct_set_volume_main</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> volume) <a name="l00126"></a>00126 { <a name="l00127"></a>00127 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> left, right, current; <a name="l00128"></a>00128 <a class="code" href="drct_8c.html#af190c757a6e7989e1544b64d4076d564">drct_get_volume</a> (& left, & right); <a name="l00129"></a>00129 current = MAX (left, right); <a name="l00130"></a>00130 <a name="l00131"></a>00131 <span class="keywordflow">if</span> (current > 0) <a name="l00132"></a>00132 <a class="code" href="drct_8c.html#a2c336efe9d9d269fe4792ec217135342">drct_set_volume</a> (volume * left / current, volume * right / current); <a name="l00133"></a>00133 <span class="keywordflow">else</span> <a name="l00134"></a>00134 <a class="code" href="drct_8c.html#a2c336efe9d9d269fe4792ec217135342">drct_set_volume</a> (volume, volume); <a name="l00135"></a>00135 } <a name="l00136"></a>00136 <a name="l00137"></a><a class="code" href="drct_8c.html#a322716767710d9fdc2c5dee10bb4e2ec">00137</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a322716767710d9fdc2c5dee10bb4e2ec">drct_get_volume_balance</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> * balance) <a name="l00138"></a>00138 { <a name="l00139"></a>00139 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> left, right; <a name="l00140"></a>00140 <a class="code" href="drct_8c.html#af190c757a6e7989e1544b64d4076d564">drct_get_volume</a> (& left, & right); <a name="l00141"></a>00141 <a name="l00142"></a>00142 <span class="keywordflow">if</span> (left == right) <a name="l00143"></a>00143 * balance = 0; <a name="l00144"></a>00144 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (left > right) <a name="l00145"></a>00145 * balance = -100 + right * 100 / left; <a name="l00146"></a>00146 <span class="keywordflow">else</span> <a name="l00147"></a>00147 * balance = 100 - left * 100 / right; <a name="l00148"></a>00148 } <a name="l00149"></a>00149 <a name="l00150"></a><a class="code" href="drct_8c.html#a4a627e360bdb4a74bbed5b24573f7941">00150</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a4a627e360bdb4a74bbed5b24573f7941">drct_set_volume_balance</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> balance) <a name="l00151"></a>00151 { <a name="l00152"></a>00152 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> left, right; <a name="l00153"></a>00153 <a class="code" href="drct_8c.html#a66ebad21bc65a8939933c02b95c45774">drct_get_volume_main</a> (& left); <a name="l00154"></a>00154 <a name="l00155"></a>00155 <span class="keywordflow">if</span> (balance < 0) <a name="l00156"></a>00156 right = left * (100 + balance) / 100; <a name="l00157"></a>00157 <span class="keywordflow">else</span> <a name="l00158"></a>00158 { <a name="l00159"></a>00159 right = left; <a name="l00160"></a>00160 left = right * (100 - balance) / 100; <a name="l00161"></a>00161 } <a name="l00162"></a>00162 <a name="l00163"></a>00163 <a class="code" href="drct_8c.html#a2c336efe9d9d269fe4792ec217135342">drct_set_volume</a> (left, right); <a name="l00164"></a>00164 } <a name="l00165"></a>00165 <a name="l00166"></a>00166 <span class="comment">/* --- PLAYLIST CONTROL --- */</span> <a name="l00167"></a>00167 <a name="l00168"></a><a class="code" href="drct_8c.html#a6717a1ae22044bcbd7a9d9e5212db277">00168</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#a6717a1ae22044bcbd7a9d9e5212db277">drct_pl_get_length</a> (<span class="keywordtype">void</span>) <a name="l00169"></a>00169 { <a name="l00170"></a>00170 <span class="keywordflow">return</span> <a class="code" href="playlist-new_8c.html#af64b7c6ea43b1b56f85c348ddaf39bae">playlist_entry_count</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> ()); <a name="l00171"></a>00171 } <a name="l00172"></a>00172 <a name="l00173"></a><a class="code" href="drct_8c.html#af0747f01a4fb17eb879659149bebb736">00173</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#af0747f01a4fb17eb879659149bebb736">drct_pl_next</a> (<span class="keywordtype">void</span>) <a name="l00174"></a>00174 { <a name="l00175"></a>00175 <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> play = <a class="code" href="playback_8c.html#aafc1a680d8f23633c84f247112715095">playback_get_playing</a> (); <a name="l00176"></a>00176 <span class="keywordflow">if</span> (<a class="code" href="playlist-new_8c.html#aed4ff077093e9de0240f44d403fb2124">playlist_next_song</a> (<a class="code" href="playlist-new_8c.html#a9148257b8f1ae313fc9176aea46221ee">playlist_get_playing</a> (), <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.repeat) && play) <a name="l00177"></a>00177 <a class="code" href="playback_8c.html#a8ddcc8a2a037e189c10ecc7d51c0e224">playback_play</a> (0, FALSE); <a name="l00178"></a>00178 } <a name="l00179"></a>00179 <a name="l00180"></a><a class="code" href="drct_8c.html#a58edcd8353dd65439db004731e0816bf">00180</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a58edcd8353dd65439db004731e0816bf">drct_pl_prev</a> (<span class="keywordtype">void</span>) <a name="l00181"></a>00181 { <a name="l00182"></a>00182 <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> play = <a class="code" href="playback_8c.html#aafc1a680d8f23633c84f247112715095">playback_get_playing</a> (); <a name="l00183"></a>00183 <span class="keywordflow">if</span> (<a class="code" href="playlist-new_8c.html#a91977416c90daef955ff487a0aba7471">playlist_prev_song</a> (<a class="code" href="playlist-new_8c.html#a9148257b8f1ae313fc9176aea46221ee">playlist_get_playing</a> ()) && play) <a name="l00184"></a>00184 <a class="code" href="playback_8c.html#a8ddcc8a2a037e189c10ecc7d51c0e224">playback_play</a> (0, FALSE); <a name="l00185"></a>00185 } <a name="l00186"></a>00186 <a name="l00187"></a><a class="code" href="drct_8c.html#a52dafe7f8df52329b83540ee9fc8f45c">00187</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#a52dafe7f8df52329b83540ee9fc8f45c">drct_pl_get_pos</a> (<span class="keywordtype">void</span>) <a name="l00188"></a>00188 { <a name="l00189"></a>00189 <span class="keywordflow">return</span> <a class="code" href="playlist-new_8c.html#a090486085056d14c9cd85ed2472d7263">playlist_get_position</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> ()); <a name="l00190"></a>00190 } <a name="l00191"></a>00191 <a name="l00192"></a><a class="code" href="drct_8c.html#a46f8fd434387f498cb6c6e6906417cf1">00192</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a46f8fd434387f498cb6c6e6906417cf1">drct_pl_set_pos</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> pos) <a name="l00193"></a>00193 { <a name="l00194"></a>00194 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structplaylist.html">playlist</a> = <a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (); <a name="l00195"></a>00195 <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> play = <a class="code" href="playback_8c.html#aafc1a680d8f23633c84f247112715095">playback_get_playing</a> (); <a name="l00196"></a>00196 <a name="l00197"></a>00197 <a class="code" href="playlist-new_8c.html#af5363b67853811340e04abadac916756">playlist_set_position</a> (playlist, pos); <a name="l00198"></a>00198 <a name="l00199"></a>00199 <span class="keywordflow">if</span> (play) <a name="l00200"></a>00200 { <a name="l00201"></a>00201 <a class="code" href="playlist-new_8c.html#a899f846c0ea0d1ec3a44c891ddb5d1cc">playlist_set_playing</a> (playlist); <a name="l00202"></a>00202 <a class="code" href="playback_8c.html#a8ddcc8a2a037e189c10ecc7d51c0e224">playback_play</a> (0, FALSE); <a name="l00203"></a>00203 } <a name="l00204"></a>00204 } <a name="l00205"></a>00205 <a name="l00206"></a><a class="code" href="drct_8c.html#a76abf7b82d949aacc70d2f6c828b4fee">00206</a> <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> <a class="code" href="drct_8c.html#a76abf7b82d949aacc70d2f6c828b4fee">drct_pl_repeat_is_enabled</a> (<span class="keywordtype">void</span>) <a name="l00207"></a>00207 { <a name="l00208"></a>00208 <span class="keywordflow">return</span> <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.repeat; <a name="l00209"></a>00209 } <a name="l00210"></a>00210 <a name="l00211"></a><a class="code" href="drct_8c.html#a27725cd2209fa5e89cb99545df210fd8">00211</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a27725cd2209fa5e89cb99545df210fd8">drct_pl_repeat_toggle</a> (<span class="keywordtype">void</span>) <a name="l00212"></a>00212 { <a name="l00213"></a>00213 <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.repeat = ! <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.repeat; <a name="l00214"></a>00214 <a class="code" href="hook_8c.html#a2db1ccd2efbd82b151393e3aedd42550">hook_call</a> (<span class="stringliteral">"toggle repeat"</span>, NULL); <a name="l00215"></a>00215 } <a name="l00216"></a>00216 <a name="l00217"></a><a class="code" href="drct_8c.html#ad3746c4266eabd3d71652aaa6a885757">00217</a> <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> <a class="code" href="drct_8c.html#ad3746c4266eabd3d71652aaa6a885757">drct_pl_shuffle_is_enabled</a> (<span class="keywordtype">void</span>) <a name="l00218"></a>00218 { <a name="l00219"></a>00219 <span class="keywordflow">return</span> <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.shuffle; <a name="l00220"></a>00220 } <a name="l00221"></a>00221 <a name="l00222"></a><a class="code" href="drct_8c.html#ab921d30f1ab8ee0c4d9efd310d388ae4">00222</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#ab921d30f1ab8ee0c4d9efd310d388ae4">drct_pl_shuffle_toggle</a> (<span class="keywordtype">void</span>) <a name="l00223"></a>00223 { <a name="l00224"></a>00224 <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.shuffle = ! <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.shuffle; <a name="l00225"></a>00225 <a class="code" href="hook_8c.html#a2db1ccd2efbd82b151393e3aedd42550">hook_call</a> (<span class="stringliteral">"toggle shuffle"</span>, NULL); <a name="l00226"></a>00226 } <a name="l00227"></a>00227 <a name="l00228"></a><a class="code" href="drct_8c.html#a5ce1e2dd9753be689ed594e7a531db89">00228</a> gchar * <a class="code" href="drct_8c.html#a5ce1e2dd9753be689ed594e7a531db89">drct_pl_get_file</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structentry.html">entry</a>) <a name="l00229"></a>00229 { <a name="l00230"></a>00230 <span class="keyword">const</span> gchar * <a class="code" href="misc-api_8h.html#a820d8643bcfa9e2641dd6377f804de20">filename</a> = <a class="code" href="playlist-new_8c.html#a87cc5b5c9270aefb2c09712afbb8d1e2">playlist_entry_get_filename</a> <a name="l00231"></a>00231 (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (), entry); <a name="l00232"></a>00232 <span class="keywordflow">return</span> (filename == NULL) ? NULL : g_strdup (filename); <a name="l00233"></a>00233 } <a name="l00234"></a>00234 <a name="l00235"></a><a class="code" href="drct_8c.html#aae1ca63c5da3e8adfbe2cb5ff6422416">00235</a> gchar * <a class="code" href="drct_8c.html#aae1ca63c5da3e8adfbe2cb5ff6422416">drct_pl_get_title</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structentry.html">entry</a>) <a name="l00236"></a>00236 { <a name="l00237"></a>00237 <span class="keyword">const</span> gchar * <a class="code" href="structInfoRequest.html#a9f1708064f5193227ae945e74d775241">title</a> = <a class="code" href="playlist-new_8c.html#a10c6f4de1cca693ebe8d6c0e3aa96899">playlist_entry_get_title</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (), <a name="l00238"></a>00238 entry, FALSE); <a name="l00239"></a>00239 <span class="keywordflow">return</span> (title == NULL) ? NULL : g_strdup (title); <a name="l00240"></a>00240 } <a name="l00241"></a>00241 <a name="l00242"></a><a class="code" href="drct_8c.html#a8e5b06c7a699fab0c73c9e0e2084604a">00242</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#a8e5b06c7a699fab0c73c9e0e2084604a">drct_pl_get_time</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> pos) <a name="l00243"></a>00243 { <a name="l00244"></a>00244 <span class="keywordflow">return</span> <a class="code" href="playlist-api_8h.html#ab992abcff93918543b2231f4e2267d68">playlist_entry_get_length</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (), pos, FALSE); <a name="l00245"></a>00245 } <a name="l00246"></a>00246 <a name="l00247"></a><a class="code" href="drct_8c.html#a97a74146fe4034e73601ae6817e0f918">00247</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a97a74146fe4034e73601ae6817e0f918">add_list</a> (GList * <a class="code" href="misc-api_8h.html#a5b3afcdfb4bae9b4dd1b1ba8f2e6e638">list</a>, <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="playlist-api_8h.html#af5e8b5caf7672073a7b6cc7131d1d809">at</a>, <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> play) <a name="l00248"></a>00248 { <a name="l00249"></a>00249 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structplaylist.html">playlist</a> = <a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (); <a name="l00250"></a>00250 <a name="l00251"></a>00251 <span class="keywordflow">if</span> (play) <a name="l00252"></a>00252 { <a name="l00253"></a>00253 <span class="keywordflow">if</span> (<a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.clear_playlist) <a name="l00254"></a>00254 <a class="code" href="playlist-new_8c.html#a0f9dc152eb2c9f1c293e97397cfb90c5">playlist_entry_delete</a> (playlist, 0, <a class="code" href="playlist-new_8c.html#af64b7c6ea43b1b56f85c348ddaf39bae">playlist_entry_count</a> (playlist)); <a name="l00255"></a>00255 <span class="keywordflow">else</span> <a name="l00256"></a>00256 <a class="code" href="playlist-new_8c.html#ab709efe0da5c9307d4c94b4c65ecc7c5">playlist_queue_delete</a> (playlist, 0, <a class="code" href="playlist-new_8c.html#a09758f1ecda1297dca53713502403651">playlist_queue_count</a> (playlist)); <a name="l00257"></a>00257 } <a name="l00258"></a>00258 <a name="l00259"></a>00259 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> entries = <a class="code" href="playlist-new_8c.html#af64b7c6ea43b1b56f85c348ddaf39bae">playlist_entry_count</a> (playlist); <a name="l00260"></a>00260 <span class="keywordflow">if</span> (at < 0) <a name="l00261"></a>00261 at = entries; <a name="l00262"></a>00262 <a name="l00263"></a>00263 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> added = 0; <a name="l00264"></a>00264 GQueue folders = <a class="code" href="compatibility_8h.html#a523cdd960666c428c666f061395b1989">G_QUEUE_INIT</a>; <a name="l00265"></a>00265 <span class="keyword">struct </span><a class="code" href="structindex.html">index</a> * <a class="code" href="playlist-api_8h.html#a783ee3d36e78898c539e7cc7c266075e">filenames</a> = <a class="code" href="index_8c.html#afe2dfc539946e773d628de6dfb37dda5">index_new</a> (); <a name="l00266"></a>00266 <a name="l00267"></a>00267 <span class="keywordflow">for</span> (; list != NULL; list = list->next) <a name="l00268"></a>00268 { <a name="l00269"></a>00269 <span class="keywordflow">if</span> (<a class="code" href="playlist-utils_8c.html#aceb2432d2d85f17ae4c770eed0dcd4aa">filename_is_playlist</a> (list->data)) <a name="l00270"></a>00270 { <a name="l00271"></a>00271 <a class="code" href="playlist-api_8h.html#a10834e1b204827d4ea161ff4ee83ff77">playlist_insert_playlist</a> (playlist, at + added, list->data); <a name="l00272"></a>00272 added += <a class="code" href="playlist-new_8c.html#af64b7c6ea43b1b56f85c348ddaf39bae">playlist_entry_count</a> (playlist) - entries; <a name="l00273"></a>00273 entries = <a class="code" href="playlist-new_8c.html#af64b7c6ea43b1b56f85c348ddaf39bae">playlist_entry_count</a> (playlist); <a name="l00274"></a>00274 } <a name="l00275"></a>00275 <span class="keywordflow">else</span> <span class="keywordflow">if</span> (<a class="code" href="vfs_8c.html#a0657032b7f89495051c6be9936144418" title="Wrapper for g_file_test().">vfs_file_test</a> (list->data, G_FILE_TEST_IS_DIR)) <a name="l00276"></a>00276 g_queue_push_tail (& folders, list->data); <a name="l00277"></a>00277 <span class="keywordflow">else</span> <a name="l00278"></a>00278 <a class="code" href="index_8c.html#ab6203e3c4c1d82a32ae22c772485ae54">index_append</a> (filenames, g_strdup (list->data)); <a name="l00279"></a>00279 } <a name="l00280"></a>00280 <a name="l00281"></a>00281 <a class="code" href="playlist-api_8h.html#a5d9a18d7268bc797fb1afd5c142e74d8">playlist_entry_insert_batch</a> (playlist, at + added, filenames, NULL); <a name="l00282"></a>00282 added += <a class="code" href="playlist-new_8c.html#af64b7c6ea43b1b56f85c348ddaf39bae">playlist_entry_count</a> (playlist) - entries; <a name="l00283"></a>00283 <a name="l00284"></a>00284 <span class="keywordflow">if</span> (added && play) <a name="l00285"></a>00285 { <a name="l00286"></a>00286 <a class="code" href="playlist-new_8c.html#a899f846c0ea0d1ec3a44c891ddb5d1cc">playlist_set_playing</a> (playlist); <a name="l00287"></a>00287 <span class="keywordflow">if</span> (! <a class="code" href="audconfig_8c.html#a98bd56a064259046a6cc6b1a620badf8">cfg</a>.shuffle) <a name="l00288"></a>00288 <a class="code" href="playlist-new_8c.html#af5363b67853811340e04abadac916756">playlist_set_position</a> (playlist, at); <a name="l00289"></a>00289 <a class="code" href="playback_8c.html#a8ddcc8a2a037e189c10ecc7d51c0e224">playback_play</a> (0, FALSE); <a name="l00290"></a>00290 play = FALSE; <a name="l00291"></a>00291 } <a name="l00292"></a>00292 <a name="l00293"></a>00293 <span class="keyword">const</span> gchar * folder; <a name="l00294"></a>00294 <span class="keywordflow">while</span> ((folder = g_queue_pop_head (& folders)) != NULL) <a name="l00295"></a>00295 { <a name="l00296"></a>00296 <a class="code" href="folder-add_8c.html#a832dd1ace628c5a17b300d9adc648e2b">playlist_insert_folder</a> (playlist, at + added, folder, play); <a name="l00297"></a>00297 play = FALSE; <a name="l00298"></a>00298 } <a name="l00299"></a>00299 } <a name="l00300"></a>00300 <a name="l00301"></a><a class="code" href="drct_8c.html#a3001fd1003dff2f0026a24c82010c892">00301</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a3001fd1003dff2f0026a24c82010c892">drct_pl_add</a> (<span class="keyword">const</span> gchar * <a class="code" href="misc-api_8h.html#a820d8643bcfa9e2641dd6377f804de20">filename</a>, <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="playlist-api_8h.html#af5e8b5caf7672073a7b6cc7131d1d809">at</a>) <a name="l00302"></a>00302 { <a name="l00303"></a>00303 GList * <a class="code" href="misc-api_8h.html#a5b3afcdfb4bae9b4dd1b1ba8f2e6e638">list</a> = g_list_prepend (NULL, (<span class="keywordtype">void</span> *) filename); <a name="l00304"></a>00304 <a class="code" href="drct_8c.html#a97a74146fe4034e73601ae6817e0f918">add_list</a> (list, at, FALSE); <a name="l00305"></a>00305 g_list_free (list); <a name="l00306"></a>00306 } <a name="l00307"></a>00307 <a name="l00308"></a><a class="code" href="drct_8c.html#a8c5f307335391ab63477d7857a39dbf6">00308</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a8c5f307335391ab63477d7857a39dbf6">drct_pl_add_list</a> (GList * <a class="code" href="misc-api_8h.html#a5b3afcdfb4bae9b4dd1b1ba8f2e6e638">list</a>, <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="playlist-api_8h.html#af5e8b5caf7672073a7b6cc7131d1d809">at</a>) <a name="l00309"></a>00309 { <a name="l00310"></a>00310 <a class="code" href="drct_8c.html#a97a74146fe4034e73601ae6817e0f918">add_list</a> (list, at, FALSE); <a name="l00311"></a>00311 } <a name="l00312"></a>00312 <a name="l00313"></a><a class="code" href="drct_8c.html#a304df3adf9b85b2f584500da60d98b10">00313</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a304df3adf9b85b2f584500da60d98b10">drct_pl_open</a> (<span class="keyword">const</span> gchar * <a class="code" href="misc-api_8h.html#a820d8643bcfa9e2641dd6377f804de20">filename</a>) <a name="l00314"></a>00314 { <a name="l00315"></a>00315 GList * <a class="code" href="misc-api_8h.html#a5b3afcdfb4bae9b4dd1b1ba8f2e6e638">list</a> = g_list_prepend (NULL, (<span class="keywordtype">void</span> *) filename); <a name="l00316"></a>00316 <a class="code" href="drct_8c.html#a97a74146fe4034e73601ae6817e0f918">add_list</a> (list, -1, TRUE); <a name="l00317"></a>00317 g_list_free (list); <a name="l00318"></a>00318 } <a name="l00319"></a>00319 <a name="l00320"></a><a class="code" href="drct_8c.html#a9514b4418c40d5600ed784854c3b6136">00320</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a9514b4418c40d5600ed784854c3b6136">drct_pl_open_list</a> (GList * <a class="code" href="misc-api_8h.html#a5b3afcdfb4bae9b4dd1b1ba8f2e6e638">list</a>) <a name="l00321"></a>00321 { <a name="l00322"></a>00322 <a class="code" href="drct_8c.html#a97a74146fe4034e73601ae6817e0f918">add_list</a> (list, -1, TRUE); <a name="l00323"></a>00323 } <a name="l00324"></a>00324 <a name="l00325"></a><a class="code" href="drct_8c.html#a6ade6c3349d12f17e209a932b9f81072">00325</a> <span class="keyword">static</span> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a6ade6c3349d12f17e209a932b9f81072">activate_temp</a> (<span class="keywordtype">void</span>) <a name="l00326"></a>00326 { <a name="l00327"></a>00327 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="playlist-new_8c.html#ae9bb6d03717891be4859bb35adcea142">playlists</a> = <a class="code" href="playlist-new_8c.html#afe6f4255fa895b81dfc74ed09440a954">playlist_count</a> (); <a name="l00328"></a>00328 <span class="keyword">const</span> gchar * title = <a class="code" href="i18n_8h.html#a32a3cf3d9dd914f5aeeca5423c157934">_</a>(<span class="stringliteral">"Temporary Playlist"</span>); <a name="l00329"></a>00329 <a name="l00330"></a>00330 <span class="keywordflow">for</span> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structplaylist.html">playlist</a> = 0; <a class="code" href="structplaylist.html">playlist</a> < <a class="code" href="playlist-new_8c.html#ae9bb6d03717891be4859bb35adcea142">playlists</a>; <a class="code" href="structplaylist.html">playlist</a> ++) <a name="l00331"></a>00331 { <a name="l00332"></a>00332 <span class="keywordflow">if</span> (! strcmp (<a class="code" href="playlist-new_8c.html#ad4a7ded51091d0f3844022b2c4f8b764">playlist_get_title</a> (<a class="code" href="structplaylist.html">playlist</a>), title)) <a name="l00333"></a>00333 { <a name="l00334"></a>00334 <a class="code" href="playlist-new_8c.html#af34d9eaa4d82c7878e86c8db6e69c7d7">playlist_set_active</a> (<a class="code" href="structplaylist.html">playlist</a>); <a name="l00335"></a>00335 <span class="keywordflow">return</span>; <a name="l00336"></a>00336 } <a name="l00337"></a>00337 } <a name="l00338"></a>00338 <a name="l00339"></a>00339 <a class="code" href="playlist-new_8c.html#aafa0be01562188eeaa58139dba11a48f">playlist_insert</a> (playlists); <a name="l00340"></a>00340 <a class="code" href="playlist-new_8c.html#a482306c73c14325dde96a440705b7f4a">playlist_set_title</a> (playlists, title); <a name="l00341"></a>00341 <a class="code" href="playlist-new_8c.html#af34d9eaa4d82c7878e86c8db6e69c7d7">playlist_set_active</a> (playlists); <a name="l00342"></a>00342 } <a name="l00343"></a>00343 <a name="l00344"></a><a class="code" href="drct_8c.html#a53183be972d579f4fc87e78ee19cef22">00344</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a53183be972d579f4fc87e78ee19cef22">drct_pl_open_temp</a> (<span class="keyword">const</span> gchar * <a class="code" href="misc-api_8h.html#a820d8643bcfa9e2641dd6377f804de20">filename</a>) <a name="l00345"></a>00345 { <a name="l00346"></a>00346 <a class="code" href="drct_8c.html#a6ade6c3349d12f17e209a932b9f81072">activate_temp</a> (); <a name="l00347"></a>00347 <a class="code" href="drct_8c.html#a304df3adf9b85b2f584500da60d98b10">drct_pl_open</a> (filename); <a name="l00348"></a>00348 } <a name="l00349"></a>00349 <a name="l00350"></a><a class="code" href="drct_8c.html#a24c7fcdd27f6aeeff7e76eefd7c748f4">00350</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a24c7fcdd27f6aeeff7e76eefd7c748f4">drct_pl_open_temp_list</a> (GList * <a class="code" href="misc-api_8h.html#a5b3afcdfb4bae9b4dd1b1ba8f2e6e638">list</a>) <a name="l00351"></a>00351 { <a name="l00352"></a>00352 <a class="code" href="drct_8c.html#a6ade6c3349d12f17e209a932b9f81072">activate_temp</a> (); <a name="l00353"></a>00353 <a class="code" href="drct_8c.html#a9514b4418c40d5600ed784854c3b6136">drct_pl_open_list</a> (list); <a name="l00354"></a>00354 } <a name="l00355"></a>00355 <a name="l00356"></a><a class="code" href="drct_8c.html#aa8a6d371fb34e53073d8ceb83a8b9f53">00356</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#aa8a6d371fb34e53073d8ceb83a8b9f53">drct_pl_delete</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structentry.html">entry</a>) <a name="l00357"></a>00357 { <a name="l00358"></a>00358 <a class="code" href="playlist-new_8c.html#a0f9dc152eb2c9f1c293e97397cfb90c5">playlist_entry_delete</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (), entry, 1); <a name="l00359"></a>00359 } <a name="l00360"></a>00360 <a name="l00361"></a><a class="code" href="drct_8c.html#a625975128058eb19ee2e66926ac0e259">00361</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a625975128058eb19ee2e66926ac0e259">drct_pl_clear</a> (<span class="keywordtype">void</span>) <a name="l00362"></a>00362 { <a name="l00363"></a>00363 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structplaylist.html">playlist</a> = <a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (); <a name="l00364"></a>00364 <a class="code" href="playlist-new_8c.html#a0f9dc152eb2c9f1c293e97397cfb90c5">playlist_entry_delete</a> (playlist, 0, <a class="code" href="playlist-new_8c.html#af64b7c6ea43b1b56f85c348ddaf39bae">playlist_entry_count</a> (playlist)); <a name="l00365"></a>00365 } <a name="l00366"></a>00366 <a name="l00367"></a>00367 <span class="comment">/* --- PLAYLIST QUEUE CONTROL --- */</span> <a name="l00368"></a>00368 <a name="l00369"></a><a class="code" href="drct_8c.html#ad1862148e52ad117773453c2c0064904">00369</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#ad1862148e52ad117773453c2c0064904">drct_pq_get_length</a> (<span class="keywordtype">void</span>) <a name="l00370"></a>00370 { <a name="l00371"></a>00371 <span class="keywordflow">return</span> <a class="code" href="playlist-new_8c.html#a09758f1ecda1297dca53713502403651">playlist_queue_count</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> ()); <a name="l00372"></a>00372 } <a name="l00373"></a>00373 <a name="l00374"></a><a class="code" href="drct_8c.html#a6a509ea5d7038b7f362411a53b974218">00374</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#a6a509ea5d7038b7f362411a53b974218">drct_pq_get_entry</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> queue_position) <a name="l00375"></a>00375 { <a name="l00376"></a>00376 <span class="keywordflow">return</span> <a class="code" href="playlist-new_8c.html#a26957f260d32201ae924d72c191b6ac7">playlist_queue_get_entry</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (), queue_position); <a name="l00377"></a>00377 } <a name="l00378"></a>00378 <a name="l00379"></a><a class="code" href="drct_8c.html#a889b89da80fef1b02195bef0df4a2bf3">00379</a> <a class="code" href="configdb-api_8h.html#a3ac4dad7ee7fd2890139bff9a134ee9a">gboolean</a> <a class="code" href="drct_8c.html#a889b89da80fef1b02195bef0df4a2bf3">drct_pq_is_queued</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structentry.html">entry</a>) <a name="l00380"></a>00380 { <a name="l00381"></a>00381 <span class="keywordflow">return</span> (<a class="code" href="drct_8c.html#added081e646a5545dfbd7eaf5bd9c752">drct_pq_get_queue_position</a> (entry) >= 0); <a name="l00382"></a>00382 } <a name="l00383"></a>00383 <a name="l00384"></a><a class="code" href="drct_8c.html#added081e646a5545dfbd7eaf5bd9c752">00384</a> <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="drct_8c.html#added081e646a5545dfbd7eaf5bd9c752">drct_pq_get_queue_position</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structentry.html">entry</a>) <a name="l00385"></a>00385 { <a name="l00386"></a>00386 <span class="keywordflow">return</span> <a class="code" href="playlist-new_8c.html#a9783b82b47a5f763a763a6ecde2d786f">playlist_queue_find_entry</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (), entry); <a name="l00387"></a>00387 } <a name="l00388"></a>00388 <a name="l00389"></a><a class="code" href="drct_8c.html#a3c3d3e34a7961459a885dc672763d38f">00389</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a3c3d3e34a7961459a885dc672763d38f">drct_pq_add</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structentry.html">entry</a>) <a name="l00390"></a>00390 { <a name="l00391"></a>00391 <a class="code" href="playlist-new_8c.html#a1acafab1110b6505e7b7f725cc26864d">playlist_queue_insert</a> (<a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (), -1, entry); <a name="l00392"></a>00392 } <a name="l00393"></a>00393 <a name="l00394"></a><a class="code" href="drct_8c.html#afe9aca18313c70bdba6fe8dab901f670">00394</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#afe9aca18313c70bdba6fe8dab901f670">drct_pq_remove</a> (<a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structentry.html">entry</a>) <a name="l00395"></a>00395 { <a name="l00396"></a>00396 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structplaylist.html">playlist</a> = <a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (); <a name="l00397"></a>00397 <a class="code" href="playlist-new_8c.html#ab709efe0da5c9307d4c94b4c65ecc7c5">playlist_queue_delete</a> (playlist, <a class="code" href="playlist-new_8c.html#a9783b82b47a5f763a763a6ecde2d786f">playlist_queue_find_entry</a> (playlist, <a name="l00398"></a>00398 entry), 1); <a name="l00399"></a>00399 } <a name="l00400"></a>00400 <a name="l00401"></a><a class="code" href="drct_8c.html#a6a92ce72b8a575aa9121f44dcb23c5e6">00401</a> <span class="keywordtype">void</span> <a class="code" href="drct_8c.html#a6a92ce72b8a575aa9121f44dcb23c5e6">drct_pq_clear</a> (<span class="keywordtype">void</span>) <a name="l00402"></a>00402 { <a name="l00403"></a>00403 <a class="code" href="misc-api_8h.html#acf599c059f43e0cca83145eb6b0c93cd">gint</a> <a class="code" href="structplaylist.html">playlist</a> = <a class="code" href="playlist-new_8c.html#a32abcfcf28e68da7c91b21db688e85f3">playlist_get_active</a> (); <a name="l00404"></a>00404 <a class="code" href="playlist-new_8c.html#ab709efe0da5c9307d4c94b4c65ecc7c5">playlist_queue_delete</a> (playlist, 0, <a class="code" href="playlist-new_8c.html#a09758f1ecda1297dca53713502403651">playlist_queue_count</a> (playlist)); <a name="l00405"></a>00405 } </pre></div></div> </div> <hr class="footer"/><address class="footer"><small>Generated on Sun Apr 17 2011 for Audacious by  <a href="http://www.doxygen.org/index.html"> <img class="footer" src="doxygen.png" alt="doxygen"/></a> 1.7.3 </small></address> </body> </html>