]> git.sesse.net Git - vlc/blobdiff - modules/gui/skins2/commands/cmd_quit.cpp
mtime: Minimize imprecision and prevent overflow on darwin.
[vlc] / modules / gui / skins2 / commands / cmd_quit.cpp
index b2e6b58a5328d2298d608eb3aed543c1e41301ea..b6d49fa6478cb575e77d53960166e446a03d2030 100644 (file)
@@ -5,7 +5,7 @@
  * $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
  * 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()
 {
-    // Get the instance of OSFactory
-    OSFactory *pOsFactory = OSFactory::instance( getIntf() );
+    if( getIntf()->p_sys->p_input )
+    {
+        vout_thread_t *pVout = input_GetVout( getIntf()->p_sys->p_input );
+        if( pVout )
+        {
+            vout_OSDMessage( pVout, SPU_DEFAULT_CHANNEL, "%s", _( "Quit" ) );
+            vlc_object_release( pVout );
+        }
+    }
 
-    // Exit the main OS loop
-    pOsFactory->getOSLoop()->exit();
+    // Kill libvlc
+    libvlc_Quit( getIntf()->p_libvlc );
 }