[prev in list] [next in list] [prev in thread] [next in thread] 

List:       kde-commits
Subject:    extragear/multimedia/kaffeine/src
From:       Christoph Pfister <christophpfister () gmail ! com>
Date:       2010-05-30 20:17:32
Message-ID: 20100530201732.6A854AC8C5 () svn ! kde ! org
[Download RAW message or body]

SVN commit 1132487 by pfister:

properly handle cd audio tracks
- this time without libcdparanoia dependency


 M  +1 -1      CMakeLists.txt  
 M  +2 -17     backend-xine/xineapplication.cpp  
 M  +5 -0      backend-xine/xinemediawidget.cpp  


--- trunk/extragear/multimedia/kaffeine/src/CMakeLists.txt #1132486:1132487
@@ -47,7 +47,7 @@
 install(FILES kaffeine.desktop DESTINATION ${XDG_APPS_INSTALL_DIR})
 
 kde4_add_executable(kaffeine-xbu ${kaffeinexbu_SRCS})
-target_link_libraries(kaffeine-xbu ${X11_X11_LIB} ${XINE_LIBRARY} ${KDE4_KDEUI_LIBS} cdda_interface)
+target_link_libraries(kaffeine-xbu ${X11_X11_LIB} ${XINE_LIBRARY} ${KDE4_KDEUI_LIBS})
 install(TARGETS kaffeine-xbu ${INSTALL_TARGETS_DEFAULT_ARGS})
 
 if(BUILD_DEBUG_MODULE)
--- trunk/extragear/multimedia/kaffeine/src/backend-xine/xineapplication.cpp #1132486:1132487
@@ -29,10 +29,6 @@
 #include <X11/Xlib.h>
 #include "xinecommands.h"
 
-extern "C" {
-#include <cdda_interface.h>
-};
-
 class XineParent : public XineParentMarshaller
 {
 public:
@@ -662,26 +658,15 @@
 			overrideCurrentTitle = 0;
 
 			if (encodedUrl.startsWith("cdda:")) {
+				xine_get_autoplay_input_plugin_ids(engine);
+				xine_get_autoplay_mrls(engine, "CD", &overrideTitleCount);
 				overrideCurrentTitle =
 					encodedUrl.mid(encodedUrl.lastIndexOf('/') + 1).toInt();
-				QByteArray devicePath;
 
 				if (overrideCurrentTitle < 1) {
 					overrideCurrentTitle = 1;
-					devicePath = encodedUrl.mid(7);
-				} else {
-					devicePath = encodedUrl.mid(7, encodedUrl.lastIndexOf('/') - 7);
 				}
-
-				cdrom_drive *drive = cdda_identify(devicePath.constData(), 0, NULL);
-
-				if (drive != NULL) {
-					if (cdda_open(drive) == 0) {
-						overrideTitleCount = cdda_tracks(drive);
-						cdda_close(drive);
 					}
-				}
-			}
 
 			if (!encodedUrl.isEmpty()) {
 				if (xine_open(stream, encodedUrl.constData()) == 1) {
--- trunk/extragear/multimedia/kaffeine/src/backend-xine/xinemediawidget.cpp #1132486:1132487
@@ -567,6 +567,11 @@
 void XineMediaWidget::playbackFinishedInternal()
 {
 	if ((currentState & Synchronized) != 0) {
+		if (currentUrl.startsWith("cdda") && (currentTitle < titleCount)) {
+			playNextTitle();
+			return;
+		}
+
 		if ((currentState & PlayingDvd) != 0) {
 			dirtyFlags |= PlayingDvdChanged;
 		}
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic