Add loads more debug logging on startup

This commit is contained in:
David Sansome 2011-04-24 18:07:09 +00:00
parent 8b1cbc33c0
commit 071f1f4f7e
3 changed files with 71 additions and 33 deletions

View File

@ -55,23 +55,29 @@ WmdmLister::~WmdmLister() {
}
void WmdmLister::Init() {
qLog(Debug) << "Starting";
thread_.reset(new WmdmThread);
if (!thread_->manager())
return;
// Register for notifications
qLog(Debug) << "Obtaining CP container";
IConnectionPointContainer* cp_container = NULL;
thread_->manager()->QueryInterface(IID_IConnectionPointContainer, (void**)&cp_container);
qLog(Debug) << "Obtaining CP";
IConnectionPoint* cp = NULL;
cp_container->FindConnectionPoint(IID_IWMDMNotification, &cp);
qLog(Debug) << "Registering for notifications";
cp->Advise(this, &notification_cookie_);
cp->Release();
cp_container->Release();
// Fetch the initial list of devices
qLog(Debug) << "Fetching device list";
IWMDMEnumDevice* device_it = NULL;
if (thread_->manager()->EnumDevices2(&device_it)) {
qLog(Warning) << "Error querying WMDM devices";
@ -87,6 +93,7 @@ void WmdmLister::Init() {
if (device_it->Next(1, &device, &fetched) || fetched != 1)
break;
qLog(Debug) << "Querying device";
if (device->QueryInterface(IID_IWMDMDevice2, (void**)&device2)) {
qLog(Warning) << "Error getting IWMDMDevice2 from device";
device->Release();
@ -103,6 +110,7 @@ void WmdmLister::Init() {
device_it->Release();
// Update the internal cache
qLog(Debug) << "Updating device cache";
{
QMutexLocker l(&mutex_);
devices_ = devices;
@ -112,6 +120,8 @@ void WmdmLister::Init() {
foreach (const QString& id, devices.keys()) {
emit DeviceAdded(id);
}
qLog(Debug) << "Startup complete";
}
void WmdmLister::ReallyShutdown() {
@ -142,6 +152,8 @@ qint64 GetSpaceValue(F f) {
}
WmdmLister::DeviceInfo WmdmLister::ReadDeviceInfo(IWMDMDevice2* device) {
qLog(Debug) << "Reading device info";
DeviceInfo ret;
ret.device_ = device;
@ -157,6 +169,8 @@ WmdmLister::DeviceInfo WmdmLister::ReadDeviceInfo(IWMDMDevice2* device) {
device->GetCanonicalName(buf, max_size);
ret.canonical_name_ = QString::fromWCharArray(buf).toLower();
qLog(Debug) << "Read device strings:" << ret.name_ << ret.manufacturer_ << ret.canonical_name_;
// Upgrade to a device3
IWMDMDevice3* device3 = NULL;
device->QueryInterface(IID_IWMDMDevice3, (void**)&device3);
@ -213,12 +227,12 @@ WmdmLister::DeviceInfo WmdmLister::ReadDeviceInfo(IWMDMDevice2* device) {
}
void WmdmLister::GuessDriveLetter(DeviceInfo* info) {
qDebug() << "Guessing drive letter for" << info->name_;
qLog(Debug) << "Guessing drive letter for" << info->name_;
// Windows XP puts the drive letter in brackets at the end of the name
QRegExp drive_letter("\\(([A-Z]:)\\)$");
if (drive_letter.indexIn(info->name_) != -1) {
qDebug() << "Looks like an XP drive" << drive_letter.cap(1);
qLog(Debug) << "Looks like an XP drive" << drive_letter.cap(1);
CheckDriveLetter(info, drive_letter.cap(1));
return;
}
@ -226,7 +240,7 @@ void WmdmLister::GuessDriveLetter(DeviceInfo* info) {
// Windows 7 sometimes has the drive letter as the whole name
drive_letter = QRegExp("^([A-Z]:)\\\\$");
if (drive_letter.indexIn(info->name_) != -1) {
qDebug() << "Looks like a win7 drive" << drive_letter.cap(1);
qLog(Debug) << "Looks like a win7 drive" << drive_letter.cap(1);
CheckDriveLetter(info, drive_letter.cap(1));
return;
}
@ -266,7 +280,7 @@ void WmdmLister::GuessDriveLetter(DeviceInfo* info) {
} else {
if (name.ToString() == info->name_ && name.characters() != 0) {
// We found it!
qDebug() << "Looks like a win7 drive name" << QString::fromWCharArray(volume_path);
qLog(Debug) << "Looks like a win7 drive name" << QString::fromWCharArray(volume_path);
if (CheckDriveLetter(info, QString::fromWCharArray(volume_path))) {
info->device_name_ = QString::fromWCharArray(device_name);
info->volume_name_ = QString::fromWCharArray(volume_name);
@ -301,7 +315,7 @@ bool WmdmLister::CheckDriveLetter(DeviceInfo* info, const QString& drive) {
qLog(Warning) << "Error getting volume information for" << drive;
return false;
} else {
qDebug() << "Validated drive letter" << drive;
qLog(Debug) << "Validated drive letter" << drive;
info->mount_point_ = path.ToString();
info->fs_name_ = name.ToString();
info->fs_type_ = type.ToString();
@ -422,6 +436,8 @@ void WmdmLister::UpdateFreeSpace(DeviceInfo* info) {
}
HRESULT WmdmLister::WMDMMessage(DWORD message_type, LPCWSTR name) {
qLog(Debug) << "WMDM message" << message_type << name;
QString canonical_name = QString::fromWCharArray(name).toLower();
switch (message_type) {

View File

@ -204,6 +204,8 @@ MainWindow::MainWindow(
doubleclick_playmode_(PlayBehaviour_IfStopped),
menu_playmode_(PlayBehaviour_IfStopped)
{
qLog(Debug) << "Starting";
// Database connections
connect(database_->Worker().get(), SIGNAL(Error(QString)), SLOT(ShowErrorDialog(QString)));
@ -246,11 +248,13 @@ MainWindow::MainWindow(
connect(track_position_timer_, SIGNAL(timeout()), SLOT(UpdateTrackPosition()));
// Start initialising the player
qLog(Debug) << "Initialising player";
player_->Init();
background_streams_ = new BackgroundStreams(player_->engine(), this);
background_streams_->LoadStreams();
// Models
qLog(Debug) << "Creating models";
library_sort_model_->setSourceModel(library_->model());
library_sort_model_->setSortRole(LibraryModel::Role_SortText);
library_sort_model_->setDynamicSortFilter(true);
@ -272,6 +276,7 @@ MainWindow::MainWindow(
organise_dialog_->SetDestinationModel(library_->model()->directory_model());
// Icons
qLog(Debug) << "Creating UI";
ui_->action_about->setIcon(IconLoader::Load("help-about"));
ui_->action_about_qt->setIcon(QIcon(":/trolltech/qmessagebox/images/qtlogo-64.png"));
ui_->action_add_file->setIcon(IconLoader::Load("document-open"));
@ -589,6 +594,7 @@ MainWindow::MainWindow(
#endif
#ifdef Q_OS_WIN32
qLog(Debug) << "Creating sparkle updater";
qtsparkle::Updater* updater = new qtsparkle::Updater(
QUrl("http://data.clementine-player.org/sparkle-windows"), this);
updater->SetNetworkAccessManager(new NetworkAccessManager(this));
@ -619,6 +625,7 @@ MainWindow::MainWindow(
// XMPP Remote control
#ifdef HAVE_REMOTE
qLog(Debug) << "Creating remote control";
remote_ = new Remote(player_, this);
connect(remote_, SIGNAL(Error(QString)), SLOT(ShowErrorDialog(QString)));
connect(art_loader, SIGNAL(ArtLoaded(Song,QString,QImage)),
@ -638,6 +645,7 @@ MainWindow::MainWindow(
ui_->analyzer->SetActions(ui_->action_visualisations);
// Equalizer
qLog(Debug) << "Creating equalizer";
connect(equalizer_.get(), SIGNAL(ParametersChanged(int,QList<int>)),
player_->engine(), SLOT(SetEqualizerParameters(int,QList<int>)));
connect(equalizer_.get(), SIGNAL(EnabledChanged(bool)),
@ -652,6 +660,7 @@ MainWindow::MainWindow(
connect(ui_->multi_loading_indicator, SIGNAL(TaskCountChange(int)), SLOT(TaskCountChanged(int)));
// Now playing widget
qLog(Debug) << "Creating now playing widget";
ui_->now_playing->set_ideal_height(ui_->status_bar->sizeHint().height() +
ui_->player_controls->sizeHint().height());
connect(playlists_, SIGNAL(CurrentSongChanged(Song)), ui_->now_playing, SLOT(NowPlaying(Song)));
@ -663,6 +672,7 @@ MainWindow::MainWindow(
NowPlayingWidgetPositionChanged(ui_->now_playing->show_above_status_bar());
// Add places where scripts can make actions
qLog(Debug) << "Registering script action locations";
scripts_->ui()->RegisterActionLocation("tools_menu", ui_->menu_tools, ui_->action_full_library_scan);
scripts_->ui()->RegisterActionLocation("extras_menu", ui_->menu_extras, NULL);
scripts_->ui()->RegisterActionLocation("help_menu", ui_->menu_help, NULL);
@ -693,6 +703,7 @@ MainWindow::MainWindow(
#endif
// Load settings
qLog(Debug) << "Loading settings";
settings_.beginGroup(kSettingsGroup);
restoreGeometry(settings_.value("geometry").toByteArray());
@ -732,6 +743,7 @@ MainWindow::MainWindow(
close_window_shortcut->setKey(Qt::CTRL + Qt::Key_W);
connect(close_window_shortcut, SIGNAL(activated()), SLOT(SetHiddenInTray()));
qLog(Debug) << "Initialising library";
library_->Init();
library_->StartThreads();
@ -744,6 +756,7 @@ MainWindow::MainWindow(
// If we support more languages this ifdef will need to be changed.
#ifdef HAVE_SCRIPTING_PYTHON
qLog(Debug) << "Initialising scripting";
scripts_->Init(ScriptManager::GlobalData(
library_, library_view_->view(), player_, playlists_,
task_manager_, settings_dialog_.get(), radio_model_));
@ -755,6 +768,8 @@ MainWindow::MainWindow(
#endif
CheckFullRescanRevisions();
qLog(Debug) << "Started";
}
MainWindow::~MainWindow() {

View File

@ -43,6 +43,7 @@ Windows7ThumbBar::Windows7ThumbBar(QWidget* widget)
void Windows7ThumbBar::SetActions(const QList<QAction*>& actions) {
#ifdef Q_OS_WIN32
qLog(Debug) << "Setting actions";
Q_ASSERT(actions.count() <= kMaxButtonCount);
actions_ = actions;
@ -51,7 +52,7 @@ void Windows7ThumbBar::SetActions(const QList<QAction*>& actions) {
connect(action, SIGNAL(changed()), SLOT(ActionChanged()));
}
}
qLog(Debug) << "Done";
#endif // Q_OS_WIN32
}
@ -79,47 +80,53 @@ void Windows7ThumbBar::HandleWinEvent(MSG* msg) {
if (button_created_message_id_ == 0) {
// Compute the value for the TaskbarButtonCreated message
button_created_message_id_ = RegisterWindowMessage("TaskbarButtonCreated");
qLog(Debug) << "TaskbarButtonCreated message ID registered" << button_created_message_id_;
}
if (msg->message == button_created_message_id_) {
qLog(Debug) << "Button created";
// Unref the old taskbar list if we had one
if (taskbar_list_) {
qLog(Debug) << "Releasing old taskbar list";
reinterpret_cast<ITaskbarList3*>(taskbar_list_)->Release();
taskbar_list_ = NULL;
}
if (!taskbar_list_) {
// Create the taskbar list for the first time
if (CoCreateInstance(CLSID_ITaskbarList, NULL, CLSCTX_ALL,
IID_ITaskbarList3, (void**) &taskbar_list_)) {
qLog(Warning) << "Error creating the ITaskbarList3 interface";
return;
}
ITaskbarList3* taskbar_list = reinterpret_cast<ITaskbarList3*>(taskbar_list_);
if (taskbar_list->HrInit()) {
taskbar_list->Release();
taskbar_list_ = NULL;
return;
}
// Add the buttons
THUMBBUTTON buttons[kMaxButtonCount];
for (int i=0 ; i<actions_.count() ; ++i) {
const QAction* action = actions_[i];
THUMBBUTTON* button = &buttons[i];
button->dwMask = THUMBBUTTONMASK(THB_ICON | THB_TOOLTIP | THB_FLAGS);
button->iId = i;
SetupButton(action, button);
}
taskbar_list->ThumbBarAddButtons(widget_->winId(), actions_.count(), buttons);
// Create the taskbar list
if (CoCreateInstance(CLSID_ITaskbarList, NULL, CLSCTX_ALL,
IID_ITaskbarList3, (void**) &taskbar_list_)) {
qLog(Warning) << "Error creating the ITaskbarList3 interface";
return;
}
ITaskbarList3* taskbar_list = reinterpret_cast<ITaskbarList3*>(taskbar_list_);
if (taskbar_list->HrInit()) {
qLog(Warning) << "Error initialising taskbar list";
taskbar_list->Release();
taskbar_list_ = NULL;
return;
}
// Add the buttons
qLog(Debug) << "Initialising" << actions_.count() << "buttons";
THUMBBUTTON buttons[kMaxButtonCount];
for (int i=0 ; i<actions_.count() ; ++i) {
const QAction* action = actions_[i];
THUMBBUTTON* button = &buttons[i];
button->dwMask = THUMBBUTTONMASK(THB_ICON | THB_TOOLTIP | THB_FLAGS);
button->iId = i;
SetupButton(action, button);
}
qLog(Debug) << "Adding buttons";
taskbar_list->ThumbBarAddButtons(widget_->winId(), actions_.count(), buttons);
qLog(Debug) << "Done";
} else if (msg->message == WM_COMMAND) {
const int button_id = LOWORD(msg->wParam);
if (button_id >= 0 && button_id < actions_.count()) {
qLog(Debug) << "Button activated";
actions_[button_id]->activate(QAction::Trigger);
}
}