From 0b2288da16894d45e95caf5c0f1f5cba3f17c2dd Mon Sep 17 00:00:00 2001 From: gregory guy Date: Sat, 13 Jun 2020 16:55:00 +0200 Subject: Conversion to the cmake building system. Signed-off-by: gregory guy --- CMakeLists.txt | 79 ++++ ConfigureChecks.cmake | 49 +++ FAQ | 13 + INSTALL | 29 ++ PKGBUILD | 17 - README | 48 +- SConstruct | 168 ------- TODO | 38 ++ config.h.cmake | 12 + configure | 87 ---- doc/CMakeLists.txt | 1 + doc/en/CMakeLists.txt | 1 + doc/en/index.docbook | 437 +++++++++++++++++++ doc/en/main.png | Bin 0 -> 12016 bytes doc/man/CMakeLists.txt | 5 + doc/man/codeine.1 | 94 ++++ misc/CMakeLists.txt | 31 ++ po/codeine.pot | 484 --------------------- po/messages.sh | 60 --- scons/codeine.py | 101 ----- scons/generic.py | 95 ---- scons/kde.py | 771 --------------------------------- scons/scons-mini.tar.bz2 | Bin 58214 -> 0 bytes src/CMakeLists.txt | 2 + src/FAQ | 13 - src/SConscript | 21 - src/TODO | 38 -- src/app/CMakeLists.txt | 54 +++ src/app/SConscript | 59 --- src/app/actions.cpp | 6 +- src/app/adjustSizeButton.cpp | 10 +- src/app/adjustSizeButton.h | 2 +- src/app/analyzer.cpp | 12 +- src/app/analyzer.h | 6 +- src/app/captureFrame.cpp | 18 +- src/app/codeineConfig.h | 20 + src/app/config.h | 20 - src/app/fullScreenAction.cpp | 2 +- src/app/insertAspectRatioMenuItems.cpp | 2 +- src/app/main.cpp | 6 +- src/app/mainWindow.cpp | 25 +- src/app/mainWindow.h | 2 +- src/app/playDialog.cpp | 14 +- src/app/playDialog.h | 2 +- src/app/playlistFile.cpp | 10 +- src/app/slider.cpp | 14 +- src/app/slider.h | 2 +- src/app/stateChange.cpp | 14 +- src/app/theStream.cpp | 2 +- src/app/theStream.h | 6 +- src/app/videoSettings.cpp | 8 +- src/app/videoSettings.h | 2 +- src/app/videoWindow.cpp | 8 +- src/app/volumeAction.cpp | 14 +- src/app/xineConfig.cpp | 20 +- src/app/xineConfig.h | 2 +- src/app/xineEngine.cpp | 15 +- src/app/xineEngine.h | 6 +- src/debug.h | 4 +- src/mxcl.library.cpp | 2 +- src/mxcl.library.h | 2 +- src/part/CMakeLists.txt | 36 ++ src/part/SConscript | 12 - src/part/part.cpp | 8 +- src/part/toolbar.cpp | 6 +- src/part/videoWindow.cpp | 8 +- src/part/videoWindow.h | 4 +- src/part/xineEngine.cpp | 12 +- translations/CMakeLists.txt | 1 + translations/messages/CMakeLists.txt | 14 + translations/messages/codeine.pot | 484 +++++++++++++++++++++ 71 files changed, 1547 insertions(+), 2123 deletions(-) create mode 100644 CMakeLists.txt create mode 100644 ConfigureChecks.cmake create mode 100644 FAQ create mode 100644 INSTALL delete mode 100644 PKGBUILD delete mode 100644 SConstruct create mode 100644 TODO create mode 100644 config.h.cmake delete mode 100755 configure create mode 100644 doc/CMakeLists.txt create mode 100644 doc/en/CMakeLists.txt create mode 100644 doc/en/index.docbook create mode 100644 doc/en/main.png create mode 100644 doc/man/CMakeLists.txt create mode 100644 doc/man/codeine.1 create mode 100644 misc/CMakeLists.txt delete mode 100644 po/codeine.pot delete mode 100755 po/messages.sh delete mode 100644 scons/codeine.py delete mode 100644 scons/generic.py delete mode 100644 scons/kde.py delete mode 100644 scons/scons-mini.tar.bz2 create mode 100644 src/CMakeLists.txt delete mode 100644 src/FAQ delete mode 100644 src/SConscript delete mode 100644 src/TODO create mode 100644 src/app/CMakeLists.txt delete mode 100644 src/app/SConscript create mode 100644 src/app/codeineConfig.h delete mode 100644 src/app/config.h create mode 100644 src/part/CMakeLists.txt delete mode 100644 src/part/SConscript create mode 100644 translations/CMakeLists.txt create mode 100644 translations/messages/CMakeLists.txt create mode 100644 translations/messages/codeine.pot diff --git a/CMakeLists.txt b/CMakeLists.txt new file mode 100644 index 0000000..4ddfb4f --- /dev/null +++ b/CMakeLists.txt @@ -0,0 +1,79 @@ +############################################ +# # +# Improvements and feedbacks are welcome # +# # +# This file is released under GPL >= 3 # +# # +############################################ + + +cmake_minimum_required( VERSION 2.8 ) + + +#### general package setup + +project( codeine ) +set( VERSION R14.1.0 ) + + +#### include essential cmake modules + +include( FindPkgConfig ) +include( CheckFunctionExists ) +include( CheckSymbolExists ) +include( CheckIncludeFile ) +include( CheckLibraryExists ) +include( CheckCSourceCompiles ) +include( CheckCXXSourceCompiles ) + + +#### include our cmake modules + +set( CMAKE_MODULE_PATH "${CMAKE_SOURCE_DIR}/cmake/modules" ) +include( TDEMacros ) + + +##### setup install paths + +include( TDESetupPaths ) +tde_setup_paths( ) + + +##### optional stuff + +option( WITH_ALL_OPTIONS "Enable all optional support" OFF ) +option( WITH_GCC_VISIBILITY "Enable fvisibility and fvisibility-inlines-hidden" ${WITH_ALL_OPTIONS} ) + + +##### user requested modules + +option( BUILD_ALL "Build all" ON ) +option( BUILD_DOC "Build documentation" ${BUILD_ALL} ) +option( BUILD_TRANSLATIONS "Build translations" ${BUILD_ALL} ) + + +##### configure checks + +include( ConfigureChecks.cmake ) + + +###### global compiler settings + +add_definitions( -DHAVE_CONFIG_H -UTQT_NO_ASCII_CAST ) + +set( CMAKE_CXX_FLAGS "${CMAKE_CXX_FLAGS} ${TQT_CXX_FLAGS}" ) +set( CMAKE_SHARED_LINKER_FLAGS "${CMAKE_SHARED_LINKER_FLAGS} -Wl,--no-undefined" ) +set( CMAKE_MODULE_LINKER_FLAGS "${CMAKE_MODULE_LINKER_FLAGS} -Wl,--no-undefined" ) + + +##### directories + +add_subdirectory( src ) +add_subdirectory( misc ) +tde_conditional_add_subdirectory( BUILD_DOC doc ) +tde_conditional_add_subdirectory( BUILD_TRANSLATIONS translations ) + + +##### write configure files + +configure_file( config.h.cmake config.h @ONLY ) diff --git a/ConfigureChecks.cmake b/ConfigureChecks.cmake new file mode 100644 index 0000000..3a6fd3e --- /dev/null +++ b/ConfigureChecks.cmake @@ -0,0 +1,49 @@ +########################################### +# # +# Improvements and feedback are welcome # +# # +# This file is released under GPL >= 3 # +# # +########################################### + +# required stuff +find_package( TQt ) +find_package( TDE ) + +tde_setup_architecture_flags( ) + +include(TestBigEndian) +test_big_endian(WORDS_BIGENDIAN) + +tde_setup_largefiles( ) + + +##### check for gcc visibility support + +if( WITH_GCC_VISIBILITY ) + tde_setup_gcc_visibility( ) +endif( WITH_GCC_VISIBILITY ) + + +##### look for X11 + +find_package( X11 ) + + +##### look for XTest and xcb-util-keysyms + +pkg_search_module( X11_XTEST xtst ) +pkg_search_module( X11_KEYSIM xcb-keysyms ) + +if( (NOT X11_XTest_FOUND) OR (NOT X11_KEYSIM_FOUND) ) + set( NO_XTEST_EXTENSION 1 ) +endif() + + +#### xine-engine + +pkg_search_module( XINE libxine ) + +if( NOT XINE_FOUND ) + tde_message_fatal( "Xine-lib is required but was not found on your system" ) +endif( NOT XINE_FOUND ) diff --git a/FAQ b/FAQ new file mode 100644 index 0000000..5cefe5c --- /dev/null +++ b/FAQ @@ -0,0 +1,13 @@ +================================================================================ +FAQ +================================================================================ +This FAQ regards the source code and its layout. + + +Q: Why reimplement code in the part rather than consolidate it with the app? +A: Mainly to make the application start faster, loading a part is not free. But + also to make the part start faster as it has much lower requirements. + I admit the maintainance consequences aren't pretty, but the part has very + little code, so theoretically it should be easy to keep bug fixes in sync. + +=========1=========2=========3=========4=========5=========6=========7=========8 \ No newline at end of file diff --git a/INSTALL b/INSTALL new file mode 100644 index 0000000..0a51280 --- /dev/null +++ b/INSTALL @@ -0,0 +1,29 @@ +Basic Installation +================== + +codeine relies on cmake to build. + +Here are suggested default options: + + -DCMAKE_INSTALL_PREFIX="/opt/trinity" \ + -DCONFIG_INSTALL_DIR="/etc/trinity" \ + -DSYSCONF_INSTALL_DIR="/etc/trinity" \ + -DXDG_MENU_INSTALL_DIR="/etc/xdg/menus" \ + -DCMAKE_BUILD_TYPE=RelWithDebInfo \ + -DCMAKE_VERBOSE_MAKEFILE="ON" \ + -DCMAKE_SKIP_RPATH="OFF" \ + -DBUILD_ALL="ON" \ + -DWITH_ALL_OPTIONS="ON" + + +Requirements: +============= + +- xine-lib + + +Optional: +========= + +- XTest +- xcb-util-keysyms diff --git a/PKGBUILD b/PKGBUILD deleted file mode 100644 index 34bc514..0000000 --- a/PKGBUILD +++ /dev/null @@ -1,17 +0,0 @@ -pkgname=codeine -pkgver=1.0.1 -pkgrel=1 -pkgdesc="A simple xine-based video player" -url="http://www.methylblue.com/codeine/" - -build() { - echo -e "\033[0;34m==>\033[0;0;1m Configure \033[0;0m" - cd "$startdir" - ./configure prefix=/opt/kde - - echo -e "\033[0;34m==>\033[0;0;1m Make \033[0;0m" - make || return 1 - - echo -e "\033[0;34m==>\033[0;0;1m Install \033[0;0m" - DESTDIR="$startdir/pkg" make install -} diff --git a/README b/README index 6f5ad6c..4d03b2c 100644 --- a/README +++ b/README @@ -1,48 +1,2 @@ -INTRODUCTION - Codeine is a very simple xine-based media player. - I make the following promises: - - * I will not add any substantial features after version 1.0.0 - * After then, improvements will only be in the realm of usability and bug - fixes - - You can rely on Codeine for now and until xine is obsolete to be a simple - no-frills video(/media) player. - - Visit #codeine on freenode.net! - - Max Howell - - -REQUIREMENTS - You will need at least: - - * Qt 3.3.0 (Qt 3.2.x may work, it is just not tested) - * KDElibs 3.3.0 - * xine-lib 1.0.0-rc4 - - You also need python installed in order to build Codeine. - - -INSTALLATION - I use scons + bksys as the build system. But you can still do the following: - - % ./configure && make && su -c "make install" - - Or if you have scons installed, simply: - - % scons && su -c "scons install" - - Note that scons is a little silly and this kind of thing doesn't work: - - % ./configure --prefix=/foo/bar --debug=full - - Instead do: - - % ./configure prefix=/foo/bar debug=full - - -TRANSLATIONS - I will make the po file available for translation at the 1.0-rc1 stage, if - you want to make a translation I thank you in advance :-) + Codeine - a very simple xine-based media player. diff --git a/SConstruct b/SConstruct deleted file mode 100644 index ef31f1b..0000000 --- a/SConstruct +++ /dev/null @@ -1,168 +0,0 @@ -#!/usr/bin/python - -########################################### -## Common section, for loading the tools - -## Load the builders in config -env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde', 'codeine'], toolpath=['./scons/']) - - -## the configuration should be done by now, quit -if 'configure' in COMMAND_LINE_TARGETS: - env.Exit(0) - - - -""" -Overview of the module system : - -Each module (kde.py, generic.py, sound.py..) tries to load a stored -configuration when run. If the stored configuration does not exist -or if 'configure' is given on the command line (scons configure), -the module launches the verifications and detectioins and stores -the results. Modules also call exit when the detection fail. - -For example, kde.py stores its config into kde.cache.py - -This has several advantages for both developers and users : - - Users do not have to run ./configure to compile - - The build is insensitive to environment changes - - The cache maintains the objects so the config can be changed often - - Each module adds its own help via env.Help("message") -""" - -## Use the variables available in the environment - unsafe, but moc, meinproc need it :-/ -import os -env.AppendUnique( ENV = os.environ ) -## If you do not want to copy the whole environment, you can use this instead (HOME is necessary for uic): -#env.AppendUnique( ENV = {'PATH' : os.environ['PATH'], 'HOME' : os.environ['HOME']} ) - -## The target make dist requires the python module shutil which is in 2.3 -env.EnsurePythonVersion(2, 3) - -## Bksys requires scons 0.96 -env.EnsureSConsVersion(0, 96) - -""" -Explanation of the 'env = Environment...' line : -* the command line arguments and targets are stored in env['TARGS'] and env['ARGS'] for use by the tools -* the part 'tools=['default', 'generic ..' detect and load the necessary functions for doing the things -* the part "toolpath=['./']" tells that the tools can be found in the current directory (generic.py, kde.py ..) -""" - -""" -To load more configuration modules one should only have to add the appropriate tool -ie: to detect alsa and add the proper cflags, ldflags .. - a file alsa.py file will be needed, and one should then use : - env = Environment(TARGS=COMMAND_LINE_TARGETS, ARGS=ARGUMENTS, tools=['default', 'generic', 'kde', 'alsa'], toolpath=['./']) - -You can also load environments that are targetted to different platforms -ie: if os.sys.platform = "darwin": - env = Environment(... - elsif os.sys.platform = "linux": - env = Environment(... - -""" - -## Setup the cache directory - this avoids recompiling the same files over and over again -## this is very handy when working with cvs -env.CacheDir('cache') -env.SConsignFile('scons/signatures') - -## If you need more libs and they rely on pkg-config -## ie: add support for GTK (source: the scons wiki on www.scons.org) -# env.ParseConfig('pkg-config --cflags --libs gtk+-2.0') - -""" -This tell scons that there are no rcs or sccs files - this trick -can speed up things a bit when having lots of #include -in the source code and for network file systems -""" -env.SourceCode(".", None) -dirs = [ '.', 'src', 'src/part', 'src/app' ] -for dir in dirs: - env.SourceCode(dir, None) - -## If we had only one program (named kvigor) to build, -## we could add before exporting the env (some kde -## helpers in kde.py need it) : -# env['APPNAME'] = 'kvigor' - -## Use this define if you are using the kde translation scheme (.po files) -env.Append( CPPFLAGS = ['-DQT_NO_TRANSLATION'] ) - -## Uncomment the following if you need threading support threading -#env.Append( CPPFLAGS = ['-DQT_THREAD_SUPPORT', '-D_REENTRANT'] ) -#if os.uname()[0] == "FreeBSD": -# env.Append(LINKFLAGS=["-pthread"]) - -## Important : export the environment so that SConscript files can the -## configuration and builders in it -Export("env") - - -def string_it(target, source, env): - print "Visit #codeine on irc.freenode.net!" - return 0 - -env.AddPostAction( "install", string_it ) - -env.SConscript( "src/SConscript", build_dir='build', duplicate=0 ) - - -if 'dist' in COMMAND_LINE_TARGETS: - - APPNAME = 'codeine' - VERSION = os.popen("cat VERSION").read().rstrip() - FOLDER = APPNAME+'-'+VERSION - ARCHIVE = FOLDER+'.tar.bz2' - - GREEN ="\033[92m" - NORMAL ="\033[0m" - - import shutil - import glob - - ## check if the temporary directory already exists - if os.path.isdir(FOLDER): - shutil.rmtree(FOLDER) - - ## create a temporary directory - startdir = os.getcwd() - # TODO copying the cache takes forever! delete it first - shutil.copytree(startdir, FOLDER) - - ## remove the unnecessary files - os.popen("find "+FOLDER+" -name \"{arch}\" | xargs rm -rf") - os.popen("find "+FOLDER+" -name \".arch-ids\" | xargs rm -rf") - os.popen("find "+FOLDER+" -name \".arch-inventory\" | xargs rm -f") - os.popen("find "+FOLDER+" -name \".scon*\" | xargs rm -rf") - os.popen("find "+FOLDER+" -name \"kdiss*-data\" | xargs rm -rf") - os.popen("find "+FOLDER+" -name \"*.pyc\" | xargs rm -f") - os.popen("find "+FOLDER+" -name \"*.cache.py\" | xargs rm -f") - os.popen("find "+FOLDER+" -name \"*.log\" | xargs rm -f") - os.popen("find "+FOLDER+" -name \"*.tdevelop.*\" | xargs rm -f") - os.popen("find "+FOLDER+" -name \"*~\" | xargs rm -f") - - os.popen("rm -rf "+FOLDER+"/autopackage") - os.popen("rm -rf "+FOLDER+"/build") - os.popen("rm -rf "+FOLDER+"/cache") - os.popen("rm -f " +FOLDER+"/codeine-*.tar.bz2") - os.popen("rm -f " +FOLDER+"/config.py*") - os.popen("rm -f " +FOLDER+"/src/configure.h") - os.popen("rm -f " +FOLDER+"/Doxyfile") - os.popen("rm -f " +FOLDER+"/Makefile") - os.popen("rm -rf "+FOLDER+"/packages") - os.popen("rm -rf "+FOLDER+"/screenshots") - os.popen("rm -f " +FOLDER+"/scons/signatures.dblite") - - ## make the tarball - print GREEN+"Writing archive "+ARCHIVE+NORMAL - os.popen("tar cjf "+ARCHIVE+" "+FOLDER) - - ## remove the temporary directory - if os.path.isdir(FOLDER): - shutil.rmtree(FOLDER) - - env.Default(None) - env.Exit(0) diff --git a/TODO b/TODO new file mode 100644 index 0000000..a8d427d --- /dev/null +++ b/TODO @@ -0,0 +1,38 @@ +1.0.1 + Volume state saving + +1.0.x + Improve error messages and error handling + Consolidate error handling code in part and application so we don't diverge + No audio icon in analyzer when no audio + Playback finished message (amaroK statusbar code?) + Mouse move to show toolbar in fullscreen mode + People are likely to use "F" keyboard shortcut or escape after film ends in fullscreen mode + but the popup of the menu prevents this, as for some reason Qt stops handling keyboard + shortcuts. We need a solution. The escape issue makes the popup menu less useful. So + escape with the menu should exit fullscreen too. All shortcuts in the menu should work. + Shortcuts not in the menu shouldn't work as this is a modal menu! Could be dangerous. + Consider adding quit to the fullscreen context menu always, or make the menubar show with + toolbar when mouse moves. + Add tooltips to PlayMedia dialog for recent file listview entries (directory info etc.) + Show zoom percentage in statusbar/OSD when resizing window, snap to 100%? + More feedback at playback end + Better loading/buffering status/feedback + Save prettyTitle with url and show that in recent file list, + - save m3u's? <-- needs thought + - mark remote files? + Support .srt files like Kaffeine/xine-ui does, ask berkus if stuck. + DVD fullscreen, DVD menu shows or something + +1.1 + Volume button (not there by default) + Two entries in Konqueror: 1. open in new window 2. open in current window + Play from begin scroll up popup when resuming playback + Much better DVD support + Show length information in normal window + 'o' in fullscreen mode shows OSD of length and elapsed time info, <-- emulate mplayer + +ACTION + xine config dialog is modal +REACTION + none, at least yet, it is far easier to maintain modal dialogs \ No newline at end of file diff --git a/config.h.cmake b/config.h.cmake new file mode 100644 index 0000000..67860c5 --- /dev/null +++ b/config.h.cmake @@ -0,0 +1,12 @@ +#define VERSION "@VERSION@" + +// Defined if you have fvisibility and fvisibility-inlines-hidden support. +#cmakedefine __KDE_HAVE_GCC_VISIBILITY 1 + +/* Define WORDS_BIGENDIAN to 1 if your processor stores words with the most + significant byte first (like Motorola and SPARC, unlike Intel). */ +#cmakedefine WORDS_BIGENDIAN @WORDS_BIGENDIAN@ + +/* Defined if you don't have either the XTest headers or + the xcb-util-keysyms headers */ +#cmakedefine NO_XTEST_EXTENSION 1 diff --git a/configure b/configure deleted file mode 100755 index 83b4ab9..0000000 --- a/configure +++ /dev/null @@ -1,87 +0,0 @@ -#! /bin/sh -# TODO parse each passed argument and remove any "--" prefix - -BOLD="\033[1m" -RED="\033[91m" -GREEN="\033[92m" -YELLOW="\033[93m" -CYAN="\033[96m" -NORMAL="\033[0m" - -if command -v scons >/dev/null 2>&1; -then - SCONS=scons -else - if [ ! -e "scons/scons" ]; then - echo "" - echo -ne "Unpacking mini-scons..."$RED - - pushd scons >/dev/null 2>&1 - tar xjvf scons-mini.tar.bz2 > /dev/null 2>&1 - - if [[ "$?" == "0" ]]; then - echo -e $GREEN"done"$NORMAL - else - echo -e $RED"failed!"$NORMAL - exit 2 - fi - - popd > /dev/null - fi - - SCONS=scons/scons -fi - -if [[ "$1" == "--help" ]]; then - $SCONS -Q configure --help - exit -fi - -echo "" -echo "Configuring Codeine "`cat VERSION`"..." -echo "" - -#TODO remove all prefixed "--" - -$SCONS -Q configure $@ || exit 1 - -echo "" -echo -e "Your configure completed "$GREEN"successfully"$NORMAL", now type "$BOLD"make"$NORMAL -echo "" - -cat > Makefile << EOF -## Makefile automatically generated by unpack_local_scons.sh - -SCONS=$SCONS - -# scons : compile -# scons -c : clean -# scons install : install -# scons -c install : uninstall and clean - -# default target : use scons to build the programs -all: - \$(SCONS) -Q - -### There are several possibilities to help debugging : -# scons --debug=explain, scons --debug=tree .. -# -### To optimize the runtime, use -# scons --max-drift=1 --implicit-deps-unchanged -debug: - \$(SCONS) -Q --debug=tree - -clean: - \$(SCONS) -c - -install: - \$(SCONS) install - -uninstall: - \$(SCONS) -c install - -## this target creates a tarball of the project -dist: - \$(SCONS) dist -EOF - diff --git a/doc/CMakeLists.txt b/doc/CMakeLists.txt new file mode 100644 index 0000000..6d0aa9f --- /dev/null +++ b/doc/CMakeLists.txt @@ -0,0 +1 @@ +tde_auto_add_subdirectories( ) diff --git a/doc/en/CMakeLists.txt b/doc/en/CMakeLists.txt new file mode 100644 index 0000000..ba3ef3e --- /dev/null +++ b/doc/en/CMakeLists.txt @@ -0,0 +1 @@ +tde_create_handbook( DESTINATION ${PROJECT_NAME} ) diff --git a/doc/en/index.docbook b/doc/en/index.docbook new file mode 100644 index 0000000..c056003 --- /dev/null +++ b/doc/en/index.docbook @@ -0,0 +1,437 @@ + + + Codeine"> + + + +]> + + + + + + + + + +The &codeine; Handbook + + + +Mike +Diehl + +
madpenguin8@yahoo.com
+
+
+
+ + + + +2004 +Mike Diehl + + + +&FDLNotice; + + + +10/19/2004 +1 + + + + + +&codeine; is a simple media player for the TRINITY Desktop Environment. &codeine; is a front end to the xine multi-media player. + + + + + + +KDE +Codeine +xine +video +multi-media + + +
+ + + + +Introduction + + +&codeine; Screenshot + + +Screenshot + + + + + +&codeine; is a simple media player using the xine backend. &codeine; is a no frills media player that is especially usefull for short video clips where most other media players would just get in the way. + + + + + + +Configuring &codeine; + + + + + + + +Using &codeine; + + +Starting &codeine; +&codeine; can be started from the K-Menu, or from the command-line + + +From the K-Menu + + +Open the &kde; program menu by clicking on the big K icon on your panel. This will raise the program menu. Move your cursor up the menu to the Multimedia menu item. Choose &codeine;. + + + + + + +From the Command Line + + +You can start &codeine; by typing it's name on the command line. If you include a file name it will play the file. + + + + +%codeine + + + + + + + + + + + + +Menu and Command Reference + + +The Play Menu + + + + +Ctrlo + +Play +Play File.. + +Opens a file dialog to choose a file to play. + + + + +Play +Play Audio-CD + +Plays an Audio-CD that is in your CD-Rom drive. + + + + +Play +Play DVD + +Plays a DVD that is in your DVD drive. + + + + + + +Ctrlq + +Play +Quit + +Quits &codeine;. + + + + + + + +The Settings Menu + + + + + +Settings +Toolbars +Show Main Toolbar + +Enables or disable the main application toolbar. + + + + +Settings +Toolbars +Show DVD Toolbar + +Enables or disable the DVD toolbar. + + + + +Settings +Configure Shortcuts... + +Allows you to configure the &codeine; shortcuts. + + + + +Settings +Configure Toolbars... + +Allows you to configure the &codeine; toolbar options. + + + + +Settings +Configure Video... + +Opens a dialog for configuring the video output settings. The settings include: contrast, brightness, saturation, and hue. + + + + + + +The Help Menu + + + + +Help +&codeine; Handbook + +Opens this help document. + + + + + +ShiftF1 + +Help +What's This? + +Activates the "What's This?" mouse cursor allowing you to click an object to get a "What's this?" tooltip. + + + + +Help +Report Bug... + +Starts the bug report tool dialog window. + + + + +Help +About &codeine; + +Starts the About &codeine; dialog window. + + + + +Help +About KDE + +Starts the About &kde; dialog window. + + + + + + + + + + + + + + + + +Credits and License + + +&codeine; +Program copyright 2004 Max B. Howell max.howell@methylblue.com + +&underGPL; + + + + +Documentation + + +Documentation copyright 2004 Mike Diehl madpenguin8@yahoo.com + + +&underFDL; + + + + + + +Requirements + +&codeine; requires the installation of some software packages. The required packages are listed below. + + + +Required: +tdelibs +xine-lib + + +Optional: +XTest Library +xcb-util-keysyms + + +If you obtain these dependencies via a packaging system, you must +also install the devel versions of these packages! + + + + + +Installation + + +How to obtain &codeine; + + +&codeine; is now part of the TDE project, it can be found at: +http://trinitydesktop.org/. + + + + +Compilation and Installation + + +In order to compile and install &codeine; on your system, type the following in the base directory; distribution: + +% mkdir -p build +% cd build +% cmake ../ +% make +% make install + + + +Since &codeine; uses cmake you should have not trouble compiling it. Default options for cmake build are available in the INSTALL file. + + + + + +&documentation.index; +
+ diff --git a/doc/en/main.png b/doc/en/main.png new file mode 100644 index 0000000..a13586e Binary files /dev/null and b/doc/en/main.png differ diff --git a/doc/man/CMakeLists.txt b/doc/man/CMakeLists.txt new file mode 100644 index 0000000..8512250 --- /dev/null +++ b/doc/man/CMakeLists.txt @@ -0,0 +1,5 @@ +INSTALL( + FILES ${PROJECT_NAME}.1 + DESTINATION ${MAN_INSTALL_DIR}/man1 + COMPONENT doc +) diff --git a/doc/man/codeine.1 b/doc/man/codeine.1 new file mode 100644 index 0000000..dac7494 --- /dev/null +++ b/doc/man/codeine.1 @@ -0,0 +1,94 @@ +'\" -*- coding: us-ascii -*- +.if \n(.g .ds T< \\FC +.if \n(.g .ds T> \\F[\n[.fam]] +.de URL +\\$2 \(la\\$1\(ra\\$3 +.. +.if \n(.g .mso www.tmac +.TH codeine 1 2006-05-12 "" "" +.SH NAME +codeine \- video player for TDE, designed to be as simple as possible +.SH SYNOPSIS +'nh +.fi +.ad l +\fBcodeine\fR \kx +.if (\nx>(\n(.l/2)) .nr x (\n(.l/5) +'in \n(.iu+\nxu +[ +\fB\fIQt-options\fB\fR +] [ +\fB\fTDE-options\fB\fR +] [ +\fB\fIURL|file\fB\fR +] [ +--play-dvd +] +'in \n(.iu-\nxu +.ad b +'hy +.SH DESCRIPTION +Video player with a different philosophy: Simple, uncluttered interface +.PP +Features: +.TP 0.2i +\(bu +Plays DVDs, VCDs, all video formats supported by Xine +.TP 0.2i +\(bu +Bundled with a simple web-page KPart +.TP 0.2i +\(bu +Starts quickly +.SH OPTIONS +All TDE and TQt +programs accept a some common command-line options. codeine has no +application-specific options. +.PP +.TP +\*(T<\fB\-\-help\fR\*(T> +Show help about options +.TP +\*(T<\fB\-\-help\-qt\fR\*(T> +Show TQt specific options +.TP +\*(T<\fB\-\-help\-tde\fR\*(T> +Show TDE specific options +.TP +\*(T<\fB\-\-help\-all\fR\*(T> +Show all options +.TP +\*(T<\fB\-\-author\fR\*(T> +Show author information +.TP +\*(T<\fB\-v\fR\*(T>, \*(T<\fB\-\-version\fR\*(T> +Show version information +.TP +\*(T<\fB\-\-license\fR\*(T> +Show license information +.TP +\*(T<\fB\-\-\fR\*(T> +Indicates end of options +.TP +\*(T<\fBURL|file\fR\*(T> +URL to or filename of a video +.TP +\*(T<\fB\-\-play\-dvd\fR\*(T> +Play DVD Video +.SH AUTHOR +Codeine was written by Max Howell <\*(T> +Homepage: +.URL "" https://mirror.git.trinitydesktop.org/gitea/TDE/codeine/ +.SH COPYRIGHT +This manual page was written by Achim Bohnet <\*(T>, +based on work of Anthony Mercatante +<\*(T>, for the +Debian system (but may be used by others). +Tom Albers <\*(T> documented the play-dvd part. +Permission is granted to copy, distribute and/or modify this document +under the terms of the GNU General Public License, +Version 2 or any later version published by the Free Software Foundation. +.PP +On Debian systems, the complete text of the GNU General Public Version 2 +License can be found in +\*(T<\fI/usr/share/common\-licenses/GPL\-2\fR\*(T>. diff --git a/misc/CMakeLists.txt b/misc/CMakeLists.txt new file mode 100644 index 0000000..30786a7 --- /dev/null +++ b/misc/CMakeLists.txt @@ -0,0 +1,31 @@ +##### icons + +tde_install_icons( ${PROJECT_NAME} ) + + +##### other data + +install( + FILES ${PROJECT_NAME}ui.rc + DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME} +) + +install( + FILES ${PROJECT_NAME}rc + DESTINATION ${DATA_INSTALL_DIR}/${PROJECT_NAME} +) + +install( + FILES ${PROJECT_NAME}.desktop + DESTINATION ${XDG_APPS_INSTALL_DIR} +) + +install( + FILES ${PROJECT_NAME}_part.desktop + DESTINATION ${SERVICES_INSTALL_DIR} +) + +install( + FILES ${PROJECT_NAME}_play_dvd.desktop + DESTINATION ${DATA_INSTALL_DIR}/konqueror/servicemenus +) diff --git a/po/codeine.pot b/po/codeine.pot deleted file mode 100644 index c98a10d..0000000 --- a/po/codeine.pot +++ /dev/null @@ -1,484 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER -# This file is distributed under the same license as the PACKAGE package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: PACKAGE VERSION\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2005-08-01 17:30+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=CHARSET\n" -"Content-Transfer-Encoding: 8bit\n" - -#: ../src/app/videoSettings.cpp:91 -msgid "Video Settings" -msgstr "" - -#: ../src/app/playDialog.cpp:27 -msgid "Play Media" -msgstr "" - -#: ../src/app/playDialog.cpp:33 -msgid "What media would you like to play?" -msgstr "" - -#: ../src/app/playDialog.cpp:38 -msgid "Play File..." -msgstr "" - -#: ../src/app/playDialog.cpp:42 -msgid "Play VCD" -msgstr "" - -#: ../src/app/playDialog.cpp:46 -msgid "Play DVD" -msgstr "" - -#: ../src/app/playDialog.cpp:73 -msgid "Recently Played Media" -msgstr "" - -#: ../src/app/xineConfig.cpp:60 -msgid "Configure xine" -msgstr "" - -#: ../src/app/xineConfig.cpp:84 -msgid "" -"xine's defaults are usually sensible and should not require modification. " -"However, full configurability is provided for your pleasure ;-)." -msgstr "" - -#: ../src/app/adjustSizeButton.cpp:31 -msgid "Preferred Scale" -msgstr "" - -#: ../src/app/adjustSizeButton.cpp:35 -msgid "Scale 100%" -msgstr "" - -#: ../src/app/adjustSizeButton.cpp:41 -msgid "Adjust video scale?" -msgstr "" - -#: ../src/app/insertAspectRatioMenuItems.cpp:15 -msgid "Determine &Automatically" -msgstr "" - -#: ../src/app/insertAspectRatioMenuItems.cpp:17 -msgid "&Square (1:1)" -msgstr "" - -#: ../src/app/insertAspectRatioMenuItems.cpp:18 -msgid "&4:3" -msgstr "" - -#: ../src/app/insertAspectRatioMenuItems.cpp:19 -msgid "Ana&morphic (16:9)" -msgstr "" - -#: ../src/app/insertAspectRatioMenuItems.cpp:20 -msgid "&DVB (2.11:1)" -msgstr "" - -#: ../src/app/main.cpp:14 -msgid "A video player that has a usability focus" -msgstr "" - -#: ../src/app/main.cpp:15 -msgid "Copyright 2005, Max Howell" -msgstr "" - -#: ../src/app/main.cpp:19 -msgid "Play 'URL'" -msgstr "" - -#: ../src/app/main.cpp:28 -msgid "Handbook" -msgstr "" - -#: ../src/app/main.cpp:29 -msgid "Great reference code" -msgstr "" - -#: ../src/app/main.cpp:30 -msgid "The current Codeine icon" -msgstr "" - -#: ../src/app/main.cpp:31 -msgid "The video for \"Call on Me\" encouraged plenty of debugging! ;)" -msgstr "" - -#: ../src/app/playlistFile.cpp:32 -msgid "The file is not a playlist" -msgstr "" - -#: ../src/app/playlistFile.cpp:39 -msgid "Codeine could not download the remote playlist: %1" -msgstr "" - -#: ../src/app/playlistFile.cpp:54 -msgid "" -"The playlist, '%1', could not be interpreted. Perhaps it is empty?" -msgstr "" - -#: ../src/app/playlistFile.cpp:58 -msgid "Codeine could not open the file: %1" -msgstr "" - -#: ../src/app/stateChange.cpp:83 -msgid "&Pause" -msgstr "" - -#: ../src/app/stateChange.cpp:83 -msgid "&Play" -msgstr "" - -#: ../src/app/stateChange.cpp:147 -msgid "No media loaded" -msgstr "" - -#: ../src/app/stateChange.cpp:150 -msgid "Paused" -msgstr "" - -#: ../src/app/actions.cpp:13 ../src/part/part.cpp:38 -msgid "Play" -msgstr "" - -#: ../src/app/xineEngine.cpp:127 ../src/part/xineEngine.cpp:50 -msgid "xine was unable to initialize any video-drivers." -msgstr "" - -#: ../src/app/xineEngine.cpp:129 ../src/part/xineEngine.cpp:48 -msgid "xine was unable to initialize any audio-drivers." -msgstr "" - -#: ../src/app/xineEngine.cpp:231 -msgid "Loading media: %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:333 -msgid "Recording to: %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:364 -msgid "Playback paused" -msgstr "" - -#: ../src/app/xineEngine.cpp:369 -msgid "Playback resumed" -msgstr "" - -#: ../src/app/xineEngine.cpp:382 -msgid "There is no input plugin that can read: %1." -msgstr "" - -#: ../src/app/xineEngine.cpp:385 -msgid "There is no demux plugin available for %1." -msgstr "" - -#: ../src/app/xineEngine.cpp:388 -msgid "Demuxing failed for %1." -msgstr "" - -#: ../src/app/xineEngine.cpp:393 -msgid "Internal error while attempting to play %1." -msgstr "" - -#: ../src/app/xineEngine.cpp:433 -msgid "xine cannot currently seek in flac media" -msgstr "" - -#: ../src/app/xineEngine.cpp:585 ../src/app/xineEngine.cpp:593 -msgid "Channel %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:692 ../src/part/xineEngine.cpp:282 -msgid "The source is encrypted and can not be decrypted." -msgstr "" - -#: ../src/app/xineEngine.cpp:694 ../src/part/xineEngine.cpp:284 -msgid "The host is unknown for the URL: %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:696 ../src/part/xineEngine.cpp:286 -msgid "The device name you specified seems invalid." -msgstr "" - -#: ../src/app/xineEngine.cpp:698 ../src/part/xineEngine.cpp:288 -msgid "The network appears unreachable." -msgstr "" - -#: ../src/app/xineEngine.cpp:700 ../src/part/xineEngine.cpp:290 -msgid "Audio output unavailable; the device is busy." -msgstr "" - -#: ../src/app/xineEngine.cpp:702 ../src/part/xineEngine.cpp:292 -msgid "The connection was refused for the URL: %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:704 ../src/part/xineEngine.cpp:294 -msgid "xine could not find the URL: %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:706 ../src/part/xineEngine.cpp:296 -msgid "Access was denied for the URL: %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:708 ../src/part/xineEngine.cpp:298 -msgid "The source cannot be read for the URL: %1" -msgstr "" - -#: ../src/app/xineEngine.cpp:710 ../src/part/xineEngine.cpp:300 -msgid "A problem occurred while loading a library or decoder." -msgstr "" - -#: ../src/app/xineEngine.cpp:737 ../src/part/xineEngine.cpp:327 -msgid "Sorry, no additional information is available." -msgstr "" - -#: ../src/app/captureFrame.cpp:82 -msgid "Capture - %1" -msgstr "" - -#: ../src/app/captureFrame.cpp:98 -msgid "" -"*.png|PNG Format\n" -"*.jpeg|JPEG Format" -msgstr "" - -#: ../src/app/captureFrame.cpp:100 -msgid "Save Frame" -msgstr "" - -#: ../src/app/captureFrame.cpp:111 -msgid "%1 saved successfully" -msgstr "" - -#: ../src/app/captureFrame.cpp:113 -msgid "Sorry, could not save %1" -msgstr "" - -#: ../src/app/fullScreenAction.cpp:31 -msgid "Exit F&ull Screen Mode" -msgstr "" - -#: ../src/app/fullScreenAction.cpp:37 -msgid "F&ull Screen Mode" -msgstr "" - -#: ../src/app/mainWindow.cpp:94 -msgid "&Subtitles" -msgstr "" - -#: ../src/app/mainWindow.cpp:95 -msgid "A&udio Channels" -msgstr "" - -#: ../src/app/mainWindow.cpp:96 -msgid "Aspect &Ratio" -msgstr "" - -#: ../src/app/mainWindow.cpp:106 -msgid "" -msgstr "" - -#: ../src/app/mainWindow.cpp:106 -msgid " could not load its interface, this probably means that " -msgstr "" - -#: ../src/app/mainWindow.cpp:106 -msgid "" -" is not installed to the correct prefix. If you installed from packages " -"please contact the packager, if you installed from source please try running " -"the configure script again like this:
 % ./configure --"
-"prefix=`tde-config --prefix`
" -msgstr "" - -#: ../src/app/mainWindow.cpp:139 -msgid "xine could not be successfully initialised. " -msgstr "" - -#: ../src/app/mainWindow.cpp:139 -msgid "" -" will now exit. You can try to identify what is wrong with your xine " -"installation using the xine-check command at a command-prompt." -msgstr "" - -#: ../src/app/mainWindow.cpp:208 -msgid "Play &Media..." -msgstr "" - -#: ../src/app/mainWindow.cpp:214 -msgid "Record" -msgstr "" - -#: ../src/app/mainWindow.cpp:216 -msgid "Reset Video Scale" -msgstr "" - -#: ../src/app/mainWindow.cpp:217 ../src/app/mainWindow.cpp:423 -msgid "Media Information" -msgstr "" - -#: ../src/app/mainWindow.cpp:218 -msgid "Menu Toggle" -msgstr "" - -#: ../src/app/mainWindow.cpp:219 -msgid "&Capture Frame" -msgstr "" - -#: ../src/app/mainWindow.cpp:221 -msgid "Video Settings..." -msgstr "" - -#: ../src/app/mainWindow.cpp:222 -msgid "Configure xine..." -msgstr "" - -#: ../src/app/mainWindow.cpp:224 -msgid "Position Slider" -msgstr "" - -#: ../src/app/mainWindow.cpp:317 -msgid "Codeine was asked to open an empty URL; it cannot." -msgstr "" - -#: ../src/app/mainWindow.cpp:366 -msgid "Supported Media Formats" -msgstr "" - -#: ../src/app/mainWindow.cpp:366 -msgid "All Files" -msgstr "" - -#: ../src/app/mainWindow.cpp:367 -msgid "Select A File To Play" -msgstr "" - -#: ../src/app/mainWindow.cpp:438 -msgid "&Determine Automatically" -msgstr "" - -#: ../src/app/mainWindow.cpp:450 -msgid "&Off" -msgstr "" - -#: ../src/app/mainWindow.cpp:492 -msgid "Sorry, no media was found in the drop" -msgstr "" - -#: ../src/app/theStream.cpp:107 -msgid "Metadata" -msgstr "" - -#: ../src/app/theStream.cpp:109 -msgid "Title" -msgstr "" - -#: ../src/app/theStream.cpp:110 -msgid "Comment" -msgstr "" - -#: ../src/app/theStream.cpp:111 -msgid "Artist" -msgstr "" - -#: ../src/app/theStream.cpp:112 -msgid "Genre" -msgstr "" - -#: ../src/app/theStream.cpp:113 -msgid "Album" -msgstr "" - -#: ../src/app/theStream.cpp:114 -msgid "Year" -msgstr "" - -#: ../src/app/theStream.cpp:116 -msgid "Audio Properties" -msgstr "" - -#: ../src/app/theStream.cpp:118 -msgid "Bitrate" -msgstr "" - -#: ../src/app/theStream.cpp:118 -msgid "%1 bps" -msgstr "" - -#: ../src/app/theStream.cpp:119 -msgid "Sample-rate" -msgstr "" - -#: ../src/app/theStream.cpp:119 -msgid "%1 Hz" -msgstr "" - -#: ../src/app/theStream.cpp:121 -msgid "Technical Information" -msgstr "" - -#: ../src/app/theStream.cpp:123 -msgid "Video Codec" -msgstr "" - -#: ../src/app/theStream.cpp:124 -msgid "Audio Codec" -msgstr "" - -#: ../src/app/theStream.cpp:125 -msgid "System Layer" -msgstr "" - -#: ../src/app/theStream.cpp:126 -msgid "Input Plugin" -msgstr "" - -#: ../src/app/theStream.cpp:127 -msgid "CDINDEX_DISCID" -msgstr "" - -#: ../src/app/videoWindow.cpp:140 -msgid "Pause" -msgstr "" - -#: ../src/part/xineEngine.cpp:159 -msgid "The Codeine video player could not find an input plugin for '%1'." -msgstr "" - -#: ../src/part/xineEngine.cpp:162 -msgid "The Codeine video player could not find a demux plugin for '%1'." -msgstr "" - -#: ../src/part/xineEngine.cpp:165 -msgid "" -"The Codeine video player failed to demux '%1'; please check your xine " -"installation." -msgstr "" - -#: ../src/part/xineEngine.cpp:170 -msgid "" -"The Codeine video player reports an internal error; please check your xine " -"installation." -msgstr "" - -#: ../src/_translatorinfo.cpp:1 -msgid "" -"_: NAME OF TRANSLATORS\n" -"Your names" -msgstr "" - -#: ../src/_translatorinfo.cpp:3 -msgid "" -"_: EMAIL OF TRANSLATORS\n" -"Your emails" -msgstr "" diff --git a/po/messages.sh b/po/messages.sh deleted file mode 100755 index 9c2a2b1..0000000 --- a/po/messages.sh +++ /dev/null @@ -1,60 +0,0 @@ -#!/bin/sh - -# Inspired by Makefile.common from coolo -# this script is used to update the .po files - -# To update the translations, you will need a specific gettext -# patched for kde and a lot of patience, tenacity, luck, time .. - - -# I guess one should only update the .po files when all .cpp files -# are generated (after a make or scons) - -# If you have a better way to do this, do not keep that info -# for yourself and help me to improve this script, thanks -# (tnagyemail-mail tat yahoo d0tt fr) - -SRCDIR=../src # srcdir is the directory containing the source code -TIPSDIR=$SRCDIR # tipsdir is the directory containing the tips - -TDEDIR=`tde-config --prefix` -EXTRACTRC=extractrc -KDEPOT=`tde-config --prefix`/include/kde.pot -XGETTEXT="xgettext -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale -x $KDEPOT " - -## check that kde.pot is available -if ! test -e $KDEPOT; then - echo "$KDEPOT does not exist, there is something wrong with your installation!" - XGETTEXT="xgettext -C -ki18n -ktr2i18n -kI18N_NOOP -ktranslate -kaliasLocale " -fi - -> rc.cpp - -## extract the strings -echo "extracting the strings" - -# process the .ui and .rc files -$EXTRACTRC `find $SRCDIR -iname *.rc` >> rc.cpp -$EXTRACTRC `find $SRCDIR -iname *.ui` >> rc.cpp -echo -e 'i18n("_: NAME OF TRANSLATORS\\n"\n"Your names")\ni18n("_: EMAIL OF TRANSLATORS\\n"\n"Your emails")' > $SRCDIR/_translatorinfo.cpp - -# process the tips - $SRCDIR is supposed to be where the tips are living -pushd $TIPSDIR; preparetips >tips.cpp; popd - -$XGETTEXT `find $SRCDIR -name "*.cpp"` -o codeine.pot - -# remove the intermediate files -rm -f $TIPSDIR/tips.cpp -rm -f rc.cpp -rm -f $SRCDIR/_translatorinfo.cpp - -## now merge the .po files .. -echo "merging the .po files" - -for i in `ls *.po`; do - msgmerge $i kdissert.pot -o $i || exit 1 -done - -## finished -echo "Done" - diff --git a/scons/codeine.py b/scons/codeine.py deleted file mode 100644 index b56f50d..0000000 --- a/scons/codeine.py +++ /dev/null @@ -1,101 +0,0 @@ -## Max Howell, 2005 - -BOLD ="\033[1m" -RED ="\033[91m" -GREEN ="\033[92m" -YELLOW ="\033[93m" -CYAN ="\033[96m" -NORMAL ="\033[0m" - -import os - -def exists( env ): - return true - -def generate( env ): - - if 'configure' in env['TARGS']: - xine_lib_test_source_file = """ - #include - #include - - int main( int argc, char **argv ) - { - if( XINE_MAJOR_VERSION < 1 ) - return 1; - - const QString version( XINE_VERSION ); - - // eg. VERSION 1.0 - if( version[1] == '.' ) - return 0; - - if( version == "1-cvs" ) - return 0; - - if( version.startsWith( "1-rc" ) && QString(version[4]).toInt() > 3 ) - return 0; - - return 2; //too old - }""" - - def CheckKdeLibs( context ): - # ideally should be able to tell bksys what version we need - context.Message( 'Checking for KDElibs 3.3...' ) - kde_version = os.popen("tde-config --version|grep KDE").read().strip().split()[1] - result = int( kde_version[0] ) == 3 and int( kde_version[2] ) >= 3 - context.Result( result ) - return result - - def CheckXineLib( context ): - context.Message('Checking for xine-lib 1.0...') - result = context.TryLink(xine_lib_test_source_file, '.cpp') - context.Result(result) - return result - - - # prolly best to use a fresh env - # this seems to import the user's CXXFLAGS, etc., which may break - confenv = env.Copy() - configure = confenv.Configure(custom_tests = {'CheckXineLib' : CheckXineLib, 'CheckKdeLibs' : CheckKdeLibs}, log_file='configure.log') - confenv.AppendUnique(LIBS = 'tqt-mt') - confenv.AppendUnique(LINKFLAGS = '-L/usr/X11R6/lib') - - if not configure.CheckKdeLibs(): - print # 1 2 3 4 5 6 7 8' - print 'Configure could not detect KDElibs 3.3, which is required for Codeine to ' - print 'compile.' - print - confenv.Exit( 1 ) - - if not configure.CheckLibWithHeader( 'xine', 'xine.h', 'c++' ): - print # 1 2 3 4 5 6 7 8' - print 'Configure could not find either the xine library or header on your system. You ' - print 'should ammend the relevant paths. If you know which ones please email me so I ' - print 'can update this message!' - print - confenv.Exit( 2 ) - - if not configure.CheckXineLib(): - print # 1 2 3 4 5 6 7 8' - print 'Your xine-lib is either too old, or can not be linked against. Sorry for not ' - print 'being more specific..' - print - confenv.Exit( 3 ) - - if not configure.CheckLibWithHeader( 'Xtst', 'X11/extensions/XTest.h', 'c' ): - print # 1 2 3 4 5 6 7 8' - print 'libxtst was not found, this means the screensaver cannot be disabled during ' - print 'playback. YOU CAN STILL BUILD CODEINE! :)' - print - - file = open ( 'src/configure.h', 'w' ) - file.write( "#define NO_XTEST_EXTENSION\n" ) - file.close() - else: - # FIXME - thus only one thing can be in configure.h - lol - file = open ( 'src/configure.h', 'w' ) - file.write( "" ) - file.close() - - env = configure.Finish() diff --git a/scons/generic.py b/scons/generic.py deleted file mode 100644 index 3249df7..0000000 --- a/scons/generic.py +++ /dev/null @@ -1,95 +0,0 @@ -## Thomas Nagy, 2005 - -""" -Detect and store the most common options -* kdecxxflags : debug=1 (-g) or debug=full (-g3, slower) - else use the user CXXFLAGS if any, - or -O2 by default -* prefix : the installation path -* extraincludes : a list of paths separated by ':' -ie: scons configure debug=full prefix=/usr/local extraincludes=/tmp/include:/usr/local -""" - -BOLD ="\033[1m" -RED ="\033[91m" -GREEN ="\033[92m" -YELLOW ="\033[93m" -CYAN ="\033[96m" -NORMAL ="\033[0m" - -import os - -def exists(env): - return true - -def generate(env): - env.Help(""" -"""+BOLD+ -"""*** Generic options *** ------------------------"""+NORMAL+""" -"""+BOLD+"""* debug """+NORMAL+""": debug=1 (-g) or debug=full (-g3, slower) else use environment CXXFLAGS, or -O2 by default -"""+BOLD+"""* prefix """+NORMAL+""": the installation path -"""+BOLD+"""* extraincludes """+NORMAL+""": a list of paths separated by ':' -ie: """+BOLD+"""scons configure debug=full prefix=/usr/local extraincludes=/tmp/include:/usr/local -"""+NORMAL) - - # load the options - from SCons.Options import Options, PathOption - opts = Options('generic.cache.py') - opts.AddOptions( - ( 'KDECXXFLAGS', 'debug level for the project : full or just anything' ), - ( 'PREFIX', 'prefix for installation' ), - ( 'EXTRAINCLUDES', 'extra include paths for the project' ), - ) - opts.Update(env) - - # use this to avoid an error message 'how to make target configure ?' - env.Alias('configure', None) - - # configure the environment if needed - if 'configure' in env['TARGS'] or not env.has_key('KDECXXFLAGS'): - # need debugging ? - if env.has_key('KDECXXFLAGS'): - env.__delitem__('KDECXXFLAGS') - if env['ARGS'].get('debug', None): - debuglevel = env['ARGS'].get('debug', None) - print CYAN+'** Enabling debug for the project **' + NORMAL - if (debuglevel == "full"): - env['KDECXXFLAGS'] = ['-DDEBUG', '-ggdb', '-pipe', '-Wall'] - else: - env['KDECXXFLAGS'] = ['-DDEBUG', '-g'] - else: - if os.environ.has_key('CXXFLAGS'): - # user-defined flags (gentooers will be delighted) - import SCons.Util - env['KDECXXFLAGS'] = SCons.Util.CLVar( os.environ['CXXFLAGS'] ) - env.Append( KDECXXFLAGS = ['-DNDEBUG', '-DNO_DEBUG'] ) - else: - env.Append(KDECXXFLAGS = ['-O2', '-DNDEBUG', '-DNO_DEBUG']) - - # user-specified prefix - if env['ARGS'].get('prefix', None): - env['PREFIX'] = env['ARGS'].get('prefix', None) - print CYAN+'** set the installation prefix for the project : ' + env['PREFIX'] +' **'+ NORMAL - elif env.has_key('PREFIX'): - env.__delitem__('PREFIX') - - # user-specified include paths - env['EXTRAINCLUDES'] = env['ARGS'].get('extraincludes', None) - if env['ARGS'].get('extraincludes', None): - print CYAN+'** set extra include paths for the project : ' + env['EXTRAINCLUDES'] +' **'+ NORMAL - elif env.has_key('EXTRAINCLUDES'): - env.__delitem__('EXTRAINCLUDES') - - # and finally save the options in a cache - opts.Save('generic.cache.py', env) - - if env.has_key('KDECXXFLAGS'): - # load the flags - env.AppendUnique( CPPFLAGS = env['KDECXXFLAGS'] ) - - if env.has_key('EXTRAINCLUDES'): - incpaths = [] - for dir in str(env['EXTRAINCLUDES']).split(':'): - incpaths.append( dir ) - env.Append(CPPPATH = incpaths) - diff --git a/scons/kde.py b/scons/kde.py deleted file mode 100644 index b54057e..0000000 --- a/scons/kde.py +++ /dev/null @@ -1,771 +0,0 @@ -# Copyright (c) 2001, 2002, 2003, 2004 The SCons Foundation -# -# Permission is hereby granted, free of charge, to any person obtaining -# a copy of this software and associated documentation files (the -# "Software"), to deal in the Software without restriction, including -# without limitation the rights to use, copy, modify, merge, publish, -# distribute, sublicense, and/or sell copies of the Software, and to -# permit persons to whom the Software is furnished to do so, subject to -# the following conditions: -# -# The above copyright notice and this permission notice shall be included -# in all copies or substantial portions of the Software. -# -# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY -# KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE -# WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND -# NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE -# LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION -# OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION -# WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE. -# - -# Shamelessly stolen from qt.py and (heavily) modified into kde.py :) -# Thomas Nagy, 2004, 2005 - -""" -Here follow the basic rules for building kde programs -The detection is done in detect_kde when needed -We wan to use the cached variables as much as possible - -The variables used when configuring are : -* prefix : base install path, eg: /usr/local -* execprefix : install path for binaries, eg: /usr/bin -* datadir : install path for the data, eg: /usr/local/share -* libdir : install path for the libs, eg: /usr/lib - -* libsuffix : for those who need /usr/lib64 and the like .. - -* kdeincludes: path to the kde includes (/usr/include/tde on debian, ...) -* qtincludes : same punishment, for qt includes (/usr/include/qt on debian, ...) - -* tdelibs : path to the kde libs, for linking the programs -* qtlibs : same punishment, for qt libraries - -eg: scons configure libdir=/usr/local/lib qtincludes=/usr/include/qt -""" - -BOLD ="\033[1m" -RED ="\033[91m" -GREEN ="\033[92m" -YELLOW ="\033[93m" -CYAN ="\033[96m" -NORMAL ="\033[0m" - -def exists(env): - return True - -def detect_kde(env): - """ Detect the qt and kde environment using tde-config mostly """ - import os, sys, re - - prefix = env['ARGS'].get('prefix', None) - execprefix = env['ARGS'].get('execprefix', None) - datadir = env['ARGS'].get('datadir', None) - libdir = env['ARGS'].get('libdir', None) - libsuffix = env['ARGS'].get('libsuffix', '') - kdeincludes = env['ARGS'].get('kdeincludes', None) - tdelibs = env['ARGS'].get('tdelibs', None) - qtincludes = env['ARGS'].get('qtincludes', None) - qtlibs = env['ARGS'].get('qtlibs', None) - - if libdir: - libdir = libdir+libsuffix - - ## Detect the kde libraries - print "Checking for tde-config : ", - kde_config = os.popen("which tde-config 2>/dev/null").read().strip() - if len(kde_config): - print GREEN + "tde-config was found" + NORMAL - else: - print RED + "tde-config was NOT found in your PATH"+ NORMAL - print "Make sure kde is installed properly" - print "(missing package tdebase-devel?)" - # TODO : prompt the user for the path of tde-config ? - sys.exit(1) - env['TDEDIR'] = os.popen('tde-config -prefix').read().strip() - - print "Checking for kde version : ", - kde_version = os.popen("tde-config --version|grep KDE").read().strip().split()[1] - if int(kde_version[0]) != 3 or int(kde_version[2]) < 2: - print RED + kde_version - print RED + "Your kde version can be too old" + NORMAL - print RED + "Please make sure kde is at least 3.2" + NORMAL - else: - print GREEN + kde_version + NORMAL - - ## Detect the qt library - print "Checking for the qt library : ", - qtdir = os.getenv("QTDIR") - if qtdir: - print GREEN + "qt is in " + qtdir + NORMAL - else: - m = re.search('(.*)/lib/libqt.*', os.popen('ldd `tde-config --expandvars --install lib`' + '/libtdeui.so.4 | grep libqt').read().strip().split()[2]) - if m: - qtdir = m.group(1) - print YELLOW + "qt was found as " + m.group(1) + NORMAL - else: - print RED + "qt was not found" + NORMAL - print RED + "Please set QTDIR first (/usr/lib/qt3?)" + NORMAL - sys.exit(1) - env['QTDIR'] = qtdir.strip() - - ## Find the necessary programs uic and moc - print "Checking for uic : ", - uic = qtdir + "/bin/uic" - if os.path.isfile(uic): - print GREEN + "uic was found as " + uic + NORMAL - else: - uic = os.popen("which uic 2>/dev/null").read().strip() - if len(uic): - print YELLOW + "uic was found as " + uic + NORMAL - else: - uic = os.popen("which uic 2>/dev/null").read().strip() - if len(uic): - print YELLOW + "uic was found as " + uic + NORMAL - else: - print RED + "uic was not found - set QTDIR put it in your PATH ?" + NORMAL - sys.exit(1) - env['QT_UIC'] = uic - - print "Checking for moc : ", - moc = qtdir + "/bin/moc" - if os.path.isfile(moc): - print GREEN + "moc was found as " + moc + NORMAL - else: - moc = os.popen("which moc 2>/dev/null").read().strip() - if len(moc): - print YELLOW + "moc was found as " + moc + NORMAL - elif os.path.isfile("/usr/share/qt3/bin/moc"): - moc = "/usr/share/qt3/bin/moc" - print YELLOW + "moc was found as " + moc + NORMAL - else: - print RED + "moc was not found - set QTDIR or put it in your PATH ?" + NORMAL - sys.exit(1) - env['QT_MOC'] = moc - - ## check for the qt and kde includes - print "Checking for the qt includes : ", - if qtincludes and os.path.isfile(qtincludes + "/ntqlayout.h"): - # The user told where to look for and it looks valid - print GREEN + "ok " + qtincludes + NORMAL - else: - if os.path.isfile(qtdir + "/include/ntqlayout.h"): - # Automatic detection - print GREEN + "ok " + qtdir + "/include/ " + NORMAL - qtincludes = qtdir + "/include/" - elif os.path.isfile("/usr/include/qt3/ntqlayout.h"): - # Debian probably - print YELLOW + "the qt headers were found in /usr/include/qt3/ " + NORMAL - qtincludes = "/usr/include/qt3" - else: - print RED + "the qt headers were not found" + NORMAL - sys.exit(1) - - print "Checking for the kde includes : ", - kdeprefix = os.popen("tde-config --prefix").read().strip() - if not kdeincludes: - kdeincludes = kdeprefix+"/include/" - if os.path.isfile(kdeincludes + "/klineedit.h"): - print GREEN + "ok " + kdeincludes + NORMAL - else: - if os.path.isfile(kdeprefix+"/include/tde/klineedit.h"): - # Debian, Fedora probably - print YELLOW + "the kde headers were found in " + kdeprefix + "/include/tde/" + NORMAL - kdeincludes = kdeprefix + "/include/tde/" - else: - print RED + "The kde includes were NOT found" + NORMAL - sys.exit(1) - - if prefix: - ## use the user-specified prefix - if not execprefix: - execprefix = prefix - if not datadir: - datadir = prefix + "/share" - if not libdir: - libdir = execprefix + "/lib"+libsuffix - - subst_vars = lambda x: x.replace('${exec_prefix}', execprefix).replace('${datadir}', - datadir).replace('${libdir}', libdir) - debian_fix = lambda x: x.replace('/usr/share', '${datadir}') - env['KDEBIN'] = subst_vars(os.popen('tde-config --install exe').read().strip()) - env['KDEAPPS'] = subst_vars(os.popen('tde-config --install apps').read().strip()) - env['KDEDATA'] = subst_vars(os.popen('tde-config --install data').read().strip()) - env['KDEMODULE']= subst_vars(os.popen('tde-config --install module').read().strip()) - env['KDELOCALE']= subst_vars(os.popen('tde-config --install locale').read().strip()) - env['KDEDOC'] = subst_vars( debian_fix(os.popen('tde-config --install html').read().strip()) ) - env['KDEKCFG'] = subst_vars(os.popen('tde-config --install kcfg').read().strip()) - env['KDEXDG'] = subst_vars(os.popen('tde-config --install xdgdata-apps').read().strip()) - env['KDEMENU'] = subst_vars(os.popen('tde-config --install apps').read().strip()) - env['KDEMIME'] = subst_vars(os.popen('tde-config --install mime').read().strip()) - env['KDEICONS'] = subst_vars(os.popen('tde-config --install icon').read().strip()) - env['KDESERV'] = subst_vars(os.popen('tde-config --install services').read().strip()) - else: - # the user has given no prefix, install as a normal kde app - env['PREFIX'] = os.popen('tde-config --prefix').read().strip() - - env['KDEBIN'] = os.popen('tde-config --expandvars --install exe').read().strip() - env['KDEAPPS'] = os.popen('tde-config --expandvars --install apps').read().strip() - env['KDEDATA'] = os.popen('tde-config --expandvars --install data').read().strip() - env['KDEMODULE']= os.popen('tde-config --expandvars --install module').read().strip() - env['KDELOCALE']= os.popen('tde-config --expandvars --install locale').read().strip() - env['KDEDOC'] = os.popen('tde-config --expandvars --install html').read().strip() - env['KDEKCFG'] = os.popen('tde-config --expandvars --install kcfg').read().strip() - env['KDEXDG'] = os.popen('tde-config --expandvars --install xdgdata-apps').read().strip() - env['KDEMENU'] = os.popen('tde-config --expandvars --install apps').read().strip() - env['KDEMIME'] = os.popen('tde-config --expandvars --install mime').read().strip() - env['KDEICONS'] = os.popen('tde-config --expandvars --install icon').read().strip() - env['KDESERV'] = os.popen('tde-config --expandvars --install services').read().strip() - - env['QTPLUGINS']=os.popen('tde-config --expandvars --install qtplugins').read().strip() - - ## kde libs and includes - env['KDEINCLUDEPATH']= kdeincludes - if not tdelibs: - tdelibs = os.popen('tde-config --expandvars --install lib').read().strip() - env['KDELIBPATH']= tdelibs - - ## qt libs and includes - env['QTINCLUDEPATH']= qtincludes - if not qtlibs: - qtlibs = qtdir+ "/lib" - env['QTLIBPATH']= qtlibs - - -def generate(env): - """"Set up the qt and kde environment and builders - the moc part is difficult to understand """ - - env.Help(""" -"""+BOLD+ -"""*** KDE options *** --------------------""" -+NORMAL+""" -"""+BOLD+"""* prefix """+NORMAL+""": base install path, ie: /usr/local -"""+BOLD+"""* execprefix """+NORMAL+""": install path for binaries, ie: /usr/bin -"""+BOLD+"""* datadir """+NORMAL+""": install path for the data, ie: /usr/local/share -"""+BOLD+"""* libdir """+NORMAL+""": install path for the libs, ie: /usr/lib -"""+BOLD+"""* libsuffix """+NORMAL+""": suffix of libraries on amd64, ie: 64, 32 -"""+BOLD+"""* kdeincludes"""+NORMAL+""": path to the kde includes (/usr/include/tde on debian, ...) -"""+BOLD+"""* qtincludes """+NORMAL+""": same punishment, for qt includes (/usr/include/qt on debian, ...) -"""+BOLD+"""* tdelibs """+NORMAL+""": path to the kde libs, for linking the programs -"""+BOLD+"""* qtlibs """+NORMAL+""": same punishment, for qt libraries -ie: """+BOLD+"""scons configure libdir=/usr/local/lib qtincludes=/usr/include/qt -"""+NORMAL) - - import os.path - import re - - import SCons.Defaults - import SCons.Tool - import SCons.Util - - ui_extensions = [".ui", ".Ui", ".UI"] - header_extensions = [".h", ".hxx", ".hpp", ".hh", ".H", ".HH"] - source_extensions = [".cpp", ".cxx", ".cc", ".CPP", ".CXX", ".CC"] - - def find_file(filename, paths, node_factory): - retval = None - for dir in paths: - node = node_factory(filename, dir) - if node.rexists(): - return node - return None - - class _Metasources: - """ Callable class, which works as an emitter for Programs, SharedLibraries - and StaticLibraries.""" - - def __init__(self, objBuilderName): - self.objBuilderName = objBuilderName - - def __call__(self, target, source, env): - """ Smart autoscan function. Gets the list of objects for the Program - or Lib. Adds objects and builders for the special qt files. """ - try: - if int(env.subst('$QT_AUTOSCAN')) == 0: - return target, source - except ValueError: - pass - - try: - qtdebug = int(env.subst('$QT_DEBUG')) - except ValueError: - qtdebug = 0 - - # some shortcuts used in the scanner - FS = SCons.Node.FS.default_fs - splitext = SCons.Util.splitext - objBuilder = getattr(env, self.objBuilderName) - - # some regular expressions: - # Q_OBJECT detection - q_object_search = re.compile(r'[^A-Za-z0-9]Q_OBJECT[^A-Za-z0-9]') - - # cxx and c comment 'eater' - #comment = re.compile(r'(//.*)|(/\*(([^*])|(\*[^/]))*\*/)') - # CW: something must be wrong with the regexp. See also bug #998222 - # CURRENTLY THERE IS NO TEST CASE FOR THAT - - # The following is kind of hacky to get builders working properly (FIXME) - objBuilderEnv = objBuilder.env - objBuilder.env = env - mocBuilderEnv = env.Moc.env - env.Moc.env = env - - # make a deep copy for the result; MocH objects will be appended - out_sources = source[:] - - for obj in source: - if not obj.has_builder(): - # binary obj file provided - if qtdebug: - print "scons: qt: '%s' seems to be a binary. Discarded." % str(obj) - continue - cpp = obj.sources[0] - if not splitext(str(cpp))[1] in source_extensions: - if qtdebug: - print "scons: qt: '%s' is no cxx file. Discarded." % str(cpp) - # c or fortran source - continue - #cpp_contents = comment.sub('', cpp.get_contents()) - cpp_contents = cpp.get_contents() - - h = None - ui = None - - for ui_ext in ui_extensions: - # try to find the ui file in the corresponding source directory - uiname = splitext(cpp.name)[0] + ui_ext - ui = find_file(uiname, (cpp.get_dir(),), FS.File) - if ui: - if qtdebug: - print "scons: qt: found .ui file of header" #% (str(h), str(cpp)) - #h_contents = comment.sub('', h.get_contents()) - break - - # if we have a .ui file, do not continue, it is automatically handled by Uic - if ui: - continue - - for h_ext in header_extensions: - # try to find the header file in the corresponding source - # directory - hname = splitext(cpp.name)[0] + h_ext - h = find_file(hname, (cpp.get_dir(),), FS.File) - if h: - if qtdebug: - print "scons: qt: Scanning '%s' (header of '%s')" % (str(h), str(cpp)) - #h_contents = comment.sub('', h.get_contents()) - h_contents = h.get_contents() - break - - if not h and qtdebug: - print "scons: qt: no header for '%s'." % (str(cpp)) - if h and q_object_search.search(h_contents): - # h file with the Q_OBJECT macro found -> add .moc or _moc.cpp file - moc_cpp = None - - if env.has_key('NOMOCSCAN'): - moc_cpp = env.Moc(h) - else: - reg = '\n\s*#include\s+"'+splitext(cpp.name)[0]+'.moc"' - meta_object_search = re.compile(reg) - if meta_object_search.search(cpp_contents): - moc_cpp = env.Moc(h) - else: - moc_cpp = env.Moccpp(h) - moc_o = objBuilder(moc_cpp) - out_sources.append(moc_o) - if qtdebug: - print "scons: qt: found Q_OBJECT macro in '%s', moc'ing to '%s'" % (str(h), str(moc_cpp[0])) - - if cpp and q_object_search.search(cpp_contents): - print "error, bksys cannot handle cpp files with Q_OBJECT classes" - print "if you are sure this is a feature worth the effort, " - print "report this to the authors tnagyemail-mail yahoo.fr" - - # restore the original env attributes (FIXME) - objBuilder.env = objBuilderEnv - env.Moc.env = mocBuilderEnv - - return (target, out_sources) - - MetasourcesShared = _Metasources('SharedObject') - MetasourcesStatic = _Metasources('StaticObject') - - CLVar = SCons.Util.CLVar - splitext = SCons.Util.splitext - Builder = SCons.Builder.Builder - - # Detect the environment - replaces ./configure implicitely - # and store the options into a cache - from SCons.Options import Options - opts = Options('kde.cache.py') - opts.AddOptions( - ( 'QTDIR', 'root of qt directory' ), - ( 'QTLIBPATH', 'path to the qt libraries' ), - ( 'QTINCLUDEPATH', 'path to the qt includes' ), - ( 'QT_UIC', 'moc directory'), - ( 'QT_MOC', 'moc executable command'), - ( 'QTPLUGINS', 'uic executable command'), - ( 'TDEDIR', 'root of kde directory' ), - ( 'KDELIBPATH', 'path to the kde libs' ), - ( 'KDEINCLUDEPATH', 'path to the kde includes' ), - - ( 'PREFIX', 'root of the program installation'), - - ( 'KDEBIN', 'installation path of the kde binaries'), - ( 'KDEMODULE', 'installation path of the parts and libs'), - ( 'KDEAPPS', ''), - ( 'KDEDATA', 'installation path of the application data'), - ( 'KDELOCALE', ''), - ( 'KDEDOC', 'installation path of the application documentation'), - ( 'KDEKCFG', 'installation path of the .kcfg files'), - ( 'KDEXDG', 'installation path of the service types'), - ( 'KDEMENU', ''), - ( 'KDEMIME', 'installation path of to the mimetypes'), - ( 'KDEICONS', ''), - ( 'KDESERV', ''), - ) - opts.Update(env) - - # reconfigure when things are missing - if 'configure' in env['TARGS'] or not env.has_key('QTDIR') or not env.has_key('TDEDIR'): - detect_kde(env) - - # finally save the configuration - opts.Save('kde.cache.py', env) - - ## set default variables, one can override them in sconscript files - env.Append(CXXFLAGS = ['-I'+env['KDEINCLUDEPATH'], '-I'+env['QTINCLUDEPATH'] ]) - env.Append(LIBPATH = [env['KDELIBPATH'], env['QTLIBPATH'] ]) - - env['STATIC_AND_SHARED_OBJECTS_ARE_THE_SAME'] = 1 - - env['QT_AUTOSCAN'] = 1 - env['QT_DEBUG'] = 0 - - env['QT_UIC_HFLAGS'] = '-L $QTPLUGINS -nounload' - env['QT_UIC_CFLAGS'] = '$QT_UIC_HFLAGS -tr tr2i18n' - env['QT_LIBS'] = 'tqt-mt' - - env['LIBTOOL_FLAGS'] = '--silent --mode=compile --tag=CXX' - - env['QT_UICIMPLPREFIX'] = '' - env['QT_UICIMPLSUFFIX'] = '.cpp' - env['QT_MOCHPREFIX'] = '' - env['QT_MOCHSUFFIX'] = '.moc' - env['KDE_KCFG_IMPLPREFIX'] = '' - env['KDE_KCFG_IMPL_HSUFFIX'] = '.h' - env['KDE_KCFG_IMPL_CSUFFIX'] = '.cpp' - env['KDE_SKEL_IMPL_SUFFIX'] = '.skel' - env['MEINPROC'] = 'meinproc' - env['MSGFMT'] = 'msgfmt' - - - ###### ui file processing - def uicGenerator(target, source, env, for_signature): - act=[] - act.append('$QT_UIC $QT_UIC_HFLAGS -o '+target[0].path+' '+source[0].path) - act.append('rm -f ' +target[1].path) - act.append('echo \'#include \' >> '+target[1].path) - act.append('echo \'#include \' >> '+target[1].path) - act.append('$QT_UIC $QT_UIC_CFLAGS -impl '+target[0].path+' -o '+target[1].path+'.tmp '+source[0].path) - act.append('cat '+target[1].path+'.tmp >> '+target[1].path) - act.append('rm -f '+target[1].path+'.tmp') - act.append('echo \'#include "' + target[2].name + '"\' >> '+target[1].path) - act.append('$QT_MOC -o '+target[2].path+' '+target[0].path) - return act - - def uicEmitter(target, source, env): - adjustixes = SCons.Util.adjustixes - bs = SCons.Util.splitext(str(source[0].name))[0] - bs = os.path.join(str(target[0].get_dir()),bs) - # first target is automatically added by builder (.h file) - if len(target) < 2: - # second target is .cpp file - target.append(adjustixes(bs, - env.subst('$QT_UICIMPLPREFIX'), - env.subst('$QT_UICIMPLSUFFIX'))) - if len(target) < 3: - # third target is .moc file - target.append(adjustixes(bs, - env.subst('$QT_MOCHPREFIX'), - env.subst('$QT_MOCHSUFFIX'))) - return target, source - - UIC_BUILDER = Builder( - generator = uicGenerator, - emitter = uicEmitter, - suffix = '.h', - src_suffix = '.ui' ) - - ###### moc file processing - env['QT_MOCCOM'] = ('$QT_MOC -o ${TARGETS[0]} $SOURCE') - - MOC_BUILDER = Builder( - action = '$QT_MOCCOM', - suffix = '.moc', - src_suffix = '.h' ) - - MOCCPP_BUILDER = Builder( - action = '$QT_MOCCOM', - suffix = '_moc.cpp', - src_suffix = '.h' ) - - ###### kcfg file processing - def kcfgGenerator(target, source, env, for_signature): - act=[] - act.append('tdeconfig_compiler -d'+str(source[0].get_dir())+' '+source[1].path+' '+source[0].path) - return act - - def kcfgEmitter(target, source, env): - adjustixes = SCons.Util.adjustixes - bs = SCons.Util.splitext(str(source[0].name))[0] - bs = os.path.join(str(target[0].get_dir()),bs) - # first target is automatically added by builder (.h file) - if len(target) < 2: - # second target is .cpp file - target.append(adjustixes(bs, env.subst('$KDE_KCFG_IMPLPREFIX'), env.subst('$KDE_KCFG_IMPL_CSUFFIX'))) - - # find_file(kcfgfile, (source[0].get_dir(),) ,SCons.Node.FS.default_fs) - if len(source) <2: - if not os.path.isfile(str(source[0])): - print RED+'kcfg file given'+str(source[0])+' does not exist !'+NORMAL - return target, source - kfcgfilename = "" - kcfgFileDeclRx = re.compile("^[fF]ile\s*=\s*(.+)\s*$") - for line in file(str(source[0]), "r").readlines(): - match = kcfgFileDeclRx.match(line.strip()) - if match: - kcfgfilename = match.group(1) - break - source.append( str(source[0].get_dir())+'/'+kcfgfilename ) - return target, source - - KCFG_BUILDER = Builder( - generator = kcfgGenerator, - emitter = kcfgEmitter, - suffix = '.h', - src_suffix = '.kcfgc' ) - - ###### dcop processing - def dcopGenerator(target, source, env, for_signature): - act=[] - act.append('dcopidl '+source[0].path+' > '+target[1].path+'|| ( rm -f '+target[1].path+' ; false )') - act.append('dcopidl2cpp --c++-suffix cpp --no-signals --no-stub '+target[1].path) - return act - - def dcopEmitter(target, source, env): - bs = SCons.Util.splitext(str(source[0].name))[0] - bs = os.path.join(str(target[0].get_dir()),bs) - target.append(bs+'.kidl') - #target.append(bs+'_skel.cpp') - return target, source - - DCOP_BUILDER = Builder( - generator = dcopGenerator, - emitter = dcopEmitter, - suffix = '_skel.cpp', - src_suffix = '.h' ) - - ###### documentation (meinproc) processing - MEINPROC_BUILDER = Builder( - action = '$MEINPROC --check --cache $TARGET $SOURCE', - suffix = '.cache.bz2', - src_suffix = '.docbook' ) - - ###### translation files builder - TRANSFILES_BUILDER = Builder( - action = '$MSGFMT $SOURCE -o $TARGET', - suffix = '.gmo', - src_suffix = '.po' ) - - ###### libtool file builder - def laGenerator(target, source, env, for_signature): - act=[] - act.append('echo "dlname=\''+source[0].name+'\'" > '+target[0].path) - act.append('echo "library_names=\''+source[0].name+' '+source[0].name+' '+source[0].name+'\'" >> '+target[0].path) - act.append('echo "old_library=\'\'">> '+target[0].path) - act.append('echo "dependency_libs=\'\'">> '+target[0].path) - act.append('echo "current=0">> '+target[0].path) - act.append('echo "age=0">> '+target[0].path) - act.append('echo "revision=0">> '+target[0].path) - act.append('echo "installed=yes">> '+target[0].path) - act.append('echo "shouldnotlink=no">> '+target[0].path) - act.append('echo "dlopen=\'\'">> '+target[0].path) - act.append('echo "dlpreopen=\'\'">> '+target[0].path) - act.append('echo "libdir=\''+env['KDEMODULE']+'\'" >> '+target[0].path) - return act - - LA_BUILDER = Builder( - generator = laGenerator, - suffix = '.la', - src_suffix = '.so' ) - -####### TODO : real libtool builder (but i hate libtool - ita) -# def libtoolGenerator(target, source, env, for_signature): -# act=[] -# act.append('libtool $LIBTOOL_FLAGS $CXX $CXXFLAGS $CPPFLAGS $_CPPDEFFLAGS $_CPPINCFLAGS -c -o '+target[0].path+' '+source[0].path) -# return act -# LIBTOOL_BUILDER = Builder( -# generator = libtoolGenerator, -# suffix = '.lo', -# src_suffix = '.cpp' ) - - ##### register the builders - env['BUILDERS']['Uic'] = UIC_BUILDER - env['BUILDERS']['Moc'] = MOC_BUILDER - env['BUILDERS']['Moccpp'] = MOCCPP_BUILDER - env['BUILDERS']['Dcop'] = DCOP_BUILDER - env['BUILDERS']['Kcfg'] = KCFG_BUILDER - env['BUILDERS']['LaFile'] = LA_BUILDER - #env['BUILDERS']['Libtool'] = LIBTOOL_BUILDER - env['BUILDERS']['Meinproc'] = MEINPROC_BUILDER - env['BUILDERS']['Transfiles'] = TRANSFILES_BUILDER - - static_obj, shared_obj = SCons.Tool.createObjBuilders(env) - static_obj.src_builder.append('Uic') - shared_obj.src_builder.append('Uic') - static_obj.src_builder.append('Kcfg') - shared_obj.src_builder.append('Kcfg') - static_obj.src_builder.append('LaFile') - shared_obj.src_builder.append('LaFile') - static_obj.src_builder.append('Meinproc') - shared_obj.src_builder.append('Meinproc') - static_obj.src_builder.append('Transfiles') - shared_obj.src_builder.append('Transfiles') - - ## find the files to moc, dcop, and link against kde and qt - env.AppendUnique(PROGEMITTER = [MetasourcesStatic], SHLIBEMITTER=[MetasourcesShared], LIBEMITTER =[MetasourcesStatic]) - - ########################################### - ## Handy helpers for building kde programs - ## You should not have to modify them .. - - import SCons.Util - skel_ext = [".skel", ".SKEL"] - def KDEfiles(target, source, env): - """ - Returns a list of files for scons (handles kde tricks like .skel) - It also makes custom checks against double includes like : ['file.ui', 'file.cpp'] - (file.cpp is already included because of file.ui) - """ - src=[] - ui_files=[] - kcfg_files=[] - skel_files=[] - other_files=[] - - # For each file, check wether it is a dcop file or not, and create the complete list of sources - for file in source: - bs = SCons.Util.splitext(file)[0] - ext = SCons.Util.splitext(file)[1] - if ext in skel_ext: - env.Dcop(bs+'.h') - src.append(bs+'_skel.cpp') - else: - src.append(file) - - if ext == '.ui': - ui_files.append(bs) - elif ext == '.kcfgc': - kcfg_files.append(bs) - elif ext == '.skel': - skel_files.append(bs) - else: - other_files.append(bs) - - # Now check against newbie errors - for file in ui_files: - for ofile in other_files: - if ofile == file: - print RED+"WARNING: You have included "+file+".ui and another file of the same prefix"+NORMAL - print "Files generated by uic (file.h, file.cpp must not be included" - for file in kcfg_files: - for ofile in other_files: - if ofile == file: - print RED+"WARNING: You have included "+file+".kcfg and another file of the same prefix"+NORMAL - print "Files generated by tdeconfig_compiler (settings.h, settings.cpp) must not be included" - #for file in skel_files: - # for ofile in other_files: - # if ofile == file: - # print RED+"WARNING: source contain "+file+".skel and another file of the same prefix"+NORMAL - # print "Files generated automatically from .skel file must not be included (file.h, file.idl)" - - return src - - # Special trick for installing rpms ... - env['DESTDIR']='' - if 'install' in env['TARGS'] and os.environ.has_key('DESTDIR'): - env['DESTDIR']=os.environ['DESTDIR']+'/' - print CYAN+'** Enabling DESTDIR for the project **' + NORMAL + env['DESTDIR'] - - def KDEinstall(path, file, lenv): - """ Quick wrapper """ - if 'install' in lenv['TARGS']: - lenv.Alias('install', lenv.Install( lenv['DESTDIR']+path, file ) ) - - def KDEinstallas(destfile, file, lenv): - """ Quick wrapper """ - if 'install' in lenv['TARGS']: - lenv.Alias('install', lenv.InstallAs( lenv['DESTDIR']+destfile, file ) ) - - def KDEprogram(target, source, lenv): - """ Makes a kde program - The program is installed except if one sets env['NOAUTOINSTALL'] """ - src = KDEfiles(target, source, lenv) - lenv.Program(target, src) - if not lenv.has_key('NOAUTOINSTALL'): - KDEinstall(env['KDEBIN'], target, lenv) - - def KDEshlib(target, source, lenv): - """ Makes a shared library for kde (.la file for klibloader) - The library is installed except if one sets env['NOAUTOINSTALL'] """ - src = KDEfiles(target, source, lenv) - lenv.SharedLibrary( target, src ) - lenv.LaFile( target, target+'.so' ) - if not lenv.has_key('NOAUTOINSTALL'): - KDEinstall(env['KDEMODULE'], target+'.so', lenv) - KDEinstall(env['KDEMODULE'], target+'.la', lenv) - - def KDEstaticlib(target, source, lenv): - """ Makes a static library for kde - in practice you should not use static libraries - 1. they take more memory than shared ones - 2. makefile.am needed it because of stupid limitations - (cannot handle sources in separate folders - takes extra processing) """ - src = KDEfiles(target, source, lenv) - lenv.StaticLibrary( target, src ) -# # do not install static libraries -# if not lenv.has_key('NOAUTOINSTALL'): -# KDEinstall(env['KDEMODULE'], target+'.a', lenv) - - def KDEaddlibs(libs, lenv): - """ Helper function """ - lenv.AppendUnique(LIBS = libs) - - def KDEaddpaths(paths, lenv): - """ Helper function """ - lenv.AppendUnique(CPPPATH = paths) - - def KDElang(transfiles, lenv): - """ Process translations (.po files) in a po/ dir """ - if not lenv['APPNAME']: - print "define lenv['APPNAME'] before using KDElang !!" - return - for lang in transfiles: - lenv.Transfiles( lang+'.po' ) - KDEinstallas( lenv['KDELOCALE']+'/'+lang+'/LC_MESSAGES/'+lenv['APPNAME']+'.mo', - lang+'.gmo', lenv ) - - def KDEdoc(lang, file, lenv): - """ Install the documentation """ - if not lenv['APPNAME']: - print "define lenv['APPNAME'] before using KDEdoc !!" - env.Exit(1) - KDEinstall( lenv['KDEDOC']+'/'+lang+'/'+lenv['APPNAME'], file, lenv ) - - # Export variables so that sconscripts in subdirectories can use them - env.Export("KDEprogram KDEshlib KDEaddpaths KDEaddlibs KDEinstall KDEinstallas KDElang KDEdoc") - diff --git a/scons/scons-mini.tar.bz2 b/scons/scons-mini.tar.bz2 deleted file mode 100644 index 0c1ce52..0000000 Binary files a/scons/scons-mini.tar.bz2 and /dev/null differ diff --git a/src/CMakeLists.txt b/src/CMakeLists.txt new file mode 100644 index 0000000..a4228f6 --- /dev/null +++ b/src/CMakeLists.txt @@ -0,0 +1,2 @@ +add_subdirectory( app ) +add_subdirectory( part ) diff --git a/src/FAQ b/src/FAQ deleted file mode 100644 index 5cefe5c..0000000 --- a/src/FAQ +++ /dev/null @@ -1,13 +0,0 @@ -================================================================================ -FAQ -================================================================================ -This FAQ regards the source code and its layout. - - -Q: Why reimplement code in the part rather than consolidate it with the app? -A: Mainly to make the application start faster, loading a part is not free. But - also to make the part start faster as it has much lower requirements. - I admit the maintainance consequences aren't pretty, but the part has very - little code, so theoretically it should be easy to keep bug fixes in sync. - -=========1=========2=========3=========4=========5=========6=========7=========8 \ No newline at end of file diff --git a/src/SConscript b/src/SConscript deleted file mode 100644 index 31c1933..0000000 --- a/src/SConscript +++ /dev/null @@ -1,21 +0,0 @@ - -############################ -## load the config - -## Use the environment and the tools set in the top-level -## SConstruct file (set with 'Export') - this is very important - -Import( '*' ) -myenv=env.Copy() - -myenv.SConscript( dirs = Split( "app part") ) - -KDEinstall( env['KDEDATA']+'/codeine', '../misc/codeineui.rc', myenv ) -KDEinstall( env['KDEDATA']+'/konqueror/servicemenus', '../misc/codeine_play_dvd.desktop', myenv ) -KDEinstall( env['KDESERV'], '../misc/codeine_part.desktop', myenv ) -KDEinstall( env['KDEXDG'], '../misc/codeine.desktop', myenv ) - -for size in ['16', '22', '32', '48', '64', '128']: - KDEinstallas( env['KDEICONS']+'/crystalsvg/'+size+'x'+size+'/apps/codeine.png', '../misc/cr'+size+'-app-codeine.png', myenv ) - -#print env['KDECXXFLAGS'] \ No newline at end of file diff --git a/src/TODO b/src/TODO deleted file mode 100644 index a8d427d..0000000 --- a/src/TODO +++ /dev/null @@ -1,38 +0,0 @@ -1.0.1 - Volume state saving - -1.0.x - Improve error messages and error handling - Consolidate error handling code in part and application so we don't diverge - No audio icon in analyzer when no audio - Playback finished message (amaroK statusbar code?) - Mouse move to show toolbar in fullscreen mode - People are likely to use "F" keyboard shortcut or escape after film ends in fullscreen mode - but the popup of the menu prevents this, as for some reason Qt stops handling keyboard - shortcuts. We need a solution. The escape issue makes the popup menu less useful. So - escape with the menu should exit fullscreen too. All shortcuts in the menu should work. - Shortcuts not in the menu shouldn't work as this is a modal menu! Could be dangerous. - Consider adding quit to the fullscreen context menu always, or make the menubar show with - toolbar when mouse moves. - Add tooltips to PlayMedia dialog for recent file listview entries (directory info etc.) - Show zoom percentage in statusbar/OSD when resizing window, snap to 100%? - More feedback at playback end - Better loading/buffering status/feedback - Save prettyTitle with url and show that in recent file list, - - save m3u's? <-- needs thought - - mark remote files? - Support .srt files like Kaffeine/xine-ui does, ask berkus if stuck. - DVD fullscreen, DVD menu shows or something - -1.1 - Volume button (not there by default) - Two entries in Konqueror: 1. open in new window 2. open in current window - Play from begin scroll up popup when resuming playback - Much better DVD support - Show length information in normal window - 'o' in fullscreen mode shows OSD of length and elapsed time info, <-- emulate mplayer - -ACTION - xine config dialog is modal -REACTION - none, at least yet, it is far easier to maintain modal dialogs \ No newline at end of file diff --git a/src/app/CMakeLists.txt b/src/app/CMakeLists.txt new file mode 100644 index 0000000..60a21e4 --- /dev/null +++ b/src/app/CMakeLists.txt @@ -0,0 +1,54 @@ +include_directories( + ${CMAKE_BINARY_DIR} + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} + ${XINE_INCLUDE_DIRS} + ${X11_INCLUDE_DIR} + ${X11_XTEST_INCLUDE_DIRS} + ${X11_KEYSIM_INCLUDE_DIRS} +) + +link_directories( + ${TQT_LIBRARY_DIRS} + ${TDE_LIB_DIR} +) + + +##### codeine (executable) + +tde_add_executable( ${PROJECT_NAME} AUTOMOC + + SOURCES + xineEngine.cpp + xineConfig.cpp + xineScope.c + theStream.cpp + videoWindow.cpp + videoSettings.cpp + captureFrame.cpp + actions.cpp + stateChange.cpp + slider.cpp + analyzer.cpp + playDialog.cpp + listView.cpp + adjustSizeButton.cpp + fullScreenAction.cpp + insertAspectRatioMenuItems.cpp + playlistFile.cpp + volumeAction.cpp + ../mxcl.library.cpp + main.cpp + mainWindow.cpp + LINK + tdecore-shared + tdeui-shared + tdeio-shared + ${XINE_LIBRARIES} + ${X11_LIBRARIES} + ${X11_XTEST_LIBRARIES} + + DESTINATION ${BIN_INSTALL_DIR} +) diff --git a/src/app/SConscript b/src/app/SConscript deleted file mode 100644 index bb402f3..0000000 --- a/src/app/SConscript +++ /dev/null @@ -1,59 +0,0 @@ - -############################ -## load the config - -## Use the environment and the tools set in the top-level -## SConstruct file (set with 'Export') - this is very important - -Import( '*' ) -myenv=env.Copy() - -############################# -## the programs to build - -# we put the stuff that could fail due to bad xine.h locations, etc. at the beginning -# so if the build fails the user knows quickly -app_sources = Split(""" - xineEngine.cpp - xineConfig.cpp - xineScope.c - theStream.cpp - videoWindow.cpp - videoSettings.cpp - captureFrame.cpp - - actions.cpp - stateChange.cpp - slider.cpp - analyzer.cpp - playDialog.cpp - listView.cpp - adjustSizeButton.cpp - fullScreenAction.cpp - insertAspectRatioMenuItems.cpp - playlistFile.cpp - volumeAction.cpp - - ../mxcl.library.cpp - - main.cpp - mainWindow.cpp""") - -KDEprogram( "codeine", app_sources, myenv ) - - -############################ -## Customization - -## Additional include paths for compiling the source files -## Always add '../' (top-level directory) because moc makes code that needs it -KDEaddpaths( ['./', '../', '../../'], myenv ) - -## Necessary libraries to link against -KDEaddlibs( ['tqt-mt', 'tdeio', 'tdecore', 'tdeui', 'xine', 'Xtst'], myenv ) - -## This shows how to add other link flags to the program -myenv['LINKFLAGS'].append('-L/usr/X11R6/lib') - -## If you are using QThread, add this line -# myenv.AppendUnique( CPPFLAGS = ['-DQT_THREAD_SUPPORT'] ) diff --git a/src/app/actions.cpp b/src/app/actions.cpp index 1612a57..7447320 100644 --- a/src/app/actions.cpp +++ b/src/app/actions.cpp @@ -2,9 +2,9 @@ // See COPYING file for licensing information #include "actions.h" -#include "debug.h" -#include "mxcl.library.h" -#include +#include "../debug.h" +#include "../mxcl.library.h" +#include #include "xineEngine.h" namespace Codeine diff --git a/src/app/adjustSizeButton.cpp b/src/app/adjustSizeButton.cpp index 3a5c1dd..e1bf5b1 100644 --- a/src/app/adjustSizeButton.cpp +++ b/src/app/adjustSizeButton.cpp @@ -4,11 +4,11 @@ #include "adjustSizeButton.h" #include "extern.h" #include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include #include "theStream.h" #include "xineEngine.h" //videoWindow() diff --git a/src/app/adjustSizeButton.h b/src/app/adjustSizeButton.h index 9becd95..0dbe432 100644 --- a/src/app/adjustSizeButton.h +++ b/src/app/adjustSizeButton.h @@ -4,7 +4,7 @@ #ifndef CODEINE_ADJUST_SIZE_BUTTON_H #define CODEINE_ADJUST_SIZE_BUTTON_H -#include +#include namespace Codeine { diff --git a/src/app/analyzer.cpp b/src/app/analyzer.cpp index 593bd16..9d3da06 100644 --- a/src/app/analyzer.cpp +++ b/src/app/analyzer.cpp @@ -2,10 +2,10 @@ // See COPYING file for licensing information #include "analyzer.h" -#include "codeine.h" -#include "debug.h" +#include "../codeine.h" +#include "../debug.h" #include //interpolate() -#include //event() +#include //event() #include "xineEngine.h" #include "fht.cpp" @@ -83,7 +83,7 @@ Analyzer::Base2D::resizeEvent( TQResizeEvent* ) // Author: Max Howell , (C) 2003 // Copyright: See COPYING file that comes with this distribution -#include +#include Analyzer::Block::Block( TQWidget *parent ) : Analyzer::Base2D( parent, 20 ) @@ -108,7 +108,7 @@ Analyzer::Block::transform( Analyzer::Scope &scope ) //pure virtual fht.scale( front, 1.0 / 40 ); } -#include + void Analyzer::Block::analyze( const Analyzer::Scope &s ) { @@ -129,3 +129,5 @@ Analyzer::Block::heightForWidth( int w ) const { return w / 2; } + +#include "analyzer.moc" diff --git a/src/app/analyzer.h b/src/app/analyzer.h index edd526e..9a5af00 100644 --- a/src/app/analyzer.h +++ b/src/app/analyzer.h @@ -8,9 +8,9 @@ #include #endif -#include //stack allocated and convenience -#include //stack allocated -#include //baseclass +#include //stack allocated and convenience +#include //stack allocated +#include //baseclass #include //included for convenience namespace Analyzer diff --git a/src/app/captureFrame.cpp b/src/app/captureFrame.cpp index 6043b76..3be0e9f 100644 --- a/src/app/captureFrame.cpp +++ b/src/app/captureFrame.cpp @@ -1,21 +1,21 @@ // (C) 2005 Max Howell (max.howell@methylblue.com) // See COPYING file for licensing information -#include "debug.h" +#include "../debug.h" #include #include #include #include #include #include "mainWindow.h" -#include "mxcl.library.h" -#include -#include -#include -#include -#include -#include -#include +#include "../mxcl.library.h" +#include +#include +#include +#include +#include +#include +#include #include "theStream.h" #include "xineEngine.h" #include diff --git a/src/app/codeineConfig.h b/src/app/codeineConfig.h new file mode 100644 index 0000000..4ac877c --- /dev/null +++ b/src/app/codeineConfig.h @@ -0,0 +1,20 @@ +// (c) 2004 Max Howell (max.howell@methylblue.com) +// See COPYING file for licensing information + +#ifndef CODEINECONFIG_H +#define CODEINECONFIG_H + +#include +#include + +namespace Codeine +{ + static inline TDEConfig *config( const TQString &group ) + { + TDEConfig* const instance = TDEGlobal::config(); + instance->setGroup( group ); + return instance; + } +} + +#endif diff --git a/src/app/config.h b/src/app/config.h deleted file mode 100644 index 4ac877c..0000000 --- a/src/app/config.h +++ /dev/null @@ -1,20 +0,0 @@ -// (c) 2004 Max Howell (max.howell@methylblue.com) -// See COPYING file for licensing information - -#ifndef CODEINECONFIG_H -#define CODEINECONFIG_H - -#include -#include - -namespace Codeine -{ - static inline TDEConfig *config( const TQString &group ) - { - TDEConfig* const instance = TDEGlobal::config(); - instance->setGroup( group ); - return instance; - } -} - -#endif diff --git a/src/app/fullScreenAction.cpp b/src/app/fullScreenAction.cpp index 3787a33..006164d 100644 --- a/src/app/fullScreenAction.cpp +++ b/src/app/fullScreenAction.cpp @@ -5,7 +5,7 @@ #include "fullScreenAction.h" #include #include -#include +#include #include "xineEngine.h" //videoWindow() diff --git a/src/app/insertAspectRatioMenuItems.cpp b/src/app/insertAspectRatioMenuItems.cpp index 2e2824c..81ad0b3 100644 --- a/src/app/insertAspectRatioMenuItems.cpp +++ b/src/app/insertAspectRatioMenuItems.cpp @@ -1,7 +1,7 @@ // Copyright 2005 Max Howell (max.howell@methylblue.com) // See COPYING file for licensing information -#include +#include #include TQString i18n( const char *text ); diff --git a/src/app/main.cpp b/src/app/main.cpp index a024d5d..299df88 100644 --- a/src/app/main.cpp +++ b/src/app/main.cpp @@ -1,7 +1,7 @@ // (c) 2004 Max Howell (max.howell@methylblue.com) // See COPYING file for licensing information -#include "codeine.h" +#include "../codeine.h" #include #include #include @@ -13,8 +13,8 @@ static TDEAboutData aboutData( APP_NAME, I18N_NOOP(PRETTY_NAME), APP_VERSION, I18N_NOOP("A video player that has a usability focus"), TDEAboutData::License_GPL_V2, I18N_NOOP("Copyright 2006, Max Howell"), 0, - "http://www.methylblue.com/codeine/", - "codeine@methylblue.com" ); + "https://mirror.git.trinitydesktop.org/gitea/TDE/codeine", + 0 ); static const TDECmdLineOptions options[] = { { "+[URL]", I18N_NOOP( "Play 'URL'" ), 0 }, diff --git a/src/app/mainWindow.cpp b/src/app/mainWindow.cpp index ac054ac..b31806b 100644 --- a/src/app/mainWindow.cpp +++ b/src/app/mainWindow.cpp @@ -1,12 +1,15 @@ // (C) 2005 Max Howell (max.howell@methylblue.com) // See COPYING file for licensing information +#ifdef HAVE_CONFIG_H +#include "config.h" +#endif + #include "actions.h" #include "analyzer.h" -#include "config.h" -#include "configure.h" +#include "codeineConfig.h" #include -#include "debug.h" +#include "../debug.h" #include "extern.h" //dialog creation function definitions #include "fullScreenAction.h" #include @@ -23,13 +26,13 @@ #include "mainWindow.h" #include "playDialog.h" //::play() #include "playlistFile.h" -#include "mxcl.library.h" -#include -#include -#include //::stateChanged() -#include //ctor -#include //because XMLGUI is poorly designed -#include +#include "../mxcl.library.h" +#include +#include +#include //::stateChanged() +#include //ctor +#include //because XMLGUI is poorly designed +#include #include "slider.h" #include "theStream.h" #include "volumeAction.h" @@ -712,3 +715,5 @@ action( const char *name ) } } //namespace Codeine + +#include "mainWindow.moc" diff --git a/src/app/mainWindow.h b/src/app/mainWindow.h index a6c7d48..0b44d0c 100644 --- a/src/app/mainWindow.h +++ b/src/app/mainWindow.h @@ -4,7 +4,7 @@ #ifndef CODEINEMAINWINDOW_H #define CODEINEMAINWINDOW_H -#include "codeine.h" +#include "../codeine.h" #include class KURL; diff --git a/src/app/playDialog.cpp b/src/app/playDialog.cpp index b6cacaa..ab650b9 100644 --- a/src/app/playDialog.cpp +++ b/src/app/playDialog.cpp @@ -1,7 +1,7 @@ // (C) 2005 Max Howell (max.howell@methylblue.com) // See COPYING file for licensing information -#include "config.h" +#include "codeineConfig.h" #include "listView.cpp" #include #include @@ -10,11 +10,11 @@ #include #include #include "playDialog.h" -#include "mxcl.library.h" -#include -#include -#include -#include +#include "../mxcl.library.h" +#include +#include +#include +#include TQString i18n( const char *text ); @@ -112,3 +112,5 @@ PlayDialog::done( TQListViewItem *item ) } } + +#include "playDialog.moc" diff --git a/src/app/playDialog.h b/src/app/playDialog.h index 2bbc37d..1c84e2d 100644 --- a/src/app/playDialog.h +++ b/src/app/playDialog.h @@ -5,7 +5,7 @@ #define CODEINEPLAYDIALOG_H #include -#include +#include class TDEListView; class TQBoxLayout; diff --git a/src/app/playlistFile.cpp b/src/app/playlistFile.cpp index 83b1f5d..d520fa2 100644 --- a/src/app/playlistFile.cpp +++ b/src/app/playlistFile.cpp @@ -5,13 +5,13 @@ //TODO error messages that vary depending on if the file is remote or not -#include "codeine.h" -#include "debug.h" +#include "../codeine.h" +#include "../debug.h" #include #include "playlistFile.h" -#include -#include -#include +#include +#include +#include "../mxcl.library.h" PlaylistFile::PlaylistFile( const KURL &url ) diff --git a/src/app/slider.cpp b/src/app/slider.cpp index 205a3b8..172c15d 100644 --- a/src/app/slider.cpp +++ b/src/app/slider.cpp @@ -1,14 +1,14 @@ // (c) 2004 Max Howell (max.howell@methylblue.com) // See COPYING file for licensing information -#include "debug.h" +#include "../debug.h" #include "slider.h" -#include -#include -#include -#include +#include +#include +#include +#include -#include +#include #include "xineEngine.h" using Codeine::Slider; @@ -143,3 +143,5 @@ Slider::setValue( int newValue ) else m_prevValue = newValue; } + +#include "slider.moc" diff --git a/src/app/slider.h b/src/app/slider.h index b7cbae0..e739d72 100644 --- a/src/app/slider.h +++ b/src/app/slider.h @@ -4,7 +4,7 @@ #ifndef CODEINESLIDER_H #define CODEINESLIDER_H -#include +#include namespace Codeine { diff --git a/src/app/stateChange.cpp b/src/app/stateChange.cpp index d547ff1..15846f5 100644 --- a/src/app/stateChange.cpp +++ b/src/app/stateChange.cpp @@ -3,16 +3,16 @@ #include "actions.h" #include "adjustSizeButton.h" -#include "debug.h" +#include "../debug.h" #include "mainWindow.h" #include #include -#include "mxcl.library.h" -#include -#include -#include -#include -#include +#include "../mxcl.library.h" +#include +#include +#include +#include +#include #include "theStream.h" #include "videoSettings.h" //FIXME unfortunate #include "xineEngine.h" diff --git a/src/app/theStream.cpp b/src/app/theStream.cpp index 246e84d..fbb35ac 100644 --- a/src/app/theStream.cpp +++ b/src/app/theStream.cpp @@ -2,7 +2,7 @@ // See COPYING file for licensing information #include -#include "mxcl.library.h" +#include "../mxcl.library.h" #include "theStream.h" #include #include "xineEngine.h" diff --git a/src/app/theStream.h b/src/app/theStream.h index c71b5e8..7679a10 100644 --- a/src/app/theStream.h +++ b/src/app/theStream.h @@ -4,10 +4,10 @@ #ifndef CODEINE_THESTREAM_H #define CODEINE_THESTREAM_H -#include "config.h" // needed for inline functions +#include "codeineConfig.h" // needed for inline functions #include // larger :( but no macros at least -#include // small header -#include // small header +#include // small header +#include // small header /// for purely static classes #define CODEINE_NO_EXPORT( T ) \ diff --git a/src/app/videoSettings.cpp b/src/app/videoSettings.cpp index 19323d8..cf759c2 100644 --- a/src/app/videoSettings.cpp +++ b/src/app/videoSettings.cpp @@ -2,10 +2,10 @@ // See COPYING file for licensing information #include -#include "mxcl.library.h" -#include -#include -#include +#include "../mxcl.library.h" +#include +#include +#include #include "videoSettings.h" #include #include "xineEngine.h" diff --git a/src/app/videoSettings.h b/src/app/videoSettings.h index c781169..0568cde 100644 --- a/src/app/videoSettings.h +++ b/src/app/videoSettings.h @@ -4,7 +4,7 @@ #ifndef CODEINE_VIDEO_SETTINGS_H #define CODEINE_VIDEO_SETTINGS_H -#include "codeine.h" +#include "../codeine.h" #include diff --git a/src/app/videoWindow.cpp b/src/app/videoWindow.cpp index 0e7d19f..2ecf65a 100644 --- a/src/app/videoWindow.cpp +++ b/src/app/videoWindow.cpp @@ -6,15 +6,15 @@ #include "actions.h" #include //std::log10 #include -#include "debug.h" +#include "../debug.h" #include //::makeStandardCaption #include #include #include #include -#include "mxcl.library.h" -#include -#include +#include "../mxcl.library.h" +#include +#include #include "slider.h" #include "theStream.h" #include diff --git a/src/app/volumeAction.cpp b/src/app/volumeAction.cpp index f9a1951..0c0b81c 100644 --- a/src/app/volumeAction.cpp +++ b/src/app/volumeAction.cpp @@ -3,14 +3,14 @@ #include #include -#include -#include -#include -#include +#include +#include +#include +#include -#include "debug.h" +#include "../debug.h" #include "volumeAction.h" -#include "volumeAction.moc" + #include "xineEngine.h" @@ -112,3 +112,5 @@ VolumeAction::eventFilter( TQObject *o, TQEvent *e ) return false; } } + +#include "volumeAction.moc" diff --git a/src/app/xineConfig.cpp b/src/app/xineConfig.cpp index 07d402f..7be1c76 100644 --- a/src/app/xineConfig.cpp +++ b/src/app/xineConfig.cpp @@ -1,21 +1,21 @@ // (C) 2005 Max Howell (max.howell@methylblue.com) // See COPYING file for licensing information -#include "debug.h" +#include "../debug.h" #include // XineConfigDialog::ctor -> to get the iconloader #include #include // XineConfigDialog::ctor #include #include #include -#include -#include -#include -#include -#include -#include -#include -#include +#include +#include +#include +#include +#include +#include +#include +#include #include #include "xineConfig.h" @@ -185,7 +185,7 @@ XineConfigDialog::isUnsavedSettings() const return false; } -#include +#include void XineConfigDialog::saveSettings() { diff --git a/src/app/xineConfig.h b/src/app/xineConfig.h index 7eb9ab8..5dc05f2 100644 --- a/src/app/xineConfig.h +++ b/src/app/xineConfig.h @@ -5,7 +5,7 @@ #define XINECONFIG_H #include -#include +#include class KComboBox; class KLineEdit; diff --git a/src/app/xineEngine.cpp b/src/app/xineEngine.cpp index 9a7b709..295d155 100644 --- a/src/app/xineEngine.cpp +++ b/src/app/xineEngine.cpp @@ -5,14 +5,14 @@ #include "actions.h" //::seek() FIXME unfortunate #include //the fade out -#include "config.h" -#include "debug.h" +#include "codeineConfig.h" +#include "../debug.h" #include #include -#include "mxcl.library.h" -#include //::sendEvent() -#include //record() -#include //::exists() +#include "../mxcl.library.h" +#include //::sendEvent() +#include //record() +#include //::exists() #include "slider.h" #include "theStream.h" #include @@ -21,7 +21,6 @@ #include #include - #define XINE_SAFE_MODE 1 extern "C" { void _debug( const char *string ) { debug() << string; } } //FIXME @@ -876,3 +875,5 @@ VideoWindow::fileFilter() const } } //namespace Codeine + +#include "xineEngine.moc" diff --git a/src/app/xineEngine.h b/src/app/xineEngine.h index f1b49c3..57017ce 100644 --- a/src/app/xineEngine.h +++ b/src/app/xineEngine.h @@ -4,9 +4,9 @@ #ifndef CODEINE_VIDEOWINDOW_H #define CODEINE_VIDEOWINDOW_H -#include "codeine.h" -#include -#include +#include "../codeine.h" +#include +#include #include #include #include diff --git a/src/debug.h b/src/debug.h index 436cceb..9214083 100644 --- a/src/debug.h +++ b/src/debug.h @@ -6,8 +6,8 @@ #define CODEINE_DEBUG_H #include -#include -#include +#include +#include #include class TQApplication; ///@see Debug::Indent diff --git a/src/mxcl.library.cpp b/src/mxcl.library.cpp index 45c8ce4..786524a 100644 --- a/src/mxcl.library.cpp +++ b/src/mxcl.library.cpp @@ -2,7 +2,7 @@ // See COPYING file for licensing information #include "mxcl.library.h" -#include +#include #include namespace mxcl diff --git a/src/mxcl.library.h b/src/mxcl.library.h index 57eca2c..78dc9c6 100644 --- a/src/mxcl.library.h +++ b/src/mxcl.library.h @@ -17,7 +17,7 @@ namespace mxcl /// almost always negates the need to #include in implementations -#include +#include TQString i18n( const char *text ); diff --git a/src/part/CMakeLists.txt b/src/part/CMakeLists.txt new file mode 100644 index 0000000..d544001 --- /dev/null +++ b/src/part/CMakeLists.txt @@ -0,0 +1,36 @@ +include_directories( + ${CMAKE_CURRENT_BINARY_DIR} + ${CMAKE_CURRENT_SOURCE_DIR} + ${CMAKE_BINARY_DIR} + ${TDE_INCLUDE_DIR} + ${TQT_INCLUDE_DIRS} + ${XINE_INCLUDE_DIRS} + ${X11_INCLUDE_DIR} +) + +link_directories( + ${TQT_LIBRARY_DIRS} + ${TDE_LIB_DIR} +) + + + +##### codeine (shared) + +tde_add_library( ${PROJECT_NAME} SHARED AUTOMOC + + SOURCES + part.cpp + xineEngine.cpp + videoWindow.cpp + toolbar.cpp + ../mxcl.library.cpp + LINK + tdecore-shared + tdeui-shared + tdeparts-shared + ${XINE_LIBRARIES} + ${X11_LIBRARIES} + + DESTINATION ${LIB_INSTALL_DIR} +) diff --git a/src/part/SConscript b/src/part/SConscript deleted file mode 100644 index ff2d085..0000000 --- a/src/part/SConscript +++ /dev/null @@ -1,12 +0,0 @@ -# Copyright 2005 Max Howell - -Import( "*" ) -myenv=env.Copy() - -## Additional paths for compiling the source files -## Always add '../' (top-level directory) because moc makes code that needs it -KDEaddpaths( ['./', '../', '../../'], myenv ) - -KDEaddlibs( ['tqt-mt', 'tdecore', 'tdeui', 'tdeparts', 'xine'], myenv ) - -KDEshlib( "libcodeine", Split( "part.cpp xineEngine.cpp videoWindow.cpp toolbar.cpp ../mxcl.library.cpp" ), myenv ) diff --git a/src/part/part.cpp b/src/part/part.cpp index f251731..6490e67 100644 --- a/src/part/part.cpp +++ b/src/part/part.cpp @@ -1,17 +1,17 @@ // Author: Max Howell , (C) 2005 // Copyright: See COPYING file that comes with this distribution -#include "codeine.h" -#include "debug.h" +#include "../codeine.h" +#include "../debug.h" #include #include #include "part.h" -#include +#include #include "toolbar.h" #include "videoWindow.h" #include -#include +#include namespace Codeine { diff --git a/src/part/toolbar.cpp b/src/part/toolbar.cpp index 87caa62..cdf85c3 100644 --- a/src/part/toolbar.cpp +++ b/src/part/toolbar.cpp @@ -2,8 +2,8 @@ // See COPYING file for licensing information #include -#include -#include +#include +#include #include "toolbar.h" @@ -41,4 +41,4 @@ MouseOverToolBar::eventFilter( TQObject *o, TQEvent *e ) } return false; -} \ No newline at end of file +} diff --git a/src/part/videoWindow.cpp b/src/part/videoWindow.cpp index 53cd0dd..79d09ae 100644 --- a/src/part/videoWindow.cpp +++ b/src/part/videoWindow.cpp @@ -4,10 +4,10 @@ #define CODEINE_DEBUG_PREFIX "videoWindow" #include -#include "debug.h" -#include //sendEvent() -#include -#include +#include "../debug.h" +#include //sendEvent() +#include +#include #include "videoWindow.h" #include //TODO this breaks compile for lots of people due to excessive macro content #include //x11_visual_t diff --git a/src/part/videoWindow.h b/src/part/videoWindow.h index 0d0e4d5..76d2b6c 100644 --- a/src/part/videoWindow.h +++ b/src/part/videoWindow.h @@ -5,8 +5,8 @@ #define CODEINE_VIDEO_WINDOW_H #include "../codeine.h" -#include -#include +#include +#include #include typedef struct xine_s xine_t; diff --git a/src/part/xineEngine.cpp b/src/part/xineEngine.cpp index 8424f37..5069e40 100644 --- a/src/part/xineEngine.cpp +++ b/src/part/xineEngine.cpp @@ -3,13 +3,13 @@ #define CODEINE_DEBUG_PREFIX "engine" -#include "debug.h" +#include "../debug.h" #include #include -#include "mxcl.library.h" -#include //::sendEvent() -#include //::play() -#include //TQDir::homeDir() +#include "../mxcl.library.h" +#include //::sendEvent() +#include //::play() +#include //TQDir::homeDir() #include #include "videoWindow.h" @@ -343,3 +343,5 @@ VideoWindow::xineEventListener( void *p, const xine_event_t* xineEvent ) } } //namespace Codeine + +#include "videoWindow.moc" diff --git a/translations/CMakeLists.txt b/translations/CMakeLists.txt new file mode 100644 index 0000000..42b186a --- /dev/null +++ b/translations/CMakeLists.txt @@ -0,0 +1 @@ +tde_auto_add_subdirectories() diff --git a/translations/messages/CMakeLists.txt b/translations/messages/CMakeLists.txt new file mode 100644 index 0000000..75c89f8 --- /dev/null +++ b/translations/messages/CMakeLists.txt @@ -0,0 +1,14 @@ +file( GLOB_RECURSE po_files RELATIVE ${CMAKE_CURRENT_SOURCE_DIR} *.po ) +string( REGEX REPLACE "[ \r\n\t]+" ";" _linguas "$ENV{LINGUAS}" ) + +foreach( _po ${po_files} ) + get_filename_component( _lang ${_po} NAME_WE ) + if( "${_linguas}" MATCHES "^;*$" OR ";${_linguas};" MATCHES ";${_lang};" ) + if( "${_po}" MATCHES "^([^/]*)/.*" ) + string( REGEX REPLACE "^([^/]*)/.*" "\\1" _component "${_po}" ) + else( ) + set( _component "${PROJECT_NAME}" ) + endif( ) + tde_create_translation( FILES ${_po} LANG ${_lang} OUTPUT_NAME ${_component} ) + endif( ) +endforeach( ) diff --git a/translations/messages/codeine.pot b/translations/messages/codeine.pot new file mode 100644 index 0000000..c98a10d --- /dev/null +++ b/translations/messages/codeine.pot @@ -0,0 +1,484 @@ +# SOME DESCRIPTIVE TITLE. +# Copyright (C) YEAR THE PACKAGE'S COPYRIGHT HOLDER +# This file is distributed under the same license as the PACKAGE package. +# FIRST AUTHOR , YEAR. +# +#, fuzzy +msgid "" +msgstr "" +"Project-Id-Version: PACKAGE VERSION\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2005-08-01 17:30+0100\n" +"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" +"Last-Translator: FULL NAME \n" +"Language-Team: LANGUAGE \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=CHARSET\n" +"Content-Transfer-Encoding: 8bit\n" + +#: ../src/app/videoSettings.cpp:91 +msgid "Video Settings" +msgstr "" + +#: ../src/app/playDialog.cpp:27 +msgid "Play Media" +msgstr "" + +#: ../src/app/playDialog.cpp:33 +msgid "What media would you like to play?" +msgstr "" + +#: ../src/app/playDialog.cpp:38 +msgid "Play File..." +msgstr "" + +#: ../src/app/playDialog.cpp:42 +msgid "Play VCD" +msgstr "" + +#: ../src/app/playDialog.cpp:46 +msgid "Play DVD" +msgstr "" + +#: ../src/app/playDialog.cpp:73 +msgid "Recently Played Media" +msgstr "" + +#: ../src/app/xineConfig.cpp:60 +msgid "Configure xine" +msgstr "" + +#: ../src/app/xineConfig.cpp:84 +msgid "" +"xine's defaults are usually sensible and should not require modification. " +"However, full configurability is provided for your pleasure ;-)." +msgstr "" + +#: ../src/app/adjustSizeButton.cpp:31 +msgid "Preferred Scale" +msgstr "" + +#: ../src/app/adjustSizeButton.cpp:35 +msgid "Scale 100%" +msgstr "" + +#: ../src/app/adjustSizeButton.cpp:41 +msgid "Adjust video scale?" +msgstr "" + +#: ../src/app/insertAspectRatioMenuItems.cpp:15 +msgid "Determine &Automatically" +msgstr "" + +#: ../src/app/insertAspectRatioMenuItems.cpp:17 +msgid "&Square (1:1)" +msgstr "" + +#: ../src/app/insertAspectRatioMenuItems.cpp:18 +msgid "&4:3" +msgstr "" + +#: ../src/app/insertAspectRatioMenuItems.cpp:19 +msgid "Ana&morphic (16:9)" +msgstr "" + +#: ../src/app/insertAspectRatioMenuItems.cpp:20 +msgid "&DVB (2.11:1)" +msgstr "" + +#: ../src/app/main.cpp:14 +msgid "A video player that has a usability focus" +msgstr "" + +#: ../src/app/main.cpp:15 +msgid "Copyright 2005, Max Howell" +msgstr "" + +#: ../src/app/main.cpp:19 +msgid "Play 'URL'" +msgstr "" + +#: ../src/app/main.cpp:28 +msgid "Handbook" +msgstr "" + +#: ../src/app/main.cpp:29 +msgid "Great reference code" +msgstr "" + +#: ../src/app/main.cpp:30 +msgid "The current Codeine icon" +msgstr "" + +#: ../src/app/main.cpp:31 +msgid "The video for \"Call on Me\" encouraged plenty of debugging! ;)" +msgstr "" + +#: ../src/app/playlistFile.cpp:32 +msgid "The file is not a playlist" +msgstr "" + +#: ../src/app/playlistFile.cpp:39 +msgid "Codeine could not download the remote playlist: %1" +msgstr "" + +#: ../src/app/playlistFile.cpp:54 +msgid "" +"The playlist, '%1', could not be interpreted. Perhaps it is empty?" +msgstr "" + +#: ../src/app/playlistFile.cpp:58 +msgid "Codeine could not open the file: %1" +msgstr "" + +#: ../src/app/stateChange.cpp:83 +msgid "&Pause" +msgstr "" + +#: ../src/app/stateChange.cpp:83 +msgid "&Play" +msgstr "" + +#: ../src/app/stateChange.cpp:147 +msgid "No media loaded" +msgstr "" + +#: ../src/app/stateChange.cpp:150 +msgid "Paused" +msgstr "" + +#: ../src/app/actions.cpp:13 ../src/part/part.cpp:38 +msgid "Play" +msgstr "" + +#: ../src/app/xineEngine.cpp:127 ../src/part/xineEngine.cpp:50 +msgid "xine was unable to initialize any video-drivers." +msgstr "" + +#: ../src/app/xineEngine.cpp:129 ../src/part/xineEngine.cpp:48 +msgid "xine was unable to initialize any audio-drivers." +msgstr "" + +#: ../src/app/xineEngine.cpp:231 +msgid "Loading media: %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:333 +msgid "Recording to: %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:364 +msgid "Playback paused" +msgstr "" + +#: ../src/app/xineEngine.cpp:369 +msgid "Playback resumed" +msgstr "" + +#: ../src/app/xineEngine.cpp:382 +msgid "There is no input plugin that can read: %1." +msgstr "" + +#: ../src/app/xineEngine.cpp:385 +msgid "There is no demux plugin available for %1." +msgstr "" + +#: ../src/app/xineEngine.cpp:388 +msgid "Demuxing failed for %1." +msgstr "" + +#: ../src/app/xineEngine.cpp:393 +msgid "Internal error while attempting to play %1." +msgstr "" + +#: ../src/app/xineEngine.cpp:433 +msgid "xine cannot currently seek in flac media" +msgstr "" + +#: ../src/app/xineEngine.cpp:585 ../src/app/xineEngine.cpp:593 +msgid "Channel %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:692 ../src/part/xineEngine.cpp:282 +msgid "The source is encrypted and can not be decrypted." +msgstr "" + +#: ../src/app/xineEngine.cpp:694 ../src/part/xineEngine.cpp:284 +msgid "The host is unknown for the URL: %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:696 ../src/part/xineEngine.cpp:286 +msgid "The device name you specified seems invalid." +msgstr "" + +#: ../src/app/xineEngine.cpp:698 ../src/part/xineEngine.cpp:288 +msgid "The network appears unreachable." +msgstr "" + +#: ../src/app/xineEngine.cpp:700 ../src/part/xineEngine.cpp:290 +msgid "Audio output unavailable; the device is busy." +msgstr "" + +#: ../src/app/xineEngine.cpp:702 ../src/part/xineEngine.cpp:292 +msgid "The connection was refused for the URL: %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:704 ../src/part/xineEngine.cpp:294 +msgid "xine could not find the URL: %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:706 ../src/part/xineEngine.cpp:296 +msgid "Access was denied for the URL: %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:708 ../src/part/xineEngine.cpp:298 +msgid "The source cannot be read for the URL: %1" +msgstr "" + +#: ../src/app/xineEngine.cpp:710 ../src/part/xineEngine.cpp:300 +msgid "A problem occurred while loading a library or decoder." +msgstr "" + +#: ../src/app/xineEngine.cpp:737 ../src/part/xineEngine.cpp:327 +msgid "Sorry, no additional information is available." +msgstr "" + +#: ../src/app/captureFrame.cpp:82 +msgid "Capture - %1" +msgstr "" + +#: ../src/app/captureFrame.cpp:98 +msgid "" +"*.png|PNG Format\n" +"*.jpeg|JPEG Format" +msgstr "" + +#: ../src/app/captureFrame.cpp:100 +msgid "Save Frame" +msgstr "" + +#: ../src/app/captureFrame.cpp:111 +msgid "%1 saved successfully" +msgstr "" + +#: ../src/app/captureFrame.cpp:113 +msgid "Sorry, could not save %1" +msgstr "" + +#: ../src/app/fullScreenAction.cpp:31 +msgid "Exit F&ull Screen Mode" +msgstr "" + +#: ../src/app/fullScreenAction.cpp:37 +msgid "F&ull Screen Mode" +msgstr "" + +#: ../src/app/mainWindow.cpp:94 +msgid "&Subtitles" +msgstr "" + +#: ../src/app/mainWindow.cpp:95 +msgid "A&udio Channels" +msgstr "" + +#: ../src/app/mainWindow.cpp:96 +msgid "Aspect &Ratio" +msgstr "" + +#: ../src/app/mainWindow.cpp:106 +msgid "" +msgstr "" + +#: ../src/app/mainWindow.cpp:106 +msgid " could not load its interface, this probably means that " +msgstr "" + +#: ../src/app/mainWindow.cpp:106 +msgid "" +" is not installed to the correct prefix. If you installed from packages " +"please contact the packager, if you installed from source please try running " +"the configure script again like this:
 % ./configure --"
+"prefix=`tde-config --prefix`
" +msgstr "" + +#: ../src/app/mainWindow.cpp:139 +msgid "xine could not be successfully initialised. " +msgstr "" + +#: ../src/app/mainWindow.cpp:139 +msgid "" +" will now exit. You can try to identify what is wrong with your xine " +"installation using the xine-check command at a command-prompt." +msgstr "" + +#: ../src/app/mainWindow.cpp:208 +msgid "Play &Media..." +msgstr "" + +#: ../src/app/mainWindow.cpp:214 +msgid "Record" +msgstr "" + +#: ../src/app/mainWindow.cpp:216 +msgid "Reset Video Scale" +msgstr "" + +#: ../src/app/mainWindow.cpp:217 ../src/app/mainWindow.cpp:423 +msgid "Media Information" +msgstr "" + +#: ../src/app/mainWindow.cpp:218 +msgid "Menu Toggle" +msgstr "" + +#: ../src/app/mainWindow.cpp:219 +msgid "&Capture Frame" +msgstr "" + +#: ../src/app/mainWindow.cpp:221 +msgid "Video Settings..." +msgstr "" + +#: ../src/app/mainWindow.cpp:222 +msgid "Configure xine..." +msgstr "" + +#: ../src/app/mainWindow.cpp:224 +msgid "Position Slider" +msgstr "" + +#: ../src/app/mainWindow.cpp:317 +msgid "Codeine was asked to open an empty URL; it cannot." +msgstr "" + +#: ../src/app/mainWindow.cpp:366 +msgid "Supported Media Formats" +msgstr "" + +#: ../src/app/mainWindow.cpp:366 +msgid "All Files" +msgstr "" + +#: ../src/app/mainWindow.cpp:367 +msgid "Select A File To Play" +msgstr "" + +#: ../src/app/mainWindow.cpp:438 +msgid "&Determine Automatically" +msgstr "" + +#: ../src/app/mainWindow.cpp:450 +msgid "&Off" +msgstr "" + +#: ../src/app/mainWindow.cpp:492 +msgid "Sorry, no media was found in the drop" +msgstr "" + +#: ../src/app/theStream.cpp:107 +msgid "Metadata" +msgstr "" + +#: ../src/app/theStream.cpp:109 +msgid "Title" +msgstr "" + +#: ../src/app/theStream.cpp:110 +msgid "Comment" +msgstr "" + +#: ../src/app/theStream.cpp:111 +msgid "Artist" +msgstr "" + +#: ../src/app/theStream.cpp:112 +msgid "Genre" +msgstr "" + +#: ../src/app/theStream.cpp:113 +msgid "Album" +msgstr "" + +#: ../src/app/theStream.cpp:114 +msgid "Year" +msgstr "" + +#: ../src/app/theStream.cpp:116 +msgid "Audio Properties" +msgstr "" + +#: ../src/app/theStream.cpp:118 +msgid "Bitrate" +msgstr "" + +#: ../src/app/theStream.cpp:118 +msgid "%1 bps" +msgstr "" + +#: ../src/app/theStream.cpp:119 +msgid "Sample-rate" +msgstr "" + +#: ../src/app/theStream.cpp:119 +msgid "%1 Hz" +msgstr "" + +#: ../src/app/theStream.cpp:121 +msgid "Technical Information" +msgstr "" + +#: ../src/app/theStream.cpp:123 +msgid "Video Codec" +msgstr "" + +#: ../src/app/theStream.cpp:124 +msgid "Audio Codec" +msgstr "" + +#: ../src/app/theStream.cpp:125 +msgid "System Layer" +msgstr "" + +#: ../src/app/theStream.cpp:126 +msgid "Input Plugin" +msgstr "" + +#: ../src/app/theStream.cpp:127 +msgid "CDINDEX_DISCID" +msgstr "" + +#: ../src/app/videoWindow.cpp:140 +msgid "Pause" +msgstr "" + +#: ../src/part/xineEngine.cpp:159 +msgid "The Codeine video player could not find an input plugin for '%1'." +msgstr "" + +#: ../src/part/xineEngine.cpp:162 +msgid "The Codeine video player could not find a demux plugin for '%1'." +msgstr "" + +#: ../src/part/xineEngine.cpp:165 +msgid "" +"The Codeine video player failed to demux '%1'; please check your xine " +"installation." +msgstr "" + +#: ../src/part/xineEngine.cpp:170 +msgid "" +"The Codeine video player reports an internal error; please check your xine " +"installation." +msgstr "" + +#: ../src/_translatorinfo.cpp:1 +msgid "" +"_: NAME OF TRANSLATORS\n" +"Your names" +msgstr "" + +#: ../src/_translatorinfo.cpp:3 +msgid "" +"_: EMAIL OF TRANSLATORS\n" +"Your emails" +msgstr "" -- cgit v1.2.1