OSDN Git Service

Updated Monkey's Audio binary to v4.11 (2013-01-20), including STDERR flush fix.
[lamexp/LameXP.git] / src / Thread_MessageProducer.cpp
1 ///////////////////////////////////////////////////////////////////////////////
2 // LameXP - Audio Encoder Front-End
3 // Copyright (C) 2004-2013 LoRd_MuldeR <MuldeR2@GMX.de>
4 //
5 // This program is free software; you can redistribute it and/or modify
6 // it under the terms of the GNU General Public License as published by
7 // the Free Software Foundation; either version 2 of the License, or
8 // (at your option) any later version.
9 //
10 // This program is distributed in the hope that it will be useful,
11 // but WITHOUT ANY WARRANTY; without even the implied warranty of
12 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13 // GNU General Public License for more details.
14 //
15 // You should have received a copy of the GNU General Public License along
16 // with this program; if not, write to the Free Software Foundation, Inc.,
17 // 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18 //
19 // http://www.gnu.org/licenses/gpl-2.0.txt
20 ///////////////////////////////////////////////////////////////////////////////
21
22 #include "Thread_MessageProducer.h"
23
24 #include "Global.h"
25
26 #include <QStringList>
27 #include <QApplication>
28 #include <QFileInfo>
29 #include <QDir>
30
31 #include <limits.h>
32
33 ////////////////////////////////////////////////////////////
34 // Constructor
35 ////////////////////////////////////////////////////////////
36
37 MessageProducerThread::MessageProducerThread(void)
38 {
39 }
40
41 MessageProducerThread::~MessageProducerThread(void)
42 {
43 }
44
45 void MessageProducerThread::run()
46 {
47         setTerminationEnabled(true);
48         bool bSentFiles = false;
49         const QStringList &arguments = lamexp_arguments(); //QApplication::arguments();
50
51         for(int i = 0; i < arguments.count(); i++)
52         {
53                 if(!arguments[i].compare("--kill", Qt::CaseInsensitive))
54                 {
55                         lamexp_ipc_send(666, NULL);
56                         return;
57                 }
58                 if(!arguments[i].compare("--force-kill", Qt::CaseInsensitive))
59                 {
60                         lamexp_ipc_send(666, "Force!");
61                         return;
62                 }
63         }
64
65         for(int i = 0; i < arguments.count() - 1; i++)
66         {
67                 if(!arguments[i].compare("--add", Qt::CaseInsensitive))
68                 {
69                         QFileInfo file = QFileInfo(arguments[++i]);
70                         if(file.exists() && file.isFile())
71                         {
72                                 lamexp_ipc_send(1, file.canonicalFilePath().toUtf8().constData());
73                         }
74                         bSentFiles = true;
75                 }
76                 if(!arguments[i].compare("--add-folder", Qt::CaseInsensitive))
77                 {
78                         QDir dir = QDir(arguments[++i]);
79                         if(dir.exists())
80                         {
81                                 lamexp_ipc_send(2, dir.canonicalPath().toUtf8().constData());
82                         }
83                         bSentFiles = true;
84                 }
85                 if(!arguments[i].compare("--add-recursive", Qt::CaseInsensitive))
86                 {
87                         QDir dir = QDir(arguments[++i]);
88                         if(dir.exists())
89                         {
90                                 lamexp_ipc_send(3, dir.canonicalPath().toUtf8().constData());
91                         }
92                         bSentFiles = true;
93                 }
94         }
95
96         if(!bSentFiles)
97         {
98                 lamexp_ipc_send(UINT_MAX, "Use running instance!");
99         }
100 }
101
102 ////////////////////////////////////////////////////////////
103 // EVENTS
104 ////////////////////////////////////////////////////////////
105
106 /*NONE*/