]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/commands/cmd_quit.cpp
Fix unprotected access of input item (skins2).
[vlc] / modules / gui / skins2 / commands / cmd_quit.cpp
index 88b5cfbf46b4c77ac4933c44fb16d6ad83f1c85e..74cd7ed8a739e5600077861aaee19cb314a9e9e4 100644 (file)
@@ -1,11 +1,11 @@
 /*****************************************************************************
  * cmd_quit.cpp
  *****************************************************************************
- * Copyright (C) 2003 VideoLAN
+ * Copyright (C) 2003 the VideoLAN team
  * $Id$
  *
  * Authors: Cyril Deguet     <asmax@via.ecp.fr>
- *          Olivier Teulière <ipkiss@via.ecp.fr>
+ *          Olivier Teulière <ipkiss@via.ecp.fr>
  *
  * This program is free software; you can redistribute it and/or modify
  * it under the terms of the GNU General Public License as published by
  *
  * 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.
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA.
  *****************************************************************************/
 
+#ifdef HAVE_CONFIG_H
+#   include "config.h"
+#endif
+
+#include <vlc_osd.h>
+#include <vlc_playlist.h>
+
 #include "cmd_quit.hpp"
 #include "../src/os_factory.hpp"
 #include "../src/os_loop.hpp"
 
 void CmdQuit::execute()
 {
+    // Stop the playlist
+    vout_OSDMessage( getIntf(), DEFAULT_CHAN, _( "Quit" ) );
+    playlist_Stop( getIntf()->p_sys->p_playlist );
+
     // Get the instance of OSFactory
     OSFactory *pOsFactory = OSFactory::instance( getIntf() );
 
     // Exit the main OS loop
     pOsFactory->getOSLoop()->exit();
+
+    // Kill libvlc
+    vlc_object_kill( getIntf()->p_libvlc );
 }