]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/commands/cmd_vars.cpp
skins2: fix memory leak (a malloc not paired with a free)
[vlc] / modules / gui / skins2 / commands / cmd_vars.cpp
index 9cd849a71c9bbb7abcf395f8e30005df25d59e67..b14c402d745337175424712b79f5a70c86bb4d4d 100644 (file)
  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  * GNU General Public License for more details.
  *
- * You should have received a copy of the GNU General Public License
- * along with this program; if not, write to the Free Software
- * Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111, USA.
+ * You should have received a copy of the GNU General Public License along
+ * with this program; if not, write to the Free Software Foundation, Inc.,
+ * 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
 #include "cmd_vars.hpp"
 #include "../src/vlcproc.hpp"
 #include "../utils/var_text.hpp"
-#include "../vars/playlist.hpp"
+#include "../vars/equalizer.hpp"
 #include "../vars/playtree.hpp"
 
 
-void CmdNotifyPlaylist::execute()
+void CmdPlaytreeChanged::execute()
 {
-    // Notify the playlist variable
-    Playlist &rVar = VlcProc::instance( getIntf() )->getPlaylistVar();
-    rVar.onChange();
+    VlcProc::instance( getIntf() )->getPlaytreeVar().onChange();
 }
 
-void CmdPlaytreeChanged::execute()
+void CmdPlaytreeUpdate::execute()
 {
-    // Notify  the playtree variable
-    Playtree &rVar = VlcProc::instance( getIntf() )->getPlaytreeVar();
-    rVar.onChange();
+    if( !m_pItem )
+        return;
+
+    playlist_t* pPlaylist = getIntf()->p_sys->p_playlist;
+    playlist_Lock( pPlaylist );
+    playlist_item_t* p_plItem = playlist_ItemGetByInput( pPlaylist, m_pItem );
+    int id = p_plItem ? p_plItem->i_id : 0;
+    playlist_Unlock( pPlaylist );
+
+    if( id )
+        VlcProc::instance( getIntf() )->getPlaytreeVar().onUpdateItem( id );
 }
 
+bool CmdPlaytreeUpdate::checkRemove( CmdGeneric *pQueuedCommand ) const
+{
+    // We don't use RTTI - Use C-style cast
+    CmdPlaytreeUpdate *pUpdateCommand = (CmdPlaytreeUpdate *)(pQueuedCommand);
+    return m_pItem == pUpdateCommand->m_pItem;
+}
 
-void CmdPlaytreeUpdate::execute()
+
+void CmdPlaytreeAppend::execute()
 {
-    // Notify  the playtree variable
-    Playtree &rVar = VlcProc::instance( getIntf() )->getPlaytreeVar();
-    rVar.onUpdate( m_id );
+    VlcProc::instance( getIntf() )->getPlaytreeVar().onAppend( m_pAdd );
 }
 
+void CmdPlaytreeDelete::execute()
+{
+    VlcProc::instance( getIntf() )->getPlaytreeVar().onDelete( m_id );
+}
 
 void CmdSetText::execute()
 {
-    // Change the text variable
     m_rText.set( m_value );
 }
 
+
+void CmdSetEqBands::execute()
+{
+    m_rEqBands.set( m_value );
+}
+
+
+void CmdSetEqPreamp::execute()
+{
+    m_rPreamp.set( m_value, false );
+}