summaryrefslogtreecommitdiffstats
path: root/kfile-plugins/au/kfile_au.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'kfile-plugins/au/kfile_au.cpp')
-rw-r--r--kfile-plugins/au/kfile_au.cpp172
1 files changed, 0 insertions, 172 deletions
diff --git a/kfile-plugins/au/kfile_au.cpp b/kfile-plugins/au/kfile_au.cpp
deleted file mode 100644
index 8a2108a9..00000000
--- a/kfile-plugins/au/kfile_au.cpp
+++ /dev/null
@@ -1,172 +0,0 @@
-/* This file is part of the KDE project
- * Copyright (C) 2002 Shane Wright <me@shanewright.co.uk>
- *
- * 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 <config.h>
-#include "kfile_au.h"
-
-#include <kprocess.h>
-#include <klocale.h>
-#include <kgenericfactory.h>
-#include <kstringvalidator.h>
-#include <kdebug.h>
-
-#include <tqdict.h>
-#include <tqvalidator.h>
-#include <tqcstring.h>
-#include <tqfile.h>
-#include <tqdatetime.h>
-
-#if !defined(__osf__)
-#include <inttypes.h>
-#else
-typedef unsigned long uint32_t;
-typedef unsigned short uint16_t;
-#endif
-
-typedef KGenericFactory<KAuPlugin> AuFactory;
-
-K_EXPORT_COMPONENT_FACTORY(kfile_au, AuFactory( "kfile_au" ))
-
-KAuPlugin::KAuPlugin(TQObject *parent, const char *name,
- const TQStringList &args)
-
- : KFilePlugin(parent, name, args)
-{
- KFileMimeTypeInfo* info = addMimeTypeInfo( "audio/basic" );
-
- KFileMimeTypeInfo::GroupInfo* group = 0L;
-
- group = addGroupInfo(info, "Technical", i18n("Technical Details"));
-
- KFileMimeTypeInfo::ItemInfo* item;
-
- item = addItemInfo(group, "Length", i18n("Length"), TQVariant::Int);
- setSuffix(item, "s");
-
- item = addItemInfo(group, "Sample Rate", i18n("Sample Rate"), TQVariant::Int);
- setSuffix(item, "Hz");
-
- item = addItemInfo(group, "Channels", i18n("Channels"), TQVariant::Int);
-
- item = addItemInfo(group, "Encoding", i18n("Encoding"), TQVariant::String);
-
-}
-
-bool KAuPlugin::readInfo( KFileMetaInfo& info, uint what)
-{
- // the file signature, wants to be tidier...
- const char fsig[] = { 0x2e, 0x73, 0x6e, 0x64 };
-
- // a dword buffer for input
- char inbuf[4];
-
- // some vars for the file properties
- uint32_t datasize;
- uint32_t encoding;
- uint32_t samplerate;
- uint32_t channels;
- uint16_t bytespersample;
-
- if ( info.path().isEmpty() ) // remote file
- return false;
-
- TQFile file(info.path());
-
- if (!file.open(IO_ReadOnly))
- {
- kdDebug(7034) << "Couldn't open " << TQFile::encodeName(info.path()).data() << endl;
- return false;
- }
-
- TQDataStream dstream(&file);
-
- // AU files are big-endian
- dstream.setByteOrder(TQDataStream::BigEndian);
-
-
- // Read and verify the signature
- dstream.readRawBytes(inbuf, 4);
- if (memcmp(fsig, inbuf, 4))
- return false;
-
- // skip unwanted bits
- file.at(8);
-
- // grab the bits we want
- dstream >> datasize;
- dstream >> encoding;
- dstream >> samplerate;
- dstream >> channels;
-
- // add the info
- KFileMetaInfoGroup group = appendGroup(info, "Technical");
- appendItem(group, "Sample Rate", (uint) samplerate);
- appendItem(group, "Channels", (uint) channels);
-
- // work out the encoding
- switch (encoding) {
- case 1 :
- appendItem(group, "Encoding", i18n("8-bit ISDN u-law"));
- bytespersample = 1;
- break;
- case 2 :
- appendItem(group, "Encoding", i18n("8-bit linear PCM [REF-PCM]"));
- bytespersample = 1;
- break;
- case 3 :
- appendItem(group, "Encoding", i18n("16-bit linear PCM"));
- bytespersample = 2;
- break;
- case 4 :
- appendItem(group, "Encoding", i18n("24-bit linear PCM"));
- bytespersample = 3;
- break;
- case 5 :
- appendItem(group, "Encoding", i18n("32-bit linear PCM"));
- bytespersample = 4;
- break;
- case 6 :
- appendItem(group, "Encoding", i18n("32-bit IEEE floating point"));
- bytespersample = 4;
- break;
- case 7 :
- appendItem(group, "Encoding", i18n("64-bit IEEE floating point"));
- bytespersample = 8;
- break;
- case 23 :
- appendItem(group, "Encoding", i18n("8-bit ISDN u-law compressed"));
- bytespersample = 1;
- break;
- default :
- appendItem(group, "Encoding", i18n("Unknown"));
- bytespersample = 0;
- }
-
- // work out length from bytespersample + channels + size
- if ((channels > 0) && (datasize > 0) && (datasize != 0xFFFFFFFF) && (bytespersample > 0) && (samplerate > 0)) {
- uint32_t length = datasize / channels / bytespersample / samplerate;
- appendItem(group, "Length", (uint) length);
- } else {
- appendItem(group, "Length", "???");
- }
-
- return true;
-}
-
-#include "kfile_au.moc"