Source Code (Use browser search to find items of interest.)
Class Index
kmidi'MidiApplication (./kdemultimedia/kmidi/midiapplication.h:75)
class MidiApplication : public KUniqueApplication
{
Q_OBJECT
public:
MidiApplication(int &argc, char *argv[], const QCString &appName);
virtual int newInstance(QValueList<QCString> params);
bool process(const QCString &fun, const QByteArray &data,
QCString &replyType, QByteArray &replyData);
};
kmidi'MidiApplication::MidiApplication() (./kdemultimedia/kmidi/midiapplication.cpp:89)
MidiApplication::MidiApplication(int &argc, char *argv[], const QCString &appName)
: KUniqueApplication(argc, argv, appName)
//: KUniqueApplication()
{
//fprintf(stderr,"2: argc=%d argv[1]={%s}\n", argc, (argc>0)? argv[1] : "none");
KAboutData about( appName, I18N_NOOP("KMidi"), "1.3alpha");
KCmdLineArgs::init(argc, argv, &about);
KCmdLineArgs::addCmdLineOptions( options );
KUniqueApplication::addCmdLineOptions();
}
kmidi'MidiApplication::process() (./kdemultimedia/kmidi/midiapplication.cpp:103)
bool MidiApplication::process(const QCString &fun, const QByteArray &data,
QCString &replyType, QByteArray &replyData)
{
QDataStream stream(data, IO_ReadOnly);
QDataStream stream2(replyData, IO_WriteOnly);
QString res;
int exitcode;
if (fun == "newInstance(QValueList<QCString>)") {
QValueList<QCString> arg;
stream >> arg;
newInstance(arg);
replyType = "int";
exitcode = 0;
stream2 << exitcode;
return true;
} else if (fun == "play(QString)") {
QString arg;
stream >> arg;
replyType = "void";
kmidi->stopClicked();
kmidi->playlist->clear();
kmidi->playlist->append(arg);
kmidi->redoplaybox();
kmidi->singleplay = true;
kmidi->setSong(0);
return true;
} else {
fprintf(stderr,"unknown function call %s to MidiApplication::process()\n", fun.data());
return false;
}
}
/*#define DO_IT_MYSELF*/
kmidi'MidiApplication::newInstance() (./kdemultimedia/kmidi/midiapplication.cpp:137)
int MidiApplication::newInstance(QValueList<QCString> params)
{
#ifndef DO_IT_MYSELF
char mbuff[5];
int newones = 0;
QValueList<QCString>::Iterator it = params.begin();
QFileInfo file;
//printf("count %d [%s]\n", (*it).count(), (*it).data());
it++; // skip program name
if (kmidi) {
for (; it != params.end(); it++) {
//printf("NI:[%s]\n", (*it).data());
file.setFile(*it);
if (!file.isReadable()) continue;
QFile f(*it);
if (!f.open( IO_ReadOnly )) continue;
if (f.readBlock(mbuff, 4) != 4) {
//printf("couldn't read 4 bytes\n");
f.close();
continue;
}
mbuff[4] = '\0';
if (strcmp(mbuff, "MThd")) {
//printf("is not midi file\n");
f.close();
continue;
}
f.close();
file.setFile(*it);
//kmidi->playlist->insert(0, *it);
kmidi->playlist->append(file.absFilePath());
newones++;
}
if (newones) {
kmidi->restartPlaybox();
}
}
#endif
return 0;
}