1
/***************************************************************************
2
                         main.cpp  -  description
3
                            -------------------
4
   begin                : Mit Okt 23 14:35:18 CEST 2002
5
   copyright            : (C) 2002 by Mark Kretschmann
6
   email                : markey@web.de
7
***************************************************************************/
8
9
/***************************************************************************
10
 *                                                                         *
11
 *   This program is free software; you can redistribute it and/or modify  *
12
 *   it under the terms of the GNU General Public License as published by  *
13
 *   the Free Software Foundation; either version 2 of the License, or     *
14
 *   (at your option) any later version.                                   *
15
 *                                                                         *
16
 ***************************************************************************/
17
18
#include "Amarok.h"
19
#include "App.h"
20
21
#include <KAboutData>
22
#include <KCmdLineArgs>
23
#include <KDebug>
24
25
//#define AMAROK_USE_DRKONQI
26
27
extern AMAROK_EXPORT class KAboutData aboutData; //defined in App.cpp
28
29
30
int main( int argc, char *argv[] )
31
{
32
    aboutData.addAuthor( ki18n("Bart 'Where are my toothpicks' Cerneels"),
33
            ki18n(( "Developer (Stecchino)" )), "bart.cerneels@kde.org", "http://commonideas.blogspot.com" );
34
    aboutData.addAuthor( ki18n("Dan 'Hey, it compiled...' Meltzer"),
35
            ki18n(( "Developer (hydrogen)" )), "parallelgrapefruit@gmail.com" );
36
    aboutData.addAuthor( ki18n("Ian 'The Beard' Monroe"),
37
            ki18n(( "Developer (eean)" )), "ian@monroe.nu", "http://www.monroe.nu/" );
38
    aboutData.addAuthor( ki18n("Jeff 'IROCKSOHARD' Mitchell"),
39
            ki18n(( "Developer (jefferai)" )), "mitchell@kde.org" );
40
    aboutData.addAuthor( ki18n("Leo Franchi"),
41
            ki18n(( "Developer (lfranchi)" )), "lfranchi@kde.org" );
42
    aboutData.addAuthor( ki18n("Lydia 'is wrong(TM)' Pintscher"),
43
            ki18n(( "Release Vixen (Nightrose)" )), "lydia@kde.org" );
44
    aboutData.addAuthor( ki18n("Mark 'It's good, but it's not irssi' Kretschmann"), //krazy:exclude=contractions
45
            ki18n(( "Project founder (markey)" )), "kretschmann@kde.org" );
46
    aboutData.addAuthor( ki18n("Maximilian Kossick"),
47
            ki18n(( "Developer (maxx_k)" )), "maximilian.kossick@gmail.com" );
48
    aboutData.addAuthor( ki18n("Nikolaj Hald 'Also very hot' Nielsen"),
49
            ki18n(( "Developer (nhnFreespirit)" )), "nhnfreespirit@gmail.com" );
50
    aboutData.addAuthor( ki18n("Seb 'Surfin' down under' Ruiz"),
51
            ki18n(( "Developer (sebr)" )), "ruiz@kde.org", "http://www.sebruiz.net" );
52
53
54
    aboutData.addCredit( ki18n("Alejandro Wainzinger"), ki18n(( "Media device support" )), "aikawarazuni@gmail.com" );
55
    aboutData.addCredit( ki18n("Alex Merry"), ki18n(( "Developer, Replay gain support" )), "kde@randomguy3.me.uk" );
56
    aboutData.addCredit( ki18n("Casey Link"), ki18n(( "MP3tunes integration" )), "unnamedrambler@gmail.com" );
57
    aboutData.addCredit( ki18n("Christie Harris"), ki18n(( "Rokymoter (dangle)" )), "dangle.baby@gmail.com" );
58
    aboutData.addCredit( ki18n("Dan Leinir Turthra Jensen"), ki18n(( "Usability" )), "admin@leinir.dk" );
59
    aboutData.addCredit( ki18n("Daniel Caleb Jones"), ki18n(( "Biased playlists" )), "danielcjones@gmail.com" );
60
    aboutData.addCredit( ki18n("Daniel Winter"), ki18n(( "Nepomuk integration" )), "dw@danielwinter.de" );
61
    aboutData.addCredit( ki18n("Greg Meyer"), ki18n(( "Live CD, Bug squashing (oggb4mp3)" )), "greg@gkmweb.com" );
62
    aboutData.addCredit( ki18n("Harald Sitter"), ki18n(( "Rokymoter (apachelogger)" )), "harald.sitter@kdemail.net" );
63
    aboutData.addCredit( ki18n("Kenneth Wesley Wimer II"), ki18n(( "Icons" )), "kwwii@bootsplash.org" );
64
    aboutData.addCredit( ki18n("Kevin Funk"), ki18n(( "Developer, Website theme (KRF)" )), "krf@electrostorm.net" );
65
    aboutData.addCredit( ki18n("Lee Olson"), ki18n(( "Artwork" )), "leetolson@gmail.com" );
66
    aboutData.addCredit( ki18n("Ljubomir Simin"), ki18n(( "Rokymoter (ljubomir)" )), "ljubomir.simin@gmail.com" );
67
    aboutData.addCredit( ki18n("Max Howell"), ki18n(( "Developer, Vision" )), "max.howell@methylblue.com" );
68
    aboutData.addCredit( ki18n("Myriam Schweingruber"), ki18n(( "Rokymoter (Mamarok)" )), "schweingruber@pharma-traduction.ch" );
69
    aboutData.addCredit( ki18n("Nuno Pinheiro"), ki18n(( "Artwork" )), "nuno@oxygen-icons.org" );
70
    aboutData.addCredit( ki18n("Olivier Bédard"), ki18n(( "Website hosting" )), "paleo@pwsp.net" );
71
    aboutData.addCredit( ki18n("Pasi Lalinaho"), ki18n(( "Rokymoter (emunkki)" )), "pasi@getamarok.com" );
72
    aboutData.addCredit( ki18n("Peter Zhou Lei"), ki18n(( "Scripting interface" )), "peterzhoulei@gmail.com" );
73
    aboutData.addCredit( ki18n("Scott Wheeler"), ki18n(( "TagLib & ktrm code" )), "wheeler@kde.org" );
74
    aboutData.addCredit( ki18n("Shane King"), ki18n(( "Patches & Windows porting (shakes)" )), "kde@dontletsstart.com" );
75
    aboutData.addCredit( ki18n("Soren Harward"), ki18n(( "Developer" )), "stharward@gmail.com" );
76
    aboutData.addCredit( ki18n("Sven Krohlas"), ki18n(( "Rokymoter (sven423)" )), "sven@asbest-online.de" );
77
    aboutData.addCredit( ki18n("Teo Mrnjavac"), ki18n(( "Mass tagging support" )), "teo.mrnjavac@gmail.com" );
78
    aboutData.addCredit( ki18n("William Viana Soares"), ki18n(( "Context view" )), "vianasw@gmail.com" );
79
    aboutData.addCredit( ki18n("Former contributors"), ki18n(( "People listed below have contributed to Amarok in the past. Thank you!" )), "" );
80
    aboutData.addCredit( ki18n("Adam Pigg"), ki18n(( "Analyzers, patches, shoutcast" )), "adam@piggz.co.uk" );
81
    aboutData.addCredit( ki18n("Adeodato Simó"), ki18n(( "Patches" )), "asp16@alu.ua.es" );
82
    aboutData.addCredit( ki18n("Alexandre Oliveira"), ki18n(( "Developer" )), "aleprj@gmail.com" );
83
    aboutData.addCredit( ki18n("Andreas Mair"), ki18n(( "MySQL support" )), "am_ml@linogate.com" );
84
    aboutData.addCredit( ki18n("Andrew de Quincey"), ki18n(( "Postgresql support" )), "adq_dvb@lidskialf.net" );
85
    aboutData.addCredit( ki18n("Andrew Turner"), ki18n(( "Patches" )), "andrewturner512@googlemail.com" );
86
    aboutData.addCredit( ki18n("Andy Kelk"), ki18n(( "MTP and Rio Karma media devices, patches" )), "andy@mopoke.co.uk" );
87
    aboutData.addCredit( ki18n("Christian Muehlhaeuser"), ki18n(( "Developer" )), "chris@chris.de" );
88
    aboutData.addCredit( ki18n("Derek Nelson"), ki18n(( "Graphics, splash-screen" )), "admrla@gmail.com" );
89
    aboutData.addCredit( ki18n("Enrico Ros"), ki18n(( "Analyzers, Context Browser and systray eye-candy" )), "eros.kde@email.it" );
90
    aboutData.addCredit( ki18n("Frederik Holljen"), ki18n(( "Developer" )), "fh@ez.no" );
91
    aboutData.addCredit( ki18n("Gábor Lehel"), ki18n(( "Developer" )), "illissius@gmail.com" );
92
    aboutData.addCredit( ki18n("Gérard Dürrmeyer"), ki18n(( "Icons and image work" )), "gerard@randomtree.com" );
93
    aboutData.addCredit( ki18n("Giovanni Venturi"), ki18n(( "Dialog to filter the collection titles" )), "giovanni@ksniffer.org" );
94
    aboutData.addCredit( ki18n("Jarkko Lehti"), ki18n(( "Tester, IRC channel operator, whipping" )), "grue@iki.fi" );
95
    aboutData.addCredit( ki18n("Jocke Andersson"), ki18n(( "Rokymoter, bug fixer (Firetech)" )), "ajocke@gmail.com" );
96
    aboutData.addCredit( ki18n("Marco Gulino"), ki18n(( "Konqueror Sidebar, some DCOP methods" )), "marco@kmobiletools.org" );
97
    aboutData.addCredit( ki18n("Martin Aumueller"), ki18n(( "Developer" )), "aumuell@reserv.at" );
98
    aboutData.addCredit( ki18n("Melchior Franz"), ki18n(( "FHT routine, bugfixes" )), "mfranz@kde.org" );
99
    aboutData.addCredit( ki18n("Michael Pyne"), ki18n(( "K3b export code" )), "michael.pyne@kdemail.net" );
100
    aboutData.addCredit( ki18n("Mike Diehl"), ki18n(( "Developer" )), "madpenguin8@yahoo.com" );
101
    aboutData.addCredit( ki18n("Paul Cifarelli"), ki18n(( "Developer" )), "paul@cifarelli.net" );
102
    aboutData.addCredit( ki18n("Peter C. Ndikuwera"), ki18n(( "Bugfixes, PostgreSQL support" )), "pndiku@gmail.com" );
103
    aboutData.addCredit( ki18n("Pierpaolo Panfilo"), ki18n(( "Developer" )), "pippo_dp@libero.it" );
104
    aboutData.addCredit( ki18n("Reigo Reinmets"), ki18n(( "Wikipedia support, patches" )), "xatax@hot.ee" );
105
    aboutData.addCredit( ki18n("Roman Becker"), ki18n(( "Former Amarok logo, former splash screen, former icons" )), "roman@formmorf.de" );
106
    aboutData.addCredit( ki18n("Sami Nieminen"), ki18n(( "Audioscrobbler support" )), "sami.nieminen@iki.fi" );
107
    aboutData.addCredit( ki18n("Stanislav Karchebny"), ki18n(( "Developer" )), "berkus@madfire.net" );
108
    aboutData.addCredit( ki18n("Stefan Bogner"), ki18n(( "Loads of stuff" )), "bochi@online.ms" );
109
110
    KCmdLineArgs::reset();
111
    KCmdLineArgs::init( argc, argv, &::aboutData ); //calls KCmdLineArgs::addStdCmdLineOptions()
112
113
    App::initCliArgs();
114
    KUniqueApplication::addCmdLineOptions();
115
116
    KCmdLineArgs* const args = KCmdLineArgs::parsedArgs();
117
118
    KUniqueApplication::StartFlag startFlag;
119
    startFlag = args->isSet( "multipleinstances" ) ? KUniqueApplication::NonUniqueInstance : KUniqueApplication::StartFlag( 0 );
120
121
    if( !KUniqueApplication::start( startFlag ) ) {
122
        fprintf( stderr, "Amarok is already running!\n" );
123
        return 0;
124
    }
125
126
    App app;
127
    app.setUniqueInstance( startFlag == KUniqueApplication::NonUniqueInstance );
128
    return app.exec();
129
}