Ticket #6276: 00-6276-mythmusic-cddevices.patch

File 00-6276-mythmusic-cddevices.patch, 5.1 KB (added by Matthew Wire <devel@…>, 17 years ago)

Switch mythmusic to use mythmediamonitor by default to detect cd devices

  • mythplugins/mythmusic/mythmusic/globalsettings.cpp

     
    6767    return gc;
    6868};
    6969
    70 static HostComboBox *CDDevice()
     70static HostLineEdit *CDDevice()
    7171{
    72     HostComboBox *gc = new HostComboBox("CDDevice", true);
     72    HostLineEdit *gc = new HostLineEdit("CDDevice");
    7373    gc->setLabel(QObject::tr("CD device"));
    74     QDir dev("/dev", "cdrom*", QDir::Name, QDir::System);
    75     gc->fillSelectionsFromDir(dev);
    76     dev.setNameFilter("scd*");
    77     gc->fillSelectionsFromDir(dev);
    78     dev.setNameFilter("hd*");
    79     gc->fillSelectionsFromDir(dev);
    80 
    81     dev.setNameFilter("cdrom*");
    82     dev.setPath("/dev/cdroms");
    83     gc->fillSelectionsFromDir(dev);
     74    gc->setValue("default");
    8475    gc->setHelpText(QObject::tr("CDRom device used for ripping/playback."));
    8576    return gc;
    8677};
     
    492483    return gc;
    493484};
    494485
    495 static HostComboBox *CDWriterDevice()
     486static HostLineEdit *CDWriterDevice()
    496487{
    497     HostComboBox *gc = new HostComboBox("CDWriterDevice");
    498 
    499     typedef std::vector<std::pair<QString, QString> > search_cmd_list;
    500     search_cmd_list search_types;
    501     search_types.push_back(std::make_pair("", ""));
    502     search_types.push_back(std::make_pair("-dev=ATA", "ATA:"));
    503     search_types.push_back(std::make_pair("-dev=ATAPI", "ATAPI:"));
    504 
    505     const QString scan_command("cdrecord");
    506     for (search_cmd_list::const_iterator p = search_types.begin();
    507             p != search_types.end(); ++p)
    508     {
    509         QStringList args;
    510         args << "--scanbus";
    511         if (p->first.size())
    512             args << p->first;
    513 
    514         QProcess proc;
    515 
    516         proc.start(scan_command, args, QIODevice::ReadOnly);
    517         if (proc.waitForStarted() && proc.waitForFinished(1500) &&
    518                 proc.exitStatus() == QProcess::NormalExit)
    519         {
    520             QTextStream output(&proc);
    521 
    522             QString line;
    523             while (!(line = output.readLine()).isNull())
    524             {
    525                 if (line.length() > 12)
    526                 {
    527                     if (line[10] == ')' && line[12] != '*')
    528                     {
    529                         QString name = line.mid(24, 16);
    530                         QString dev  = p->second + line.mid(1, 5);
    531 
    532                         gc->addSelection(name, dev);
    533                         VERBOSE(VB_GENERAL,
    534                                 QString("MythMusic adding CD-Writer: %1 -- %2")
    535                                 .arg(dev).arg(name));
    536                     }
    537                 }
    538             }
    539         }
    540         else
    541         {
    542                 VERBOSE(VB_GENERAL, QString("Failed to run '%1 %2' "
    543                                 "error code: %3").arg(scan_command)
    544                         .arg(args.join(" ")).arg(proc.error()));
    545         }
    546     }
    547 
     488    HostLineEdit *gc = new HostLineEdit("CDWriterDevice");
     489    gc->setValue("default");
    548490    gc->setLabel(QObject::tr("CD-Writer Device"));
    549491    gc->setHelpText(QObject::tr("Select the SCSI or IDE Device for CD Writing."));
    550492    return gc;
  • mythplugins/mythmusic/mythmusic/playlist.cpp

     
    1515#include "smartplaylist.h"
    1616#include <mythtv/mythdb.h>
    1717#include <mythtv/compat.h>
     18#include <mythtv/mythmediamonitor.h>
    1819
    1920#include <qfileinfo.h>
    2021#include <q3process.h>
     
    17051706        return 1;
    17061707    }
    17071708
    1708     QString scsidev = gContext->GetSetting("CDWriterDevice");
     1709    QString scsidev = MediaMonitor::defaultCDWriter();
    17091710    if (scsidev.isEmpty() || scsidev.isNull())
    17101711    {
    17111712        VERBOSE(VB_GENERAL, "No CD Writer device defined.");
  • mythplugins/mythmusic/mythmusic/databasebox.cpp

     
    2020#include <mythtv/lcddevice.h>
    2121#include <mythtv/uitypes.h>
    2222#include <mythtv/uilistbtntype.h>
     23#include <mythtv/mythmediamonitor.h>
    2324
    2425// mythmusic
    2526#include "metadata.h"
     
    422423        return;
    423424    }
    424425
    425     QString scsidev = gContext->GetSetting("CDWriterDevice");
    426     if (scsidev.length()==0)
     426    QString scsidev = MediaMonitor::defaultCDWriter();
     427    if (scsidev.isEmpty() || scsidev.isNull())
    427428    {
    428         VERBOSE(VB_GENERAL, "We don't have SCSI devices");
     429        VERBOSE(VB_GENERAL, "No CD Writer device defined.");
    429430        return;
    430431    }
     432
    431433    // Begin Blanking
    432434    MythProgressDialog *record_progress;
    433435    record_progress = new MythProgressDialog(tr("CD-RW Blanking Progress"), 10);
     
    866868
    867869    if (gContext->GetNumSetting("CDWriterEnabled"))
    868870    {
    869         QString scsidev = gContext->GetSetting("CDWriterDevice");
     871        QString scsidev = MediaMonitor::defaultCDWriter();
    870872        if (!scsidev.isEmpty() && !scsidev.isNull())
    871873            cdwriter = true;
    872874    }