diff --git a/src/apps/mediaplayer/Controller.cpp b/src/apps/mediaplayer/Controller.cpp index 50df8e8970..e34bb3641e 100644 --- a/src/apps/mediaplayer/Controller.cpp +++ b/src/apps/mediaplayer/Controller.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2006 Marcus Overhagen * Copyright (C) 2007-2008 Stephan Aßmus (MIT Ok) - * Copyright (C) 2007 Fredrik Modéen + * Copyright (C) 2007-2009 Fredrik Modéen <[FirstName]@[LastName].se> (MIT ok) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -231,14 +231,14 @@ Controller::SetTo(const entry_ref &ref) err = mf->InitCheck(); if (err != B_OK) { - printf("Controller::SetTo: initcheck failed\n"); + //printf("Controller::SetTo: initcheck failed\n"); _NotifyFileChanged(); return err; } int trackcount = mf->CountTracks(); if (trackcount <= 0) { - printf("Controller::SetTo: trackcount %d\n", trackcount); + //printf("Controller::SetTo: trackcount %d\n", trackcount); _NotifyFileChanged(); return B_MEDIA_NO_HANDLER; } @@ -248,15 +248,15 @@ Controller::SetTo(const entry_ref &ref) media_format f; err = t->EncodedFormat(&f); if (err != B_OK) { - printf("Controller::SetTo: EncodedFormat failed for track index %d, error 0x%08lx (%s)\n", - i, err, strerror(err)); + //printf("Controller::SetTo: EncodedFormat failed for track index %d, error 0x%08lx (%s)\n", + // i, err, strerror(err)); mf->ReleaseTrack(t); continue; } if (t->Duration() <= 0) { - printf("Controller::SetTo: track index %d has no duration\n",i); - mf->ReleaseTrack(t); + //printf("Controller::SetTo: track index %d has no duration\n",i); + //mf->ReleaseTrack(t); continue; } @@ -272,8 +272,8 @@ Controller::SetTo(const entry_ref &ref) } } - printf("Controller::SetTo: %d audio track, %d video track\n", - AudioTrackCount(), VideoTrackCount()); + //printf("Controller::SetTo: %d audio track, %d video track\n", + // AudioTrackCount(), VideoTrackCount()); fMediaFile = mf; mediaFileDeleter.Detach(); @@ -282,8 +282,8 @@ Controller::SetTo(const entry_ref &ref) SelectVideoTrack(0); if (fAudioTrackSupplier == NULL && fVideoTrackSupplier == NULL) { - printf("Controller::SetTo: no audio or video tracks found or " - "no decoders\n"); + //printf("Controller::SetTo: no audio or video tracks found or " + // "no decoders\n"); _NotifyFileChanged(); delete fMediaFile; fMediaFile = NULL; @@ -453,8 +453,8 @@ Controller::SelectVideoTrack(int n) fDuration = max_c(a, v); fVideoFrameRate = fVideoTrackSupplier->Format().u.raw_video.field_rate; if (fVideoFrameRate <= 0.0) { - printf("Controller::SelectVideoTrack(%d) - invalid video frame rate: %.1f\n", n, - fVideoFrameRate); + //printf("Controller::SelectVideoTrack(%d) - invalid video frame rate: %.1f\n", n, + // fVideoFrameRate); fVideoFrameRate = 25.0; } @@ -486,7 +486,7 @@ Controller::CurrentVideoTrack() void Controller::Stop() { - printf("Controller::Stop\n"); + //printf("Controller::Stop\n"); BAutolock _(this); @@ -500,7 +500,7 @@ Controller::Stop() void Controller::Play() { - printf("Controller::Play\n"); + //printf("Controller::Play\n"); BAutolock _(this); @@ -512,7 +512,7 @@ Controller::Play() void Controller::Pause() { - printf("Controller::Pause\n"); +// printf("Controller::Pause\n"); BAutolock _(this); @@ -525,7 +525,7 @@ Controller::Pause() void Controller::TogglePlaying() { - printf("Controller::TogglePlaying\n"); +// printf("Controller::TogglePlaying\n"); BAutolock _(this); @@ -567,7 +567,7 @@ Controller::TimePosition() void Controller::SetVolume(float value) { - printf("Controller::SetVolume %.4f\n", value); +// printf("Controller::SetVolume %.4f\n", value); if (!Lock()) return; diff --git a/src/apps/mediaplayer/ControllerView.cpp b/src/apps/mediaplayer/ControllerView.cpp index fbd3b5bfdc..8ce15e525d 100644 --- a/src/apps/mediaplayer/ControllerView.cpp +++ b/src/apps/mediaplayer/ControllerView.cpp @@ -3,6 +3,7 @@ * * Copyright (C) 2006 Marcus Overhagen * Copyright (C) 2007 Stephan Aßmus + * Copyright (C) 2008-2009 Fredrik Modéen <[FirstName]@[LastName].se> (MIT ok) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -29,7 +30,6 @@ #include "Playlist.h" #include "PlaylistObserver.h" - ControllerView::ControllerView(BRect frame, Controller* controller, Playlist* playlist) : TransportControlGroup(frame, true, true, false) @@ -70,7 +70,7 @@ ControllerView::MessageReceived(BMessage *msg) case MSG_PLAYLIST_REF_REMOVED: case MSG_PLAYLIST_REFS_SORTED: case MSG_PLAYLIST_CURRENT_REF_CHANGED: - CheckSkippable(); + _CheckSkippable(); break; default: @@ -107,7 +107,7 @@ void ControllerView::Rewind() { // TODO: make it so this function is called repeatedly - printf("ControllerView::Rewind()\n"); + //printf("ControllerView::Rewind()\n"); } @@ -115,7 +115,7 @@ void ControllerView::Forward() { // TODO: make it so this function is called repeatedly - printf("ControllerView::Forward()\n"); + //printf("ControllerView::Forward()\n"); } @@ -135,6 +135,16 @@ ControllerView::SkipForward() } +void +ControllerView::SkipForwardAndDelete() +{ + BAutolock _(fPlaylist); + int32 index = fPlaylist->CurrentRefIndex(); + fPlaylist->SetCurrentRefIndex(index + 1); + fPlaylist->RemoveRefPermanent(index, true); +} + + void ControllerView::VolumeChanged(float value) { @@ -161,7 +171,7 @@ ControllerView::PositionChanged(float value) void -ControllerView::CheckSkippable() +ControllerView::_CheckSkippable() { BAutolock _(fPlaylist); @@ -169,5 +179,3 @@ ControllerView::CheckSkippable() fPlaylist->GetSkipInfo(&canSkipPrevious, &canSkipNext); SetSkippable(canSkipPrevious, canSkipNext); } - - diff --git a/src/apps/mediaplayer/ControllerView.h b/src/apps/mediaplayer/ControllerView.h index b5e7cd2f97..3e847043fe 100644 --- a/src/apps/mediaplayer/ControllerView.h +++ b/src/apps/mediaplayer/ControllerView.h @@ -3,6 +3,7 @@ * * Copyright (C) 2006 Marcus Overhagen * Copyright (C) 2007 Stephan Aßmus + * Copyright (C) 2008-2009 Fredrik Modéen <[FirstName]@[LastName].se> (MIT ok) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -44,6 +45,7 @@ public: virtual void Forward(); virtual void SkipBackward(); virtual void SkipForward(); + virtual void SkipForwardAndDelete(); virtual void VolumeChanged(float value); virtual void ToggleMute(); virtual void PositionChanged(float value); @@ -54,7 +56,7 @@ private: void Draw(BRect updateRect); // ControllerView - void CheckSkippable(); + void _CheckSkippable(); private: Controller* fController; diff --git a/src/apps/mediaplayer/MainWin.cpp b/src/apps/mediaplayer/MainWin.cpp index a224019db5..8b96efcc6d 100644 --- a/src/apps/mediaplayer/MainWin.cpp +++ b/src/apps/mediaplayer/MainWin.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2006 Marcus Overhagen * Copyright (C) 2007-2008 Stephan Aßmus (GPL->MIT ok) - * Copyright (C) 2007-2008 Fredrik Modéen + * Copyright (C) 2007-2009 Fredrik Modéen <[FirstName]@[LastName].se> (MIT ok) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -92,7 +92,9 @@ enum { M_SELECT_VIDEO_TRACK = 0x00010000, M_SELECT_VIDEO_TRACK_END = 0x000fffff, - M_SET_PLAYLIST_POSITION + M_SET_PLAYLIST_POSITION, + + M_FILE_DELETE }; //#define printf(a...) @@ -198,7 +200,7 @@ MainWin::MainWin() MainWin::~MainWin() { - printf("MainWin::~MainWin\n"); +// printf("MainWin::~MainWin\n"); Settings::Default()->RemoveListener(&fGlobalSettingsListener); fPlaylist->RemoveListener(fPlaylistObserver); @@ -239,8 +241,8 @@ MainWin::FrameResized(float newWidth, float newHeight) bool noMenu = fNoMenu || fIsFullscreen; bool noControls = fNoControls || fIsFullscreen; - printf("FrameResized enter: newWidth %.0f, newHeight %.0f\n", - newWidth, newHeight); +// printf("FrameResized enter: newWidth %.0f, newHeight %.0f\n", +// newWidth, newHeight); int maxVideoWidth = int(newWidth) + 1; int maxVideoHeight = int(newHeight) + 1 @@ -264,7 +266,7 @@ MainWin::FrameResized(float newWidth, float newHeight) if (maxVideoHeight == 0) { bool hidden = fVideoView->IsHidden(); -printf(" video view hidden: %d\n", hidden); +// printf(" video view hidden: %d\n", hidden); if (!hidden) fVideoView->Hide(); } else { @@ -285,7 +287,7 @@ printf(" video view hidden: %d\n", hidden); // y += fControlsHeight; } - printf("FrameResized leave\n"); +// printf("FrameResized leave\n"); } @@ -570,9 +572,7 @@ MainWin::MessageReceived(BMessage *msg) _ToggleFullscreen(); _ResizeWindow(400); break; - -/* - +/* case B_ACQUIRE_OVERLAY_LOCK: printf("B_ACQUIRE_OVERLAY_LOCK\n"); fVideoView->OverlayLockAcquire(); @@ -582,10 +582,9 @@ MainWin::MessageReceived(BMessage *msg) printf("B_RELEASE_OVERLAY_LOCK\n"); fVideoView->OverlayLockRelease(); break; - +*/ case B_MOUSE_WHEEL_CHANGED: { - printf("B_MOUSE_WHEEL_CHANGED\n"); float dx = msg->FindFloat("be:wheel_delta_x"); float dy = msg->FindFloat("be:wheel_delta_y"); bool inv = modifiers() & B_COMMAND_KEY; @@ -595,7 +594,7 @@ MainWin::MessageReceived(BMessage *msg) if (dy < -0.1) PostMessage(inv ? M_SKIP_NEXT : M_VOLUME_UP); break; } -*/ + case M_SKIP_NEXT: fControls->SkipForward(); break; @@ -666,7 +665,9 @@ MainWin::MessageReceived(BMessage *msg) // the global settings instance... _AdoptGlobalSettings(); break; - + case M_FILE_DELETE: + fControls->SkipForwardAndDelete(); + break; default: // let BWindow handle the rest BWindow::MessageReceived(msg); @@ -837,7 +838,7 @@ MainWin::_RefsReceived(BMessage* msg) void MainWin::_SetupWindow() { - printf("MainWin::_SetupWindow\n"); +// printf("MainWin::_SetupWindow\n"); // Populate the track menus _SetupTrackMenus(); // Enable both if a file was loaded @@ -1261,10 +1262,10 @@ MainWin::_KeyDown(BMessage *msg) uint32 key = msg->FindInt32("key"); uint32 raw_char = msg->FindInt32("raw_char"); - uint32 modifiers = msg->FindInt32("modifiers"); + uint32 modifier = msg->FindInt32("modifiers"); printf("key 0x%lx, raw_char 0x%lx, modifiers 0x%lx\n", key, raw_char, - modifiers); + modifier); switch (raw_char) { case B_SPACE: @@ -1279,14 +1280,14 @@ MainWin::_KeyDown(BMessage *msg) break; case B_ENTER: // Enter / Return - if (modifiers & B_COMMAND_KEY) { + if (modifier & B_COMMAND_KEY) { PostMessage(M_TOGGLE_FULLSCREEN); return B_OK; } else break; case B_TAB: - if ((modifiers & (B_COMMAND_KEY | B_CONTROL_KEY | B_OPTION_KEY + if ((modifier & (B_COMMAND_KEY | B_CONTROL_KEY | B_OPTION_KEY | B_MENU_KEY)) == 0) { PostMessage(M_TOGGLE_FULLSCREEN); return B_OK; @@ -1294,7 +1295,7 @@ MainWin::_KeyDown(BMessage *msg) break; case B_UP_ARROW: - if (modifiers & B_COMMAND_KEY) { + if (modifier & B_COMMAND_KEY) { PostMessage(M_SKIP_NEXT); } else { PostMessage(M_VOLUME_UP); @@ -1302,7 +1303,7 @@ MainWin::_KeyDown(BMessage *msg) return B_OK; case B_DOWN_ARROW: - if (modifiers & B_COMMAND_KEY) { + if (modifier & B_COMMAND_KEY) { PostMessage(M_SKIP_PREV); } else { PostMessage(M_VOLUME_DOWN); @@ -1310,7 +1311,7 @@ MainWin::_KeyDown(BMessage *msg) return B_OK; case B_RIGHT_ARROW: - if (modifiers & B_COMMAND_KEY) { + if (modifier & B_COMMAND_KEY) { PostMessage(M_VOLUME_UP); } else { PostMessage(M_SKIP_NEXT); @@ -1318,7 +1319,7 @@ MainWin::_KeyDown(BMessage *msg) return B_OK; case B_LEFT_ARROW: - if (modifiers & B_COMMAND_KEY) { + if (modifier & B_COMMAND_KEY) { PostMessage(M_VOLUME_DOWN); } else { PostMessage(M_SKIP_PREV); @@ -1336,17 +1337,15 @@ MainWin::_KeyDown(BMessage *msg) switch (key) { case 0x3a: // numeric keypad + - if ((modifiers & B_COMMAND_KEY) == 0) { - printf("if\n"); + if ((modifier & B_COMMAND_KEY) == 0) { PostMessage(M_VOLUME_UP); return B_OK; } else { - printf("else\n"); break; } case 0x25: // numeric keypad - - if ((modifiers & B_COMMAND_KEY) == 0) { + if ((modifier & B_COMMAND_KEY) == 0) { PostMessage(M_VOLUME_DOWN); return B_OK; } else { @@ -1370,6 +1369,14 @@ MainWin::_KeyDown(BMessage *msg) case 0x48: // numeric keypad left arrow PostMessage(M_SKIP_PREV); return B_OK; + case 0x34: //delete button + case 0x3e: //d for delete + case 0x2b: //t for Trash + if (modifiers() & B_COMMAND_KEY) { + PostMessage(M_FILE_DELETE); + return B_OK; + } + break; } return B_ERROR; diff --git a/src/apps/mediaplayer/TransportControlGroup.cpp b/src/apps/mediaplayer/TransportControlGroup.cpp index 5f924245a2..7bf010142f 100644 --- a/src/apps/mediaplayer/TransportControlGroup.cpp +++ b/src/apps/mediaplayer/TransportControlGroup.cpp @@ -301,7 +301,7 @@ TransportControlGroup::_ExponentialToLinear(float db_in) db = db * (fabs(kVolumeDbMin) / pow(fabs(kVolumeDbMin), (1.0 / kVolumeDbExpNegative))); db = -db; } - printf("_ExponentialToLinear %.4f => %.4f\n", db_in, db); + //printf("_ExponentialToLinear %.4f => %.4f\n", db_in, db); return db; } diff --git a/src/apps/mediaplayer/VideoNode.cpp b/src/apps/mediaplayer/VideoNode.cpp index 3c41efb0c9..8886b51acd 100644 --- a/src/apps/mediaplayer/VideoNode.cpp +++ b/src/apps/mediaplayer/VideoNode.cpp @@ -272,7 +272,7 @@ VideoNode::FormatChanged(const media_source &src, fInput.format = format; - printf("VideoNode::FormatChanged leave\n"); + //printf("VideoNode::FormatChanged leave\n"); return B_OK; } diff --git a/src/apps/mediaplayer/playlist/Playlist.cpp b/src/apps/mediaplayer/playlist/Playlist.cpp index c793cc90fa..9863bdcad4 100644 --- a/src/apps/mediaplayer/playlist/Playlist.cpp +++ b/src/apps/mediaplayer/playlist/Playlist.cpp @@ -3,7 +3,7 @@ * * Copyright (C) 2006 Marcus Overhagen * Copyright (C) 2007 Stephan Aßmus - * Copyright (C) 2008 Fredrik Modéen (I have no problem changing my things to MIT) + * Copyright (C) 2008-2009 Fredrik Modéen <[FirstName]@[LastName].se> (MIT ok) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -40,6 +40,11 @@ using std::nothrow; // TODO: using BList for objects is bad, replace it with a template +// TODO: Remove this and use Tracker's Command.h once it is moved into the private headers +namespace BPrivate { + const uint32 kMoveToTrash = 'Ttrs'; +} + Playlist::Listener::Listener() {} Playlist::Listener::~Listener() {} void Playlist::Listener::RefAdded(const entry_ref& ref, int32 index) {} @@ -283,6 +288,18 @@ Playlist::RemoveRef(int32 index, bool careAboutCurrentIndex) } +void +Playlist::RemoveRefPermanent(int32 index, bool removeToTrash) +{ + if (index != -1) { + entry_ref song = RemoveRef(index); + + if(removeToTrash) + _DeleteEntry(&song);//Remove with tracker + } +} + + int32 Playlist::IndexOf(const entry_ref& _ref) const { @@ -570,6 +587,17 @@ Playlist::_MIMEString(const entry_ref* ref) } +void +Playlist::_DeleteEntry(const entry_ref* file) +{ + // Move entry_ref to Trash + BMessage trash(BPrivate::kMoveToTrash); + trash.AddRef("refs", file); + + BMessenger("application/x-vnd.Be-TRAK").SendMessage(&trash); +} + + void Playlist::_NotifyRefAdded(const entry_ref& ref, int32 index) const { diff --git a/src/apps/mediaplayer/playlist/Playlist.h b/src/apps/mediaplayer/playlist/Playlist.h index 42a1f9e4b9..13c9123a13 100644 --- a/src/apps/mediaplayer/playlist/Playlist.h +++ b/src/apps/mediaplayer/playlist/Playlist.h @@ -3,7 +3,7 @@ * * Copyright (C) 2006 Marcus Overhagen * Copyright (C) 2007 Stephan Aßmus - * Copyright (C) 2008 Fredrik Modéen (I have no problem changing my things to MIT) + * Copyright (C) 2008-2009 Fredrik Modéen <[FirstName]@[LastName].se> (MIT ok) * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -68,6 +68,9 @@ public: entry_ref RemoveRef(int32 index, bool careAboutCurrentIndex = true); + void RemoveRefPermanent(int32 index, + bool removeToTrash); + bool AdoptPlaylist(Playlist& other); bool AdoptPlaylist(Playlist& other, int32 index); @@ -101,6 +104,7 @@ private: static bool _IsBinaryPlaylist(const BString& mimeString); static bool _IsPlaylist(const BString& mimeString); static BString _MIMEString(const entry_ref* entry); + void _DeleteEntry(const entry_ref* file); void _NotifyRefAdded(const entry_ref& ref, int32 index) const; void _NotifyRefRemoved(int32 index) const; diff --git a/src/apps/mediaplayer/playlist/PlaylistListView.cpp b/src/apps/mediaplayer/playlist/PlaylistListView.cpp index 3cac38b09b..2e529b6806 100644 --- a/src/apps/mediaplayer/playlist/PlaylistListView.cpp +++ b/src/apps/mediaplayer/playlist/PlaylistListView.cpp @@ -255,6 +255,7 @@ PlaylistListView::AttachedToWindow() void PlaylistListView::MessageReceived(BMessage* message) { +// message->PrintToStream(); switch (message->what) { // PlaylistObserver messages case MSG_PLAYLIST_REF_ADDED: { @@ -442,6 +443,16 @@ PlaylistListView::Randomize() } +void +PlaylistListView::PermanentRemoveSelectedFile(bool permRemove) +{ + BAutolock _(fPlaylist); + int32 index = fPlaylist->CurrentRefIndex(); + fPlaylist->SetCurrentRefIndex(index + 1); + fPlaylist->RemoveRefPermanent(index, permRemove); +} + + // #pragma mark - diff --git a/src/apps/mediaplayer/playlist/PlaylistListView.h b/src/apps/mediaplayer/playlist/PlaylistListView.h index f7b1201b07..dbbfa56adc 100644 --- a/src/apps/mediaplayer/playlist/PlaylistListView.h +++ b/src/apps/mediaplayer/playlist/PlaylistListView.h @@ -45,6 +45,7 @@ class PlaylistListView : public SimpleListView { int32 appendIndex); void Randomize(); + void PermanentRemoveSelectedFile(bool permRemove); private: void _FullSync(); diff --git a/src/apps/mediaplayer/playlist/PlaylistWindow.cpp b/src/apps/mediaplayer/playlist/PlaylistWindow.cpp index ffbce0c246..416e60af61 100644 --- a/src/apps/mediaplayer/playlist/PlaylistWindow.cpp +++ b/src/apps/mediaplayer/playlist/PlaylistWindow.cpp @@ -53,7 +53,11 @@ enum { // edit M_PLAYLIST_EMPTY = 'emty', - M_PLAYLIST_RANDOMIZE = 'rand' + M_PLAYLIST_RANDOMIZE = 'rand', + + // + M_PLAYLIST_DELETE_FILE = 'dlfi', + M_PLAYLIST_PER_DEL_FILE = 'pdfi' }; #define SPACE 5 @@ -191,7 +195,12 @@ PlaylistWindow::MessageReceived(BMessage* message) case M_PLAYLIST_RANDOMIZE: fListView->Randomize(); break; - + case M_PLAYLIST_DELETE_FILE: + fListView->PermanentRemoveSelectedFile(false); + break; + case M_PLAYLIST_PER_DEL_FILE: + fListView->PermanentRemoveSelectedFile(true); + break; default: BWindow::MessageReceived(message); break; @@ -199,6 +208,35 @@ PlaylistWindow::MessageReceived(BMessage* message) } +void +PlaylistWindow::DispatchMessage(BMessage *message, BHandler *handler) +{ + if (message->what == B_KEY_DOWN) { + + uint32 key = message->FindInt32("key"); + + switch (key) { + case 0x34: //delete button + case 0x3e: //d for delete + case 0x2b: //t for Trash + if (modifiers() & B_COMMAND_KEY) { + fListView->PermanentRemoveSelectedFile(true); + return; + } + break; + case 0x2a: //r for Remove + if (modifiers() & B_COMMAND_KEY) { + fListView->PermanentRemoveSelectedFile(false); + return; + } + break; + } + } + + BWindow::DispatchMessage(message, handler); +} + + // #pragma mark - @@ -227,10 +265,16 @@ PlaylistWindow::_CreateMenu(BRect& frame) fRedoMI = new BMenuItem("Redo", new BMessage(B_REDO), 'Z', B_SHIFT_KEY); editMenu->AddItem(fRedoMI); editMenu->AddSeparatorItem(); - editMenu->AddItem(new BMenuItem("Make Empty", - new BMessage(M_PLAYLIST_EMPTY), 'N')); editMenu->AddItem(new BMenuItem("Randomize", new BMessage(M_PLAYLIST_RANDOMIZE), 'R')); + editMenu->AddSeparatorItem(); + editMenu->AddItem(new BMenuItem("Remove", + new BMessage(M_PLAYLIST_DELETE_FILE), 'R')); + editMenu->AddItem(new BMenuItem("Remove Permanent", + new BMessage(M_PLAYLIST_PER_DEL_FILE), 'T', B_COMMAND_KEY)); + editMenu->AddItem(new BMenuItem("Remove All", + new BMessage(M_PLAYLIST_EMPTY), 'N')); + menuBar->AddItem(editMenu); AddChild(menuBar); diff --git a/src/apps/mediaplayer/playlist/PlaylistWindow.h b/src/apps/mediaplayer/playlist/PlaylistWindow.h index 233cae60d0..40d5829882 100644 --- a/src/apps/mediaplayer/playlist/PlaylistWindow.h +++ b/src/apps/mediaplayer/playlist/PlaylistWindow.h @@ -36,11 +36,11 @@ public: virtual bool QuitRequested(); virtual void MessageReceived(BMessage* message); + virtual void DispatchMessage(BMessage *msg, BHandler *handler); private: void _CreateMenu(BRect& frame); void _ObjectChanged(const Notifier* object); - void _SavePlaylist(const BMessage* filePanelMessage); void _SavePlaylist(const entry_ref& ref); void _SavePlaylist(BEntry& origEntry,