File indexing completed on 2024-06-09 04:00:35

0001 /*
0002     SPDX-FileCopyrightText: 2006 Davide Bettio <davide.bettio@kdemail.net>
0003 
0004     SPDX-License-Identifier: LGPL-2.1-only OR LGPL-3.0-only OR LicenseRef-KDE-Accepted-LGPL
0005 */
0006 
0007 #include "fakecdrom.h"
0008 
0009 #include <QStringList>
0010 
0011 using namespace Solid::Backends::Fake;
0012 
0013 FakeCdrom::FakeCdrom(FakeDevice *device)
0014     : FakeStorage(device)
0015 {
0016 }
0017 
0018 FakeCdrom::~FakeCdrom()
0019 {
0020 }
0021 
0022 Solid::OpticalDrive::MediumTypes FakeCdrom::supportedMedia() const
0023 {
0024     Solid::OpticalDrive::MediumTypes supported;
0025 
0026     const QMap<QString, Solid::OpticalDrive::MediumType> map = {
0027         {QStringLiteral("cdr"), Solid::OpticalDrive::Cdr},
0028         {QStringLiteral("cdrw"), Solid::OpticalDrive::Cdrw},
0029         {QStringLiteral("dvd"), Solid::OpticalDrive::Dvd},
0030         {QStringLiteral("dvdr"), Solid::OpticalDrive::Dvdr},
0031         {QStringLiteral("dvdrw"), Solid::OpticalDrive::Dvdrw},
0032         {QStringLiteral("dvdram"), Solid::OpticalDrive::Dvdram},
0033         {QStringLiteral("dvdplusr"), Solid::OpticalDrive::Dvdplusr},
0034         {QStringLiteral("dvdplusrw"), Solid::OpticalDrive::Dvdplusrw},
0035         {QStringLiteral("dvdplusrdl"), Solid::OpticalDrive::Dvdplusdl},
0036         {QStringLiteral("dvdplusrwdl"), Solid::OpticalDrive::Dvdplusdlrw},
0037         {QStringLiteral("bd"), Solid::OpticalDrive::Bd},
0038         {QStringLiteral("bdr"), Solid::OpticalDrive::Bdr},
0039         {QStringLiteral("bdre"), Solid::OpticalDrive::Bdre},
0040         {QStringLiteral("hddvd"), Solid::OpticalDrive::HdDvd},
0041         {QStringLiteral("hddvdr"), Solid::OpticalDrive::HdDvdr},
0042         {QStringLiteral("hddvdrw"), Solid::OpticalDrive::HdDvdrw},
0043     };
0044 
0045     const QStringList supported_medialist = fakeDevice()->property("supportedMedia").toString().simplified().split(',');
0046 
0047     for (const QString &media : supported_medialist) {
0048         supported |= map.value(media, Solid::OpticalDrive::UnknownMediumType);
0049     }
0050 
0051     return supported;
0052 }
0053 
0054 int FakeCdrom::readSpeed() const
0055 {
0056     return fakeDevice()->property("readSpeed").toInt();
0057 }
0058 
0059 int FakeCdrom::writeSpeed() const
0060 {
0061     return fakeDevice()->property("writeSpeed").toInt();
0062 }
0063 
0064 QList<int> FakeCdrom::writeSpeeds() const
0065 {
0066     QList<int> speeds;
0067     const QStringList speed_strlist = fakeDevice()->property("writeSpeeds").toString().simplified().split(',');
0068 
0069     for (const QString &speed_str : speed_strlist) {
0070         speeds << speed_str.toInt();
0071     }
0072 
0073     return speeds;
0074 }
0075 
0076 bool FakeCdrom::eject()
0077 {
0078     return false;
0079 }
0080 
0081 #include "moc_fakecdrom.cpp"