summaryrefslogtreecommitdiffstats
path: root/kfile-plugins/sid/kfile_sid.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kfile-plugins/sid/kfile_sid.cpp')
-rw-r--r--kfile-plugins/sid/kfile_sid.cpp227
1 files changed, 0 insertions, 227 deletions
diff --git a/kfile-plugins/sid/kfile_sid.cpp b/kfile-plugins/sid/kfile_sid.cpp
deleted file mode 100644
index 33b35500..00000000
--- a/kfile-plugins/sid/kfile_sid.cpp
+++ /dev/null
@@ -1,227 +0,0 @@
-/* This file is part of the KDE project
- * Copyright (C) 2003 Rolf Magnus <ramagnus@kde.org>
- *
- * This program is free software; you can redistribute it and/or
- * modify it under the terms of the GNU General Public
- * License as published by the Free Software Foundation version 2.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
- * General Public License for more details.
- *
- * You should have received a copy of the GNU General Public License
- * along with this program; see the file COPYING. If not, write to
- * the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor,
- * Boston, MA 02110-1301, USA.
- */
-
-#include "kfile_sid.h"
-
-#include <klocale.h>
-#include <kgenericfactory.h>
-#include <kstringvalidator.h>
-#include <kdebug.h>
-
-#include <tqfile.h>
-#include <tqvalidator.h>
-#include <tqwidget.h>
-
-#include <unistd.h>
-#include <sys/types.h>
-#include <sys/stat.h>
-#include <fcntl.h>
-
-typedef KGenericFactory<KSidPlugin> SidFactory;
-
-K_EXPORT_COMPONENT_FACTORY(kfile_sid, SidFactory("kfile_sid"))
-
-KSidPlugin::KSidPlugin(TQObject *parent, const char *name,
- const TQStringList &args)
-
- : KFilePlugin(parent, name, args)
-{
- kdDebug(7034) << "sid plugin\n";
-
- KFileMimeTypeInfo* info = addMimeTypeInfo("audio/prs.sid");
-
- KFileMimeTypeInfo::GroupInfo* group = 0L;
-
- // General group
- group = addGroupInfo(info, "General", i18n("General"));
-
- KFileMimeTypeInfo::ItemInfo* item;
-
- item = addItemInfo(group, "Title", i18n("Title"), TQVariant::String);
- setAttributes(item, KFileMimeTypeInfo::Modifiable);
- setHint(item, KFileMimeTypeInfo::Name);
-
- item = addItemInfo(group, "Artist", i18n("Artist"), TQVariant::String);
- setAttributes(item, KFileMimeTypeInfo::Modifiable);
- setHint(item, KFileMimeTypeInfo::Author);
-
- item = addItemInfo(group, "Copyright", i18n("Copyright"), TQVariant::String);
- setAttributes(item, KFileMimeTypeInfo::Modifiable);
- setHint(item, KFileMimeTypeInfo::Description);
-
- // technical group
- group = addGroupInfo(info, "Technical", i18n("Technical Details"));
-
- item = addItemInfo(group, "Version", i18n("Version"), TQVariant::Int);
- setPrefix(item, i18n("PSID v"));
-
- addItemInfo(group, "Number of Songs", i18n("Number of Songs"), TQVariant::Int);
- item = addItemInfo(group, "Start Song", i18n("Start Song"), TQVariant::Int);
-}
-
-bool KSidPlugin::readInfo(KFileMetaInfo& info, uint /*what*/)
-{
- if ( info.path().isEmpty() ) // remote file
- return false;
- TQFile file(info.path());
- if ( !file.open(IO_ReadOnly) )
- return false;
-
- int version;
- int num_songs;
- int start_song;
- TQString name;
- TQString artist;
- TQString copyright;
-
- char buf[64] = { 0 };
-
- if (4 != file.readBlock(buf, 4))
- return false;
- if (strncmp(buf, "PSID", 4))
- return false;
-
- //read version
- int ch;
- if (0 > (ch = file.getch()))
- return false;
- version = ch << 8;
- if (0 > (ch = file.getch()))
- return false;
- version+= ch;
-
- //read number of songs
- file.at(0xE);
- if (0 > (ch = file.getch()))
- return false;
- num_songs = ch << 8;
- if (0 > (ch = file.getch()))
- return false;
- num_songs += ch;
-
- //start song
- if (0 > (ch = file.getch()))
- return false;
- start_song = ch << 8;
- if (0 > (ch = file.getch()))
- return false;
- start_song += ch;
-
- //name
- file.at(0x16);
- if (32 != file.readBlock(buf, 32))
- return false;
- name = buf;
-
- //artist
- if (32 != file.readBlock(buf, 32))
- return false;
- artist = buf;
-
- //copyright
- if (32 != file.readBlock(buf, 32))
- return false;
- copyright = buf;
-
- TQString TODO("TODO");
- kdDebug(7034) << "sid plugin readInfo\n";
-
- KFileMetaInfoGroup general = appendGroup(info, "General");
-
- appendItem(general, "Title", name);
- appendItem(general, "Artist", artist);
- appendItem(general, "Copyright", copyright);
-
- KFileMetaInfoGroup tech = appendGroup(info, "Technical");
-
- appendItem(tech, "Version", version);
- appendItem(tech, "Number of Songs", num_songs);
- appendItem(tech, "Start Song", start_song);
-
- kdDebug(7034) << "reading finished\n";
- return true;
-}
-
-bool KSidPlugin::writeInfo(const KFileMetaInfo& info) const
-{
- kdDebug(7034) << k_funcinfo << endl;
-
- char name[32] = {0};
- char artist[32] = {0};
- char copyright[32] = {0};
-
- int file = 0;
- TQString s;
-
- KFileMetaInfoGroup group = info.group("General");
- if (!group.isValid())
- goto failure;
-
- s = group.item("Title").value().toString();
- if (s.isNull()) goto failure;
- strncpy(name, s.local8Bit(), 31);
-
- s = group.item("Artist").value().toString();
- if (s.isNull()) goto failure;
- strncpy(artist, s.local8Bit(), 31);
-
- s = group.item("Copyright").value().toString();
- if (s.isNull()) goto failure;
- strncpy(copyright, s.local8Bit(), 31);
-
- kdDebug(7034) << "Opening sid file " << info.path() << endl;
- file = ::open(TQFile::encodeName(info.path()), O_WRONLY);
- //name
- if (-1 == ::lseek(file, 0x16, SEEK_SET))
- goto failure;
- if (32 != ::write(file, name, 32))
- goto failure;
-
- //artist
- if (32 != ::write(file, artist, 32))
- goto failure;
-
- //copyright
- if (32 != write(file, copyright, 32))
- goto failure;
-
- close(file);
- return true;
-
-failure:
- if (file) close(file);
- kdDebug(7034) << "something went wrong writing to sid file\n";
- return false;
-}
-
-TQValidator*
-KSidPlugin::createValidator(const TQString& /*mimetype*/, const TQString& group,
- const TQString& /*key*/, TQObject* parent,
- const char* name) const
-{
- kdDebug(7034) << k_funcinfo << endl;
- // all items in "General" group are strings of max length 31
- if (group == "General")
- return new TQRegExpValidator(TQRegExp(".{,31}"), parent, name);
- // all others are read-only
- return 0;
-}
-
-
-
-#include "kfile_sid.moc"