History log of /haiku/src/apps/mediaplayer/MainWin.cpp
Revision Date Author Comments
# 15305513 03-Nov-2023 Humdinger <humdinger@mailbox.org>

Add "Reset rating" menu item to MediaPlayer and ShowImage

Doesn't remove the rating BFS attribute from the file, just sets it to "0".

ShowImage: Move "Ratings" menu into a new "Attributes" menu, similar to
MediaPlayer.

Change-Id: I831166d88be9d18f1d302a423aa43929b7a1b255
Reviewed-on: https://review.haiku-os.org/c/haiku/+/7092
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>
Reviewed-by: Adrien Destugues <pulkomandy@pulkomandy.tk>


# 87db9cb2 15-May-2022 Jaidyn Ann <jadedctrl@teknik.io>

MediaPlayer: Add per-track scripting items

Somewhat restructures scripting interface: Playlist items can be
accessed/added/removed through PlaylistTrack, current item can be
accessed through CurrentTrack. Also adds an IsPlaying property.

Fixes #13881

Change-Id: Iad333ec20ab00ff57147c7e1359a24dea04d6aa2
Reviewed-on: https://review.haiku-os.org/c/haiku/+/5316
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>
Tested-by: Commit checker robot <no-reply+buildbot@haiku-os.org>


# 60ead048 27-Jul-2021 JackBurton79 <stefano.ceccherini@gmail.com>

MediaPlayer: close() cd/dvd device after eject.

We were not closing cd/dvd device after eject.
Also changed fDevice member to a local variable, since we only use it in one place.

Change-Id: I169da97501f98e30deded1f5ff53d3bc00459eab
Reviewed-on: https://review.haiku-os.org/c/haiku/+/4247
Reviewed-by: Axel Dörfler <axeld@pinc-software.de>


# 31acddc0 08-Jan-2020 Zotyamester <szatmary.zoltan1222@gmail.com>

MediaPlayer: add eject button

Fixes #11492

Change-Id: I06631ddcef354f4cf8a10e8ccbb6eba03c1ca7dd


# 779ab335 09-Dec-2020 X512 <danger_mail@list.ru>

use .IsSet() instead if .Get() != NULL

Change-Id: Ia2b7a719fd398e78cc3b11d4f7b02cb81179f65f
Reviewed-on: https://review.haiku-os.org/c/haiku/+/3488
Reviewed-by: Jérôme Duval <jerome.duval@gmail.com>


# 15ba64aa 13-Jul-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Unify Settings menu shortcut

Use , as the shortcut key for settings in all built-in apps. Some used
S, but that's already the shortcut for saving. , is the recommended
shortcut in the HIG already, but built-in apps were not updated to
match.

Fixes #11733.


# 984492f1 22-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

Build fix.


# 582b7d16 22-May-2020 Adrien Destugues <pulkomandy@pulkomandy.tk>

MediaPlayer: missing localization

Fixes #16062


# 86950f4e 02-Dec-2017 CodeforEvolution <themysterymail555@gmail.com>

MediaPlayer: Add Retrieving Track Number through Scripting

Also fix some backend logic

Change-Id: I4b24786ece4be1e9007686d46f6541d39df7a33b
Reviewed-on: https://review.haiku-os.org/c/haiku/+/319
Reviewed-by: Adrien Destugues <pulkomandy@gmail.com>


# 3248de3d 10-Jul-2018 Julien Lepiller <julien@lepiller.eu>

Mediaplayer: remember position and volume

Change-Id: I43fa7cbcedd39c39e4b136e9e1f9bb34bf3eb570


# a31e05bb 10-Jan-2018 Augustin Cavalier <waddlesplash@gmail.com>

MediaPlayer: Compare return value of FindMatch against B_ERROR.

Thanks Rene for the review!


# 6ba5b421 07-Dec-2017 Owen <owenca@users.noreply.github.com>

Add PlaylistTrackCount and PlaylistTrackTitle to scripting

PlaylistTrackCount returns the number of tracks in Playlist,
and PlaylistTrackTitle the title of a numbered track.

Also, remove B_TRANSLATE macros in scripting properties


# 3065fd47 13-Dec-2017 Alexander von Gluck IV <kallisti5@unixzen.com>

MediaPlayer: Relicense to MIT

* The GPL license here was a relic from the past to help
control YellowTab's use of Haiku source code. The intent
at the time was to relicense MIT. Some GPL parts remained.
* This is going to get harder and harder to correct over time.
* This code makes Haiku *not* MIT. Lets correct that.
* I reached out to everyone who made changes to these files and
got personal approvals to relicense MIT.
* If I missed somebody, *and* you feel as though the MIT license
doesn't meet your needs, please contact Haiku, Inc. and we will
work to revert your changes.

Marcus Overhagen EMAIL - MIT OK 11/29/17
Stephan Aßmus EMAIL - MIT OK 11/28/17
Axel Dörfler IRC - MIT OK 11/29/17
Ryan Leavengood KEYBASE - MIT OK 11/28/17
Michael Lotz IRC - MIT OK 11/29/17
Adrien Destugues EMAIL - MIT OK 11/28/17
Joachim Seemer EMAIL - MIT OK 11/28/17
Jonas Sundström EMAIL - MIT OK 11/29/17
François Revol IRC - MIT OK 11/29/17
Jérôme Duval EMAIL - MIT OK 11/29/17
Oliver Tappe EMAIL - MIT OK 11/29/17
Dziadek EMAIL - MIT OK 11/29/17
Philippe Saint-Pierre EMAIL - MIT OK 12/6/17
Philippe Houdoin EMAIL - MIT OK 12/8/17
Dario Casalinuovo IRC - MIT OK 12/13/17


# 16af9b4c 05-Nov-2017 Humdinger <humdingerb@gmail.com>

Style, no functional changes

Make termination consistant with that last commit hrev51521.
As wished and proof-read by waddlesplash. Hope all's well...


# 4068f282 28-Dec-2016 Axel Dörfler <axeld@pinc-software.de>

MediaPlayer: Make sure the window is on screen.

* The existing check in _ResizeWindow() was avoided when there
is an initial frame to use (when launching with an audio file).


# 92cb0c5d 30-Jun-2016 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaPlayer: Add GUI to open network streams


# 61a59e87 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaPlayer: add new media services notification service


# 97f5ebc1 29-Mar-2015 Humdinger <humdingerb@gmail.com>

Sentence casing...


# 36900dc8 26-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

MediaPlayer: missing B_TRANSLATE on "none" menu label

Patch by Diver, thanks!


# b02efcef 19-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

MediaPlayer: reintroduce "stop" shortcut.

It turns out there are some people actually using it, mainly when
playing music. If you interrupt music, you often want to start listeing
from the start of the track again (unlike for video), so having a stop
button makes sense in that case.


# 6f08ef0a 18-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

MediaPlayer: some shortcuts tweaks

* F: toggle fullscreen (like tab)
* V: removed. Stopping the replay would lose the current position, and
we don't want non-undoable lossy operation on single keystrokes
* X: toggles play/pause instead of forcing play (like space)
* Alt+Shift+0/1/2/3 changes the aspecdt ratio to "raw", "default",
"4/3", "16/9".

Fixes remaining parts of #2495.


# 991dadd6 16-Jun-2014 Humdinger <humdingerb@gmail.com>

Make sure there's a space in front of B_UTF8_ELLIPSIS.

As PulkoMandy said in hrev47388: C++11 safe and reads better.


# 364da0f9 21-Dec-2013 Axel Dörfler <axeld@pinc-software.de>

MediaPlayer: fixed broken subtitle menu activation.

* Since ffd71d3d19742cef58981cd7cba8e22d79320128 (hrev45979) you needed
at least two subtitle tracks to have the menu enabled.


# bab9e168 24-Nov-2013 Michael Lotz <mmlr@mlotz.ch>

MediaPlayer: Add Duration, Position and Seek properties.

These allow getting the duration of the currently playing item and the
current playing position as well as setting the absolute position and
seeking by relative time via scripting.


# 2937bbe3 24-Nov-2013 Michael Lotz <mmlr@mlotz.ch>

MediaPlayer: Move winding code into its own function.


# ae96ed6d 31-Aug-2013 John Scipione <jscipione@gmail.com>

Use a stop alert when you can't open the file.

This is a fatal error that the user has no way to recover from
so using the info alert is not appropriate here.

Also rename the ret variable to result and omit extraneous braces.


# ffd71d3d 19-Aug-2013 Jessica Hamilton <jessica.l.hamilton@gmail.com>

MediaPlayer: revert hrev38440

With #6610 fixed, it is now possible to open disabled menus in a
menubar, so the workaround introduced in hrev33840 is no longer
needed.

Signed-off-by: John Scipione <jscipione@gmail.com>


# 843a122f 04-May-2013 Jérôme Duval <jerome.duval@gmail.com>

MediaPlayer: some 64 bit fixes


# aed35104 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# a7bee8e4 18-May-2012 Humdinger <humdingerb@gmail.com>

Corrected typo correction... thanks Starseed. /me needs glasses.


# 268816a3 18-May-2012 Humdinger <humdingerb@gmail.com>

Corrected typo. Fixes #8557.


# 546208a5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# a16d549a 04-Mar-2012 Michael Lotz <mmlr@mlotz.ch>

Add scripting property for toggling fullscreen.


# 7532547c 10-Jan-2012 Axel Dörfler <axeld@pinc-software.de>

Also hide the full screen controls when the mouse is over them.

* We just wait a little longer in this case, like 4.5s.
* Changed the code to only send the messages when needed, before they were
being sent every 1.5s.
* However, this is untested as of yet, as the layout changes didn't allow me
to run the MediaPlayer on my system. Will do so in a minute on another one.


# a5a013ca 07-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

MediaPlayer: Fix movement of items in playlist

In Playlist, whenever a move of items occured causing the
currently playing song to change its position, so :
1. Importing files (D&D for example) before its position
2. Removings files before it
3. Moving files before it

was causing the currently playing song to restart because
it was thinking a new entry was asked (it had a different
index number suddently).

Also adjusted the behaviour when you delete the currently
playing track.

Should fix ticket #6689.


# a178983d 09-Sep-2011 Axel Dörfler <axeld@pinc-software.de>

Cleanup while I was searching for a bug that ended up being in the app_server;
the decorators now return non-sense as their frame, thank you Clemens!
* Got rid of Settings::CurrentSettings() - the get/store pair wasn't really
thread-safe anyway, as it always updated all fields, so settings could get
lost easily. The mechanism is still being used in the settings window, though.
* Introduced some getters/setters for the settings that work on the message
directly which simplifies some code.
* Minor style cleanups.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42732 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f74d4e95 30-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed the 150ms delay before showing the window - the window is now always
opened only once the stream is ready. This fixes the random "open in audio
position" of video files.
* Removed a call to _ShowIfNeeded() in _RefsReceived(); it doesn't seem to have
any purpose.
* Center new video windows on screen.
* Call _ShowIfNeeded() after the window has been positioned and resized in
_SetupWindow(). This fixes having the window jump around on screen after
launch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0325a782 30-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed the superfluous wait time until the context menu pops up. This fixes
the video hanging everytime you open the context menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c54e3124 30-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e28afdf1 26-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Changes to the MediaPlayer's playlist window's menu options Remove, Remove all, Move to Trash.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41122 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11c7ff53 25-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Removing most About windows and menu items as discussed here
http://www.freelists.org/post/haiku-commits/r40968-in-haikutrunksrcapps-activitymonitor-bootmanager-charactermap-codycam-deskbar,3
Leaving them for now in replicants, and in Terminal, according to (my interpretation of) the instructions here
http://dev.haiku-os.org/browser/haiku/trunk/src/apps/terminal/README.GPL_to_OBOS#L70
Some sporadic cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41108 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 560ff447 25-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Use resource definition files instead of DoCatalogs rule. Rename B_TRANSLATE_APP_NAME and related macros to the more generic B_TRANSLATE_SYSTEM_NAME, to also fits add-ons, folders, etc, and make 'System name' its standard context. Change CodyCam and PoorMan's app signatures to match the overall x-vnd.Haiku-App pattern. Some clean-up. Make SlideShowSaver build again.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41103 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b97c5149 15-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Making use of B_TRANSLATE_APP_NAME, BAboutMenuItem, BAboutWindow. Clean-up. Removal of some ellipsis. ('About Haiku' in Deskbar.)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40968 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ee8f3f6 25-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

Bunch of localization fixes pointed out by Diver. Thanks!

Notes:
- FileTypes: The "Same as" button label separated to two entities in dependency of
context: "Same Type as ..." and "Same Application as ...";
- Tracker: The sentences like "If you do %action [...]. To do %action [...]"
now use separately translated verbs for so called
"ifYouDoAction" and "toDoAction";
- NetworkStatus: NetworkStatusView _ShowConfiguration is fixed back after previous
attempt to localize it in r37337: useless code bloating purged out,
broken quasi-header "ifaceName information:" pulled back from Hell;
- StyledEdit: Menu item "Can't undo" had different casing in some situation. Looks
like HTA cannot detect such situation, so right lines "Can't undo"
were masked by wrong one "Can't Undo" and this line stay untranslated
for most time.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c95e40e 28-Jan-2011 Joachim Seemer <humdingerb@googlemail.com>

* Changed full screen shortcut to B_ENTER like in Terminal, ShowImage, Web+.
* Put "Always on top" into context menu.
* Rearranged items in context menu to have interface related options together.
* Disable "No interface" in full screen mode context menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40309 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 238df8fb 29-Dec-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by Dziadek as part of GCI : localize MediaPlayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40021 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d1d8fda6 19-Oct-2010 Oliver Tappe <zooey@hirschkaefer.de>

Next step of Locale Kit refactoring:
* BLocale now keeps language and country completely separate and
mixes the formatting conventions into the current language's locale
when formatting dates and times (needs to be done for number- and
currency-formatting, too, since the digits may not be in the
preferred language)
* optimized fetching of the flag icons such that they are all loaded
in one go (by the locale roster) - this alone speeds up the Locale
preflet considerably
* worked on fixing the language confusion in the Locale preflet
* fixed a couple of bugs in the Locale preflet that would lead to
illegal characters being displayed in the date-subpart menus


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bf8d247 08-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Do not add documents to the recent list in _UpdatePlaylistItemFile(), but do
so when the items are added to the playlist. This has the added advantage of
being able to easily reselect sub-folders (an album for example).
* Enabled navigating folders in the recent item list.
* Added Playlist::IsEmpty() method.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38897 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 954d79e2 29-Sep-2010 Axel Dörfler <axeld@pinc-software.de>

* Added first working "display_as" type "duration".
* Changed Media:Length to int64, and use the new duration view in Tracker.
* Renamed the pretty name for video's Media:Length to "Runtime" (that's how it's
called in IMDB, and I was never really fond of "Playing Time").
* FileTypes AttributeWindow needed to check the display-as types, as well as
if the contents are acceptable when opening, too.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38856 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e65a6eb2 28-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Give some options for subtitle placement and size.
* Optimize subtitle drawing when subtitles are to be
displayed at screen bottom versus video bottom, and
the subtitle frame does not intersect the video. In
that case we only need to draw it when it changes
(or is to be removed). Fixed the dead-lock problem
in a nicer way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38841 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8ccdf52 27-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Added basic support for SRT subtitle files. It only works
if the SRT file is placed alongside the current playlist
item under the same name (sans extension). The name of the
language is taken from the file which needs to be separated
by a dot (should be improved).
* Instead of the black outline, subtitles have a nice drop
shadow now, which is easier on the eyes somehow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38827 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd5c3422 21-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Show the window when opening files, since that shows the nice
"opening file bla" message and makes starting MediaPlayer feel
even more snappy.
* Show the window at the no-video location when opening files.
* Move the "Drop files to play" message handling into MainWin
and make sure it shows after failed attempts to open a file
when the playlist is still empty.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38764 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebd86629 21-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Added new Playlist notification ImportFailed().
The PlaylistListView will trigger it when the import command
failed (happens for example when none of the files are
media files).
* Moved displaying the according alert from the import fommand
into the MainWindow. Show the window if necessary. This fixes
MediaPlayer just idling in the Deskbar without any window
in this case, since the MainWindow is shown after the first
call to _SetupWindow() since some time. But _SetupWindow() is
not invoked when no file could be opened.
* Removed some meanwhile useless debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38757 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a8771cf 18-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Use duration_to_string() to write better playing time
attribute strings (i.e. with separate hour).
* Write video bitrate attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5bacae95 17-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Make use of the new meta-data API and display the
audio track menu item label as the language of the
track.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a110536a 15-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

When the video is paused, use the left/right cursor keys
for single frame stepping instead of winding. One frame without
shift-modifier, five frames with shift held down.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 341ea11e 12-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Implemented enlarging controls in full-screen mode, it's optional
and the setting defaults to "on".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38610 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d6c8862 09-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* _CurrentVideoSizeInPercent() returned wrong values,
but it didn't result in wrong behavior before.
Implemented more keyboard actions from ticket #2495:
* +/- zoom the video now (by +/- 10% of current scale).
* ZXCVB (raw keys hardcoded, i.e. the keys along the bottom
of the keyboard) act as playback buttons: skip previous (Z),
play (X), pause (C), stop (V), skip next (B).
* Renamed "No interface" menu item to "Hide interface" and
changed the shortcut to Cmd-H. This item is only available
with video streams, though.
* 'M' will mute/unmute the audio.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38599 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c1de1a5 10-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

The Media:Rating attribute can now be controlled via
the new Attributes menu. Added a TODO for how this should
eventually work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38598 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fee522d 10-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Moved the Settings menu items into the MediaPlayer menu.
* Removed the Settings menu in favor of a new Attributes
menu (does not offer anything yet).
* The context menu was showing two separator items by mistake
(after the About item was removed from it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 811aedf9 10-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

New player windows returned from NewWindow() are not
automatically shown anymore since the playlist restore
changes. Unbreak opening a new player, let the application
thread open it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38596 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0beac2ff 09-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

PlaybackManager:
* Make sure that the messages which trigger a performance
time update a) don't pever pile up and b) that we don't
still receive an event after reinitialization (would
not have been a problem, at one point I thought it was).
* Don't compile in support for changing the playback speed
for the moment.
* Better support for notifying the reaching of a seek frame,
In _UpdateStates(), the wrong state (most often out of bounds)
was checked to be a seek request state. Check if a seek request
was reached in all other cases where states are removed.

Controller:
* Simple but important simplification of the problem that
seeked frames are reached asynchronously and with a latency:
In TimePosition() simply report the seeked frame, if there
are still pending seek requests. This allows a consistent
view from the outside, i.e. after calling SetTimePosition(),
TimePosition() will not return something different.
* Use a more robust way to track pending seek requests. A
new request may have been issued while not having reached
the previous one yet.
* Implement a notification for reaching the seek frame, but
I didn't need it after all, may come in handy later...

MainWin:
* Change the cursor left/right keys to support winding.
Cursor up/down change the volume, Cmd-up/down skips
to the previous/next playlist item, left/right do the
winding now, as requested in ticket #2495.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5f8afb9 07-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

First implementation at the "loop by default" settings.
To make it better, there should be a looping mode per
window, and the settings should serve only as defaults.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38570 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45f82fe6 06-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Coding style fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38539 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8ae6dbd9 02-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Rename a couple Audio:* attributes to Media:*, as discussed
some time ago on the mailing list. This change will not exactly
break existing audio tools, but once those tools write the old
attributes, the user will not see the expected changes when he
is displaying the new attributes in Tracker, and the old
attributes will of coerse appear alongside the new ones in
the Attribute menu. In the long run, it makes things cleaner,
though.
* Make MediaPlayer write the new duration attribute, and also for
video clips.
* Register opened playlist items when they are files with the
system, so not only files opened via drag and drop or Tracker
will appear in MediaPlayers "Open File" menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38523 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36f28785 03-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Don't clutter the context menu with a mostly never
used About... menu item.
* Setup the About menu item in the file menu such
that it sends its message to the be_app, we no
longer have to forward it then.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee891c88 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Do not resize the VideoView to the scaled size
of the video anymore, but tell the VideoView
the video frame size. So the outside regions of
the video are also painted by the VideoView. Not
tested with overlays, but should work. The side
effect is that the controls appear along the bottom
of the screen in full-screen mode. The controls
may need to be over the video, so they cannot be
attached to the parent of the VideoView (this was
already the case).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80a9df25 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Show the controls in full-screen mode when the mouse moves.
* Propagate the current audio channel count to the controls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e3a8569 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Don't disable the audio/video track menus anymore when
there is only one track. I introduced this at diver's request,
but I think it's irritating. Also when the audio tracks will
be named after their language, it would be nice to know it,
or even perhaps other properties, like channel count.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38440 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a4442740 21-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed regression I introduced in r36391. Thanks for proof-reading, Stippi!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36396 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d75c9c3d 21-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36391 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be982b9c 13-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Only restore the previous playing position when there is a file that is
currently playing; this fixes the the problem I mentioned in a comment in
bug #3855.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36224 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 14a66ce5 24-Mar-2010 Stephan Aßmus <superstippi@gmx.de>

Disable either track menu when there is just one or no track. Fixes #5622.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eeeef45c 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

* Implemented a "refs catcher" that will catch refs received through a
B_REFS_RECEIVED within a short amount of time (0.5 seconds right now) and
send them to the last window to be appended to the playlist. This allows to
select multiple media files in Tracker and get them inside a playlist of a
single window instead of spawning many individual ones (like when filtering
for an album, selecting all tracks and opening them by hitting enter).
* Introduce special append index values APPEND_INDEX_REPLACE_PLAYLIST (-1, does
the same as before) and APPEND_INDEX_APPEND_LAST. The latter is used when
appending through a RefsReceived() call and ensures that the index is
evaluated at the actual insertion time (in ImportPLItemsCommand::Perform())
as by the time this function is called the playlist count may have changed
already due to multiple RefsReceived() invokations, which would then mess up
the order. This makes the above item work as expected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 382a4b12 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Add some locking to accesing PlaylistItems in these two cases as suggested by
Stephan.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35348 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 96cddcb7 26-Jan-2010 Jérôme Duval <korli@users.berlios.de>

* avoids crashing when fPlayList is already gone on quitting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cef3da79 26-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Remove leftover from lazy copy&paste action.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35303 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63bcd0d0 26-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Add "URI" property that returns the URI of the currently playing item.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5d6e9b0 25-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Add some scripting to the MediaPlayer so it can be remote controlled.
Example usage to skip one track forward: hey MediaPlayer Do Next of Window 0


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35294 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 312ca935 23-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* Refactored storing the playlist archive in the quit message.
* Added looping all windows on quit and store the current playlist if
applicable.

Fixes #5061.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35253 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7974d3dc 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54ca8797 20-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Also write the bitrate as attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34157 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e663610e 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Made opening playlist items asynchronous (in the Controller thread).
* Resolved TODO: Use the existing "FileChanged" notification in the main
window to adopt the UI to the currently playing item.
* When opening a file takes some time, the window is now free to start hidden
and setup a message runner to unhide it after 150 msecs.
* When launching MediaPlayer with files, the 150 msecs delay is used to
start the window hidden and pop up right at the correct location for audio.
If opening the first audio file takes less than 150 msecs, the window will
already show as soon as possible.
* While opening a file in the Controller, the window will say so in the
disabled seek slider instead of showing the message "Drop media files here.".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34132 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 25fcb499 19-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

Since the window now starts hidden for a brief moment, calling IsHidden() on
the views in the FrameResized() hook which does the layout had some
unanticipated results. We need to know relative to the views themselves. This
fixes the video view being visible despite audio-only content.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e337e55f 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Fixed some regressions I introduced. The video is now correctly layouted
again. Bute this commit seems to make the old bug that some parts of the GUI
are black much more likely. Will look into it tomorrow.
* The calculations to move the window wholy into the screen frame were buggy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34120 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab18a502 16-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Moved the about alert handling into the application
* Simplified the handling of the first window and removed FirstWindow(),
we can tell by fPlayerCount.
* Both the above would fix a crash when requesting the about alert with the
first window already gone. Respectively another player instance opening
if fFirstWindow was reset to NULL after some recent revision.
* Implemented restoring the current playlist, index and position in the file.
* Devised a more robust way to solve asynchronous seeking. The Controller is
now notified that a seek request has been handled with a dedicated hook.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34079 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a746385 16-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

Window size handling is now a bit more robust (all this affects audio only
and empty windows only):
* New windows use the width from the window that was last resized by the user.
* The first window uses the stored window position and size.
* When switching from video content to audio content, the last window width
from previous audio-only content is restored.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34078 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f907fa59 16-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

Work in progress for storing some window position/size related settings of
the first window, and restoring them for audio content.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34075 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 123bb4d5 28-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a position tool tip to the seek slider.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33816 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1aa885ef 28-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a temporary solution to add the Audio:Length attribute to audio files,
just like SoundPlay did.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33812 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a90fe6 19-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

Solved a few problems at program exit. The window needs to lock the playback
manager and inform it that the video target, ie the view will be gone. The
Controller needs to use the SetTo() method in order to actually close down
the nodes properly in the destructor. Otherwise asynchronous threads will use
the BMediaFile and tracks after it has been deleted (until the NodeManager
destructor is executed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c6c220e9 29-Aug-2009 Fredrik Modeen <fredrik@modeen.se>

Open playlist from the playlist window hits B_REFS_RECEIVED and the drag and drop out side of playlistview hits B_SIMPLE_DATA, so adding append_index from the B_REFS_RECEIVED fixes the ticket #4332.
+ spel fix.

Stippi what do you think?

+alphabranch

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32828 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f2d247d8 10-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Ignore shortcuts if command+control are pressed at once, no longer stealing
system shortcuts. The shortcut mechanism should be reworked to use the
standard AddShortcut() way of doing, anyway for most things. This fixes bug
#4208.
* Fixed warnings.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32224 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d8ab1c4 24-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

When the display aspect values were large enough, the calculations in
MainWin::_GetUnscaledVideoSize() would result in 0 width/height. Fixes ticket
#4114.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31729 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6da40f2e 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed more bugs with re-layouting when switching clips:
* In full screen mode, make sure to relayout the video view if size and/or
aspect change. Also adjust the window size limits (for later).
* Add optional code to _ResizeWindow() to make sure the window is fully on
screen. When it is out on one side, move it back in, when it is too large,
scale and center it so all the border is visible. This code is used when
switching clips if not in full screen mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31559 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d99b6b08 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Make sure the window size limits are always up to date.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b097110b 13-Jul-2009 Ryan Leavengood <leavengood@gmail.com>

According to Stephan the bug I wrote this code for (#1307) is no longer an
issue. Since there may be valid reasons to have part of the media player window
offscreen this code could get annoying. I still think it is pretty though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31551 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ce9e6e4 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Resetting the width/height and aspect all at once in my last commit was buggy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31542 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f186fa40 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Improvements to the aspect ratio handling. The "Keep Aspect Ratio" setting
is now superfluous.
* When switching aspect ratio and the current video size is 100%, always
resize such that one side stays at 100% (which would be the height mostly)
and the other is scaled up (mostly the width).
* In _SetupWindow(), which is triggered by a new stream for example, also
check if the aspect ratio changed and resize accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a920a6e2 09-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Use media_format pixel_width/height_aspect as it was meant to be used. This
avoids rounding issues (1440x1080 -> 1920x1080 instead of 1921x1080).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31477 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8e27e39 29-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Unified the "no menu, border, controls" settings to a single "no interface"
setting and made them available in the context menu again. During my testing,
I couldn't find any weird behavior, only the window dragging should still be
a problem on slower computers when multiple mouse messages piled up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31324 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f3691df 28-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* In theory, we should support getting the video aspect from the current stream.
* Added "Force Aspect Ratio" to Video menu and context menu.
* Removed some code duplication in handling the video size messages.
* Added track selection sub-menus to the context menu, replacing the IMHO
not so important interface settings items.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07cad22e 28-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Connect the Audio/Video track selection menus with the controller. Works great.
Totally "gapless", unlike any other media player I've ever used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31301 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c60fcc87 23-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Changed the PlaylistItem interface to be hopefully more flexible. It can
probably still be improved.
* Renamed EntryRefPlaylistItem to just FilePlaylistItem.
* Moved the "move into Trash" and "restore from Trash" implementation into
FilePlaylistItem. Also added what's needed to allow Tracker to restore the
entry itself.
* Refactored everything to make Playlist use PlaylistItems instead of
entry_refs and all that entails...
* The transition to virtualize PlaylistItems is not complete yet in the
Controller, since it still uses BMediaFile there. But it's much easier to
change that now.
* Objects which keep a PlaylistItem around do correct reference counting, but
some commands could be simplified if they were using references as well. It
still should work correctly, though, if I didn't miss anything. It should also
fix theoretical situations of encountering out-of-memory while messing with
the Playlist leading to inconsistent state between Undo/Redo and then leaking
items because of that.
* Added the discussed change that MediaPlayer checks it's own supported types
before rejecting a file by super type. (untested)
* When importing playlist items, the currently playling item is better
maintained during Undo/Redo.
* Some debugging code added in MediaTrackAudioSupplier, no functional changes.
* Fixed a number of coding style issues and automatic whitespace cleanup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18b1ca6b 18-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Auto hide the mouse after 5 seconds.
* Disable the screen saver when playing in full screen mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd091096 16-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Refactor the "Remove and Put into Trash" backend a bit to allow giving it an
index and not work on the current selection only.
* Reenable the code in MainWin that implements the shortcuts to trigger this
feature during playback. Now it uses the Undo/Redo stack and profits from
existing polish.
* Add missing fPlaylist locking in MainWin at several places. Should not have
caused any realworld problems, though.
* Add Undo/Redo shortcuts to MainWin and forward to Playlist window.
* Make sure the Playlist window opens on the same workspace as the player
window. This could be seen when launching MediaPlayer on one workspace, later
moving the window and then opening the Playlist window, it would open on
the original workspace. The new behavior additionally pulls the playlist
when it's already open and you invoke the "Playlist" menu item.
* Added the beginnings of a refactoring to make the Playlist and everything
else use a PlaylistItem class, instead of entry_refs directly. This stuff is
not yet used, though, just compiles.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30776 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bae0154c 16-May-2009 Stephan Aßmus <superstippi@gmx.de>

* I didn't like so much how the "Remove and Move into Trash" feature was
implemented. It didn't reuse existing code and didn't integrate well. No
Undo/Redo except via Tracker, but not in the Playlist... some bugs as well
(Remove had same shortcut as Randomize, Didn't maintain current playback item
if last entry was removed)
* I need to reenable the main window short cut though. This is only temporary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9327db63 29-Apr-2009 Fredrik Modeen <fredrik@modeen.se>

Adds the option to delete a file from Mediaplayer and move that file to Trash
Works both from main window and PlayList window.
Button that works are B_COMMAND + [delete | d | r] button.
It can be debated what shortcut to use but I needed this function :)
Same goes for the menu i Playlist window. Yell and Ill change :)

What not works are undo and total undo in main window and total undo in Playlist
(total undo = undo files from trash as well as normal undo)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf4ef413 17-Jan-2009 Stephan Aßmus <superstippi@gmx.de>

Set resizing mode before calling BMenuBar::ResizeToPreferred(), since the
default menu bar resizing mode triggers some R5 compatibility behavior wich
we don't want in MediaPlayer. This fixes the (apparantly) last remaining
issue from #2180.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28917 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 126ce071 10-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* Cleanup with regards to file panel usage. There are two global file panels
now maintained by the application. (So that the last used folder is more
consistently remembered.)
* Added a message protocol for using the file panels from other loopers.
* Implemented playlist saving and loading for the binary (BMessage-based)
format. There were some beginnings for supporting a m3u-like text-based format
as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27955 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82368346 21-Sep-2008 Jérôme Duval <korli@users.berlios.de>

fActiveVolume should always be set, and only switch volumes if needed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ddc254c 26-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Implemented decreasing the volume of inactive player windows according to
the global settings. This is only done though if there are multiple players
open at the time. (It doesn't consider their "playing" state, though.)
* The SettingsWindow is now maintained by the MainApp, and there is only a
single instance, those settings are application wide. Also used the
"application floating" window look&feel.
* Small code cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a5f768b 26-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Implemented the "Auto start playback", "Close when done playing movie" and
"Close when done playing sound" settings.
* Removed unused member variables from Controller
* Changed Playlist::SetCurrentRef() to indicate success and prevent the
current index from getting out of range.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27208 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26e9cdb7 22-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

I shouldn't push my luck too much, so I'm commiting these WIP changes:
* Removed unmaintained makefile.
* Renamed TPreferences to SettingsMessage, which better describes the beast.
* Renamed setter functions in SettingsMessage for more convenient use.
* Added getter functions which take a default value argument that is returned
when there is no value for the given key.
* Cleanup in Settings.[h|cpp], made things simpler and more convenient. Removed
redundant saving of the settings/message, which SettingsMessage already takes
care of. Added a global instance of the application settings.
* Some cleanup in FileReadWrite and Playlist.
* Reimplemented the SettingsWindow with the new layout API, the old code is
still in place for compiling for BeOS.
* Added two more check boxen for the overlay and bilinear scaling option I
intend to add eventually.
* Refactored the rest of the code in SettingsWindow to use the new global
settings instance and also support a Revert feature. All the new controls are
only available in Haiku though.
* Enabled the Settings... menu entry in the Settings window for access to
the SettingsWindow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 62bf33df 07-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

Don't reset the window size when playing a new file if it isn't necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26286 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9282400f 06-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* The SeekSlider did not update the knob when it was resized.
* Subtile visual improvements to the SeekSlider.
* Added a PeakView for displaying the audio peaks that are produced by
the AudioProducer.
* A MessageEvent can now directly take a custom BMessage for delivery.
* The peak notification mechanism is a bit separate from the rest of the
Controller notification design, since the notification delivery should
be delayed until the audio is actually audible. I may change this
quick and dirty design though, since it is not so nice. The target
time could also be part of the message and be handled at a different
stage, but that would make it less efficient.
* Layout improvements to the playback controls.
* Code cleanup here and there, changed some license statements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6ac2ec4 05-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* The window would not reset the audio/video track to 0 on a new file if
the Controller would keep the last audio/video track index across files
(which would be nice for certain situations).
* Better error message for unsupported files, especially for the
B_MEDIA_NO_HANDLER error.
* In the Controller, try to obtain the track duration and ignore tracks that
return a bogus duration. I have some MP3 files on ZETA that are obviously
not handled correctly by the ZETA mp3 decoder. Previously, the player would
just sit there and appeared to have some other internal error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 47a197ac 09-Jun-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Run Alert/AboutBox in asynchronous mode: otherwise it freeze video
(can't tell if it was the same for audio, as mine -hda- is not supported
yet).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25894 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bed1cb4 31-May-2008 Stephan Aßmus <superstippi@gmx.de>

* The SeekSlider had the wrong follow mode. If the window was resized in such
a way that the transport group did not need to re-layout, then the seek
slider would not be at the correct position.
* Layout the transport controls with a fixed maximum width in order to prevent
spreading them too much.
* Fix "About" and "MediaPlayer" missing a space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fc56ed5 30-May-2008 Stephan Aßmus <superstippi@gmx.de>

* Moved a bunch of non-primary interface classes into a new subfolder
"interface"

* Complete reimplementation of the playback engine using Media Nodes:
- Seeking video files does not appear to lockup the playback anymore, but
works on a frame accurate level even for keyframe based streams. There is
currently a problem with certain container formats, the audio track reports
a "Device Seek Error" in certain conditions. In that case audio goes silent,
and can be restarted by going back to the beginnings of the stream.
- Video overlays are now supported.
- It would be possible to connect the output of the MediaPlayer to other
applications or dormant media nodes.

* Known regressions:
- The volume slider has currently no effect anymore.
- Switching the audio track during playback has a known race condition and
can crash the player.
- The new engine is not as "light weight" as the old one. I tagged the
previous implementation in tags/components/mediaplayer-engine-v1. It does
not seem to have any noticable effect though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25725 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 85a4868f 29-Apr-2008 Ryan Leavengood <leavengood@gmail.com>

Future proofing, make sure we get the screen this window is in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef13436f 28-Apr-2008 Ryan Leavengood <leavengood@gmail.com>

Fix for #676, an oldie (from 2 years ago): if the MediaPlayer window is moved
off the screen at all, it will be moved back on when the window is activated.

I almost think this might be a reasonable default implementation for
WindowActivated in BWindow :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25234 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 658aafcb 06-Apr-2008 François Revol <revol@free.fr>

Add recent files to the Open File menu.
Add dropped files to the roster's list of recent files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24831 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b7f76bc 01-Apr-2008 Stephan Aßmus <superstippi@gmx.de>

Applied Patch by Frederik Modeen with some changes by myself:
* Created Settings window similar to R5 MediaPlayer.
* Prepared loading and saving of settings.
* Settings menu entry is hidden for the time being, since these new settings
do not actually have any effect yet.
* Prepared loading and saving of Playlists.
* ZETA Playlists can be dropped on the Player and should load fine.
Myself:
* Cleanup in MainWindow.cpp for line width limit.

To Frederik: I removed the buttons again from the Playlist window, since they
don't do anything yet, and the features are available from the menu as well.
An icon bar would be better, IMHO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# df542f71 25-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

Prepare the MediaPlayer to survive a media_server restart, by first
making it detect the quit/start of the media_server and media_addon_server.
No action is currently taken in response to this, but the SoundOutput used
by the Controller needs to be recreated I would think.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24573 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a637e3c5 22-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

patch by Fredrik Modéen:
* add filtering of files by mimetype when adding them to the playlist
* some changes by myself (added Axel's suggestion to guess the mimetype
in order to support other filesystems than BFS)
Fredrik -> please have a look at our coding guidelines, also you have weird
whitespaces in your patches... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 540fe7ae 17-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

patch by Fredrik Modéen with changes by myself
* toggle the "marked" state of the settings menu items correctly
* implement muting/unmuting the volume
* implement volume up/down triggered by keyboard events
* forward the skip next/previous events to the controller
(various kinds of keyboard navigation or mouse wheel)
* establish the notification link for volume and muted changes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a72b9fe 05-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* re-enabled the InfoWin


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21335 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc2fbed2 03-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* implemented infrastructure for undo/redo of playlist operations,
everything regarding playlist modification is now tunneled through
the playlist window


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21312 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09464bc9 03-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* extraced PlaylistListView into it's own files
* lots of changes, besically these make the Playlist window usable
- drag sorting works (hold shift to copy instead of move items)
- removing items with the delete key works
- dragging files/folders from Tracker works (hold shift to insert
them in the existing playlist, othewise the new files replace
the playlist)
* some refactoring and bug fixes in previously unused functionality
* Playlist can now be locked (needed to be), and is in ControllerView,
MainWin and PlaylistListView


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21305 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d329f1d6 02-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* cleanup in MainWin, better grouping of functions in .h and
moved functions in .cpp accordingly, prepended private methods with _
* disabled InfoWin, because it accessed members of MainWin directly,
will be reimplemented with notification mechanism
* fixed the bug with the multiple error alerts for an unsupported file,
the window should use the current file index from the notification
itself


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21300 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fa5e5fe 29-May-2007 Stephan Aßmus <superstippi@gmx.de>

* added notification support to Playlist and Controller
* added AbstractLOAdapter by Ingo Weinhold which makes
notifications asynchronous
* removed "Player" interface/concept, replaced it by
the notification mechanism (window loads new file
when "current" ref index changes in Playlist)
* removed some cross classes dependencies
* the wind buttons are not displayed anymore for now
* lots of changes to the Controller
- the decoder/player threads are kept running for the
entire lifetime of the Controller object (in essence, makes
it possible to playback seamless)
- abstracted BMediaTrack usage into "Video-" and "AudioSupplier"
objects (the BMediaTrack pointers are only still there, because
I have not gotten around to fix the messy/hacky InfoWindow)
- reaching the end of the stream will trigger a notification,
so that the next file from the playlist is played
- fSoundOutput is managed by the Controller
- tried to make seeking seem more controlled (slider doesn't
jump back to previous position)
- playback position is correctly updated in GUI
- volume is maintained independend of SoundOutput so
that it can be transfered from one to the next output
- performance time is maintained correctly (?) even if
no audio stream is present
* work in progress Playlist window (drag sorting does not work yet!)
* rearranged menus a bit
* rearranged overlay code in the VideoView, but it cannot work
like it is currently designed, since the buffers need to be
switched all at once, which the video decoding thread
is not doing yet
* dragging files into the main window with shift held down
appends to the existing playlist
* dropping folders adds files recursively
* pressing space toggles playback (instead of changing some
settings of the GUI)
* fixed some more minor issues or unimplemented stuff in the UI


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21276 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66eba86f 16-May-2007 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Jonas Sundstrom: fixed the usage of B_UTF8_ELLIPSIS hopefully
everywhere in the tree.
* Added the ellipsis to "About Haiku" in Deskbar as well.
* Minor cleanup of Deskbar's StatusView.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c91fb637 01-Mar-2007 François Revol <revol@free.fr>

Add a File Info Window to MediaPlayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20293 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 453f642e 22-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Rewrote audio decoding to provide timing information
that is used to sync with video.
Separated audio decoding and playing into two threads,
the same applies to video decoding and playback.
This was inspired from code written by Stephan.
Added video decoding and display, added play/pause/stop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17533 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f0bbc97 08-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

implemented seeking and position update


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17378 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aadc5f57 24-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

added playlist support


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c98821ac 24-Apr-2006 Stephan Aßmus <superstippi@gmx.de>

* added GUI classes for the transport control panel implementation
* as noted by the headers, these originate from Be Sample Code or
code that was written by myself alone for VLC (they have been
updated in the meantime though)
* seek slider is missing yet as well playback position info view
(could be taken from VLC as well, I still have the implementation
that contains only my own code)
* fixed application quitting when only one of multiple player
windows is closed (not it quits when the last player is closed
or MediaPlayer->Quit is selected from the menu)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17222 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91b9ff3f 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

cleanup, moved track selection into settings


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 067423e6 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

implemented even more resizing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 399b0e8a 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

cleaned up resizing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17215 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99cd5eeb 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

added some resizing support


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1d8d7d6 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

implemented some file handling related functionality


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04a91b97 05-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Imported source code from DVB TV application


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17021 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 61a59e87d84e0c9d463797ec961005d5cf2ac7f8 09-Apr-2015 Dario Casalinuovo <b.vitruvio@gmail.com>

MediaPlayer: add new media services notification service


# 97f5ebc1ae6bfb6396199eb78d89bb35f607ba72 29-Mar-2015 Humdinger <humdingerb@gmail.com>

Sentence casing...


# 36900dc86116d7b5774c913708be00fd5ce9d02c 26-Jan-2015 Adrien Destugues <pulkomandy@gmail.com>

MediaPlayer: missing B_TRANSLATE on "none" menu label

Patch by Diver, thanks!


# b02efcef882446d1eaaf83d275f901c1ceae63e2 19-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

MediaPlayer: reintroduce "stop" shortcut.

It turns out there are some people actually using it, mainly when
playing music. If you interrupt music, you often want to start listeing
from the start of the track again (unlike for video), so having a stop
button makes sense in that case.


# 6f08ef0ac2811266a9b689c9d416200f39d75e12 18-Nov-2014 Adrien Destugues <pulkomandy@gmail.com>

MediaPlayer: some shortcuts tweaks

* F: toggle fullscreen (like tab)
* V: removed. Stopping the replay would lose the current position, and
we don't want non-undoable lossy operation on single keystrokes
* X: toggles play/pause instead of forcing play (like space)
* Alt+Shift+0/1/2/3 changes the aspecdt ratio to "raw", "default",
"4/3", "16/9".

Fixes remaining parts of #2495.


# 991dadd6324f7b7a68e94743a39ebae789823228 16-Jun-2014 Humdinger <humdingerb@gmail.com>

Make sure there's a space in front of B_UTF8_ELLIPSIS.

As PulkoMandy said in hrev47388: C++11 safe and reads better.


# 364da0f98665bb93d7dbc3595602816e88d28808 21-Dec-2013 Axel Dörfler <axeld@pinc-software.de>

MediaPlayer: fixed broken subtitle menu activation.

* Since ffd71d3d19742cef58981cd7cba8e22d79320128 (hrev45979) you needed
at least two subtitle tracks to have the menu enabled.


# bab9e168ab414e7b125b50528d30e577c906b376 24-Nov-2013 Michael Lotz <mmlr@mlotz.ch>

MediaPlayer: Add Duration, Position and Seek properties.

These allow getting the duration of the currently playing item and the
current playing position as well as setting the absolute position and
seeking by relative time via scripting.


# 2937bbe3bca5da7b7fbdbab6262b72babb861083 24-Nov-2013 Michael Lotz <mmlr@mlotz.ch>

MediaPlayer: Move winding code into its own function.


# ae96ed6dbe5a87fc378d5a104927c75abc384701 31-Aug-2013 John Scipione <jscipione@gmail.com>

Use a stop alert when you can't open the file.

This is a fatal error that the user has no way to recover from
so using the info alert is not appropriate here.

Also rename the ret variable to result and omit extraneous braces.


# ffd71d3d19742cef58981cd7cba8e22d79320128 19-Aug-2013 Jessica Hamilton <jessica.l.hamilton@gmail.com>

MediaPlayer: revert hrev38440

With #6610 fixed, it is now possible to open disabled menus in a
menubar, so the workaround introduced in hrev33840 is no longer
needed.

Signed-off-by: John Scipione <jscipione@gmail.com>


# 843a122fd9a17bfde0f01db2c5660c33524bf40c 04-May-2013 Jérôme Duval <jerome.duval@gmail.com>

MediaPlayer: some 64 bit fixes


# aed35104852941f0f6f3d1dcc5338b5f337d0a3c 05-Aug-2012 Humdinger <humdingerb@gmail.com>

Close alerts with ESCAPE key.

Added SetFlags(B_CLOSE_ON_ESCAPE) or SetShortcut(index, B_ESCAPE) to BAlerts
depending if the result gets used later in the code, or if it's a one-button
BAlert.


# a7bee8e40c60763ed8550b6918d99abcaa38efdb 18-May-2012 Humdinger <humdingerb@gmail.com>

Corrected typo correction... thanks Starseed. /me needs glasses.


# 268816a3cecb914207390291e18720cf757f7368 18-May-2012 Humdinger <humdingerb@gmail.com>

Corrected typo. Fixes #8557.


# 546208a53940a26c6379c48a7854ade1a8250fc5 16-Apr-2012 Oliver Tappe <zooey@hirschkaefer.de>

More catalog-related cleanup.

* rename B_TRANSLATE_CONTEXT to B_TRANSLATION_CONTEXT and
B_TRANSLATE_WITH_CONTEXT to B_TRANSLATE_CONTEXT, squashing a TODO
* adjust all uses of both macros in Haiku's source tree
* use correct header guard for collecting/Catalog.h

The renamed macros require adjustments to all external applications
using catalogs.


# a16d549ade1ccba9b9d59bc5aa9af739310e1aba 04-Mar-2012 Michael Lotz <mmlr@mlotz.ch>

Add scripting property for toggling fullscreen.


# 7532547c0628ffd5021eccf2a3c293cedef158d2 10-Jan-2012 Axel Dörfler <axeld@pinc-software.de>

Also hide the full screen controls when the mouse is over them.

* We just wait a little longer in this case, like 4.5s.
* Changed the code to only send the messages when needed, before they were
being sent every 1.5s.
* However, this is untested as of yet, as the layout changes didn't allow me
to run the MediaPlayer on my system. Will do so in a minute on another one.


# a5a013ca40aa991d809cffb85a7367e67132ea0c 07-Jan-2012 Philippe Saint-Pierre <stpere@gmail.com>

MediaPlayer: Fix movement of items in playlist

In Playlist, whenever a move of items occured causing the
currently playing song to change its position, so :
1. Importing files (D&D for example) before its position
2. Removings files before it
3. Moving files before it

was causing the currently playing song to restart because
it was thinking a new entry was asked (it had a different
index number suddently).

Also adjusted the behaviour when you delete the currently
playing track.

Should fix ticket #6689.


# a178983df66aad5957fbc82fb596c74fa4d02e45 09-Sep-2011 Axel Dörfler <axeld@pinc-software.de>

Cleanup while I was searching for a bug that ended up being in the app_server;
the decorators now return non-sense as their frame, thank you Clemens!
* Got rid of Settings::CurrentSettings() - the get/store pair wasn't really
thread-safe anyway, as it always updated all fields, so settings could get
lost easily. The mechanism is still being used in the settings window, though.
* Introduced some getters/setters for the settings that work on the message
directly which simplifies some code.
* Minor style cleanups.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42732 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f74d4e95d97054a7eeec6567233c9eb7ec4f23b2 30-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed the 150ms delay before showing the window - the window is now always
opened only once the stream is ready. This fixes the random "open in audio
position" of video files.
* Removed a call to _ShowIfNeeded() in _RefsReceived(); it doesn't seem to have
any purpose.
* Center new video windows on screen.
* Call _ShowIfNeeded() after the window has been positioned and resized in
_SetupWindow(). This fixes having the window jump around on screen after
launch.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0325a782f42663c10873e587b72a9e3eceec83e7 30-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Removed the superfluous wait time until the context menu pops up. This fixes
the video hanging everytime you open the context menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42351 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c54e3124f6e3b6bffa757ce75188cbe1d8b87c63 30-Jun-2011 Axel Dörfler <axeld@pinc-software.de>

* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@42350 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e28afdf1ea3cb78c0fa888e50ecf1c494ff636cb 26-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Changes to the MediaPlayer's playlist window's menu options Remove, Remove all, Move to Trash.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41122 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 11c7ff531a01b64773d8a8f0e02c1c7c9f27ca29 25-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Removing most About windows and menu items as discussed here
http://www.freelists.org/post/haiku-commits/r40968-in-haikutrunksrcapps-activitymonitor-bootmanager-charactermap-codycam-deskbar,3
Leaving them for now in replicants, and in Terminal, according to (my interpretation of) the instructions here
http://dev.haiku-os.org/browser/haiku/trunk/src/apps/terminal/README.GPL_to_OBOS#L70
Some sporadic cleanup.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41108 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 560ff4478d5c85455ea3e5ed5e392ef93132d545 25-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Use resource definition files instead of DoCatalogs rule. Rename B_TRANSLATE_APP_NAME and related macros to the more generic B_TRANSLATE_SYSTEM_NAME, to also fits add-ons, folders, etc, and make 'System name' its standard context. Change CodyCam and PoorMan's app signatures to match the overall x-vnd.Haiku-App pattern. Some clean-up. Make SlideShowSaver build again.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@41103 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b97c51490af2a4e3a20d6baf7d31e59b63924e99 15-Mar-2011 Jonas Sundström <jonas@kirilla.com>

Making use of B_TRANSLATE_APP_NAME, BAboutMenuItem, BAboutWindow. Clean-up. Removal of some ellipsis. ('About Haiku' in Deskbar.)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40968 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2ee8f3f65fdeb106272bd3a195898778c86abf27 25-Feb-2011 Siarzhuk Zharski <zharik@gmx.li>

Bunch of localization fixes pointed out by Diver. Thanks!

Notes:
- FileTypes: The "Same as" button label separated to two entities in dependency of
context: "Same Type as ..." and "Same Application as ...";
- Tracker: The sentences like "If you do %action [...]. To do %action [...]"
now use separately translated verbs for so called
"ifYouDoAction" and "toDoAction";
- NetworkStatus: NetworkStatusView _ShowConfiguration is fixed back after previous
attempt to localize it in r37337: useless code bloating purged out,
broken quasi-header "ifaceName information:" pulled back from Hell;
- StyledEdit: Menu item "Can't undo" had different casing in some situation. Looks
like HTA cannot detect such situation, so right lines "Can't undo"
were masked by wrong one "Can't Undo" and this line stay untranslated
for most time.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8c95e40e185c1303713ed27b477da366577ccab2 28-Jan-2011 Joachim Seemer <humdingerb@googlemail.com>

* Changed full screen shortcut to B_ENTER like in Terminal, ShowImage, Web+.
* Put "Always on top" into context menu.
* Rearranged items in context menu to have interface related options together.
* Disable "No interface" in full screen mode context menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40309 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 238df8fb8531e56c1cef834cebe0ad42cb5ed81d 29-Dec-2010 Adrien Destugues <pulkomandy@pulkomandy.ath.cx>

Patch by Dziadek as part of GCI : localize MediaPlayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@40021 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d1d8fda63745350804d76b4ed160732086fa9655 19-Oct-2010 Oliver Tappe <zooey@hirschkaefer.de>

Next step of Locale Kit refactoring:
* BLocale now keeps language and country completely separate and
mixes the formatting conventions into the current language's locale
when formatting dates and times (needs to be done for number- and
currency-formatting, too, since the digits may not be in the
preferred language)
* optimized fetching of the flag icons such that they are all loaded
in one go (by the locale roster) - this alone speeds up the Locale
preflet considerably
* worked on fixing the language confusion in the Locale preflet
* fixed a couple of bugs in the Locale preflet that would lead to
illegal characters being displayed in the date-subpart menus


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@39013 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bf8d24715e33af53365a6e8f10f740dd7b72c03 08-Oct-2010 Axel Dörfler <axeld@pinc-software.de>

* Do not add documents to the recent list in _UpdatePlaylistItemFile(), but do
so when the items are added to the playlist. This has the added advantage of
being able to easily reselect sub-folders (an album for example).
* Enabled navigating folders in the recent item list.
* Added Playlist::IsEmpty() method.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38897 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 954d79e24415c797708727e4c446d77b54dbf7c8 29-Sep-2010 Axel Dörfler <axeld@pinc-software.de>

* Added first working "display_as" type "duration".
* Changed Media:Length to int64, and use the new duration view in Tracker.
* Renamed the pretty name for video's Media:Length to "Runtime" (that's how it's
called in IMDB, and I was never really fond of "Playing Time").
* FileTypes AttributeWindow needed to check the display-as types, as well as
if the contents are acceptable when opening, too.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38856 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e65a6eb2e02c3b50ee594733f16b313562eaaf9c 28-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Give some options for subtitle placement and size.
* Optimize subtitle drawing when subtitles are to be
displayed at screen bottom versus video bottom, and
the subtitle frame does not intersect the video. In
that case we only need to draw it when it changes
(or is to be removed). Fixed the dead-lock problem
in a nicer way.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38841 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8ccdf52032feea5e7853631dee57cf7f6302c5d 27-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Added basic support for SRT subtitle files. It only works
if the SRT file is placed alongside the current playlist
item under the same name (sans extension). The name of the
language is taken from the file which needs to be separated
by a dot (should be improved).
* Instead of the black outline, subtitles have a nice drop
shadow now, which is easier on the eyes somehow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38827 a95241bf-73f2-0310-859d-f6bbb57e9c96


# fd5c34224cb3b474cd9dddddccd5225978d5e68c 21-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Show the window when opening files, since that shows the nice
"opening file bla" message and makes starting MediaPlayer feel
even more snappy.
* Show the window at the no-video location when opening files.
* Move the "Drop files to play" message handling into MainWin
and make sure it shows after failed attempts to open a file
when the playlist is still empty.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38764 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ebd866299d45ed59d8576e1a9634f924cc07aa6e 21-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Added new Playlist notification ImportFailed().
The PlaylistListView will trigger it when the import command
failed (happens for example when none of the files are
media files).
* Moved displaying the according alert from the import fommand
into the MainWindow. Show the window if necessary. This fixes
MediaPlayer just idling in the Deskbar without any window
in this case, since the MainWindow is shown after the first
call to _SetupWindow() since some time. But _SetupWindow() is
not invoked when no file could be opened.
* Removed some meanwhile useless debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38757 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 3a8771cf17d86244a6e8ede265168a1f073bb7ef 18-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Use duration_to_string() to write better playing time
attribute strings (i.e. with separate hour).
* Write video bitrate attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38718 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5bacae95fe04b9d957fad95ce76b1e3f8a63409e 17-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Make use of the new meta-data API and display the
audio track menu item label as the language of the
track.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38688 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a110536aac5beae90fa82613a6d00c31e7ef5c62 15-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

When the video is paused, use the left/right cursor keys
for single frame stepping instead of winding. One frame without
shift-modifier, five frames with shift held down.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38671 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 341ea11eb304738c351755be9d15ab232e4a037a 12-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Implemented enlarging controls in full-screen mode, it's optional
and the setting defaults to "on".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38610 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4d6c88624e8102ebfad835e2419893c6222df2fa 09-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* _CurrentVideoSizeInPercent() returned wrong values,
but it didn't result in wrong behavior before.
Implemented more keyboard actions from ticket #2495:
* +/- zoom the video now (by +/- 10% of current scale).
* ZXCVB (raw keys hardcoded, i.e. the keys along the bottom
of the keyboard) act as playback buttons: skip previous (Z),
play (X), pause (C), stop (V), skip next (B).
* Renamed "No interface" menu item to "Hide interface" and
changed the shortcut to Cmd-H. This item is only available
with video streams, though.
* 'M' will mute/unmute the audio.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38599 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1c1de1a5cdb7ff94bdccb2686f406f5e8b7d9d30 10-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

The Media:Rating attribute can now be controlled via
the new Attributes menu. Added a TODO for how this should
eventually work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38598 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7fee522dd087fca367f2a68df66a15b19d8c198f 10-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Moved the Settings menu items into the MediaPlayer menu.
* Removed the Settings menu in favor of a new Attributes
menu (does not offer anything yet).
* The context menu was showing two separator items by mistake
(after the About item was removed from it).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38597 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 811aedf9c24d12f9d79e624a13e643fd78b51a5e 10-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

New player windows returned from NewWindow() are not
automatically shown anymore since the playlist restore
changes. Unbreak opening a new player, let the application
thread open it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38596 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0beac2ff048390fecd8a08a99e7dd2cd8a9724b4 09-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

PlaybackManager:
* Make sure that the messages which trigger a performance
time update a) don't pever pile up and b) that we don't
still receive an event after reinitialization (would
not have been a problem, at one point I thought it was).
* Don't compile in support for changing the playback speed
for the moment.
* Better support for notifying the reaching of a seek frame,
In _UpdateStates(), the wrong state (most often out of bounds)
was checked to be a seek request state. Check if a seek request
was reached in all other cases where states are removed.

Controller:
* Simple but important simplification of the problem that
seeked frames are reached asynchronously and with a latency:
In TimePosition() simply report the seeked frame, if there
are still pending seek requests. This allows a consistent
view from the outside, i.e. after calling SetTimePosition(),
TimePosition() will not return something different.
* Use a more robust way to track pending seek requests. A
new request may have been issued while not having reached
the previous one yet.
* Implement a notification for reaching the seek frame, but
I didn't need it after all, may come in handy later...

MainWin:
* Change the cursor left/right keys to support winding.
Cursor up/down change the volume, Cmd-up/down skips
to the previous/next playlist item, left/right do the
winding now, as requested in ticket #2495.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5f8afb9447be154c7b58283f910dc356a121070 07-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

First implementation at the "loop by default" settings.
To make it better, there should be a looping mode per
window, and the settings should serve only as defaults.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38570 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 45f82fe6d0f7163de2189b1ea2ba7ad7808d8a93 06-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Coding style fixes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38539 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 8ae6dbd9dee7847e2139b1e0b1338a21294ee789 02-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Rename a couple Audio:* attributes to Media:*, as discussed
some time ago on the mailing list. This change will not exactly
break existing audio tools, but once those tools write the old
attributes, the user will not see the expected changes when he
is displaying the new attributes in Tracker, and the old
attributes will of coerse appear alongside the new ones in
the Attribute menu. In the long run, it makes things cleaner,
though.
* Make MediaPlayer write the new duration attribute, and also for
video clips.
* Register opened playlist items when they are files with the
system, so not only files opened via drag and drop or Tracker
will appear in MediaPlayers "Open File" menu.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38523 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 36f28785c6455110c2f1ba06e5ed4e1ddf8da894 03-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Don't clutter the context menu with a mostly never
used About... menu item.
* Setup the About menu item in the file menu such
that it sends its message to the be_app, we no
longer have to forward it then.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38522 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ee891c8828e7517fb80a528ed2ac2e51a96e32b6 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

Do not resize the VideoView to the scaled size
of the video anymore, but tell the VideoView
the video frame size. So the outside regions of
the video are also painted by the VideoView. Not
tested with overlays, but should work. The side
effect is that the controls appear along the bottom
of the screen in full-screen mode. The controls
may need to be over the video, so they cannot be
attached to the parent of the VideoView (this was
already the case).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38492 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 80a9df25028391f54d026007bf633fe99e7529e1 01-Sep-2010 Stephan Aßmus <superstippi@gmx.de>

* Show the controls in full-screen mode when the mouse moves.
* Propagate the current audio channel count to the controls.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7e3a856975ef9846cb94982d3dd584d31a553b61 30-Aug-2010 Stephan Aßmus <superstippi@gmx.de>

Don't disable the audio/video track menus anymore when
there is only one track. I introduced this at diver's request,
but I think it's irritating. Also when the audio tracks will
be named after their language, it would be nice to know it,
or even perhaps other properties, like channel count.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38440 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a44427401662192f9e1ab1a1c5cf4248bc10aeff 21-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Fixed regression I introduced in r36391. Thanks for proof-reading, Stippi!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36396 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d75c9c3da5ad2e2de11c82dc82a54920c4186d0f 21-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36391 a95241bf-73f2-0310-859d-f6bbb57e9c96


# be982b9cd5a8704cc80c4b28fba3a7a76aae3616 13-Apr-2010 Axel Dörfler <axeld@pinc-software.de>

* Only restore the previous playing position when there is a file that is
currently playing; this fixes the the problem I mentioned in a comment in
bug #3855.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@36224 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 14a66ce5f413ae3efc23222dc34b3b4853081771 24-Mar-2010 Stephan Aßmus <superstippi@gmx.de>

Disable either track menu when there is just one or no track. Fixes #5622.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35945 a95241bf-73f2-0310-859d-f6bbb57e9c96


# eeeef45c692d3497aacb7116cbebd939b672d4b8 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

* Implemented a "refs catcher" that will catch refs received through a
B_REFS_RECEIVED within a short amount of time (0.5 seconds right now) and
send them to the last window to be appended to the playlist. This allows to
select multiple media files in Tracker and get them inside a playlist of a
single window instead of spawning many individual ones (like when filtering
for an album, selecting all tracks and opening them by hitting enter).
* Introduce special append index values APPEND_INDEX_REPLACE_PLAYLIST (-1, does
the same as before) and APPEND_INDEX_APPEND_LAST. The latter is used when
appending through a RefsReceived() call and ensures that the index is
evaluated at the actual insertion time (in ImportPLItemsCommand::Perform())
as by the time this function is called the playlist count may have changed
already due to multiple RefsReceived() invokations, which would then mess up
the order. This makes the above item work as expected.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35352 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 382a4b129a8937a2a293e595870eca4fffc5c99a 30-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Add some locking to accesing PlaylistItems in these two cases as suggested by
Stephan.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35348 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 96cddcb7110e154028023e6b735184c222a12b35 26-Jan-2010 Jérôme Duval <korli@users.berlios.de>

* avoids crashing when fPlayList is already gone on quitting.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35307 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cef3da793a9381d3e18f19bff11d7495be149714 26-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Remove leftover from lazy copy&paste action.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35303 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 63bcd0d0c3280f02be7f8d56de9e8ce612c66969 26-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Add "URI" property that returns the URI of the currently playing item.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c5d6e9b06e808c440e867b529ac1e08391d9a3f7 25-Jan-2010 Michael Lotz <mmlr@mlotz.ch>

Add some scripting to the MediaPlayer so it can be remote controlled.
Example usage to skip one track forward: hey MediaPlayer Do Next of Window 0


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35294 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 312ca935ab5d8265301afefca0f3b78d64a92369 23-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

* Refactored storing the playlist archive in the quit message.
* Added looping all windows on quit and store the current playlist if
applicable.

Fixes #5061.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35253 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7974d3dcf39ce78e5885b481eee12e561ad6e096 13-Jan-2010 Stephan Aßmus <superstippi@gmx.de>

Patch by Humdinger:
Updated Haiku apps to use sentence-case. What a huge undertaking...
The files where I had to apply the patch manually (for mysterious
reasons) have also gotten a whitespace cleanup. I've proof-read
everything so hopefully there should be no problems.

This should be the final part of #5169.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@35049 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 54ca879739ca49ca628ad6db379d3485cb018d99 20-Nov-2009 Axel Dörfler <axeld@pinc-software.de>

* Also write the bitrate as attribute.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34157 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e663610e84ed96e246aa7bb6d416bd51c1166447 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Made opening playlist items asynchronous (in the Controller thread).
* Resolved TODO: Use the existing "FileChanged" notification in the main
window to adopt the UI to the currently playing item.
* When opening a file takes some time, the window is now free to start hidden
and setup a message runner to unhide it after 150 msecs.
* When launching MediaPlayer with files, the 150 msecs delay is used to
start the window hidden and pop up right at the correct location for audio.
If opening the first audio file takes less than 150 msecs, the window will
already show as soon as possible.
* While opening a file in the Controller, the window will say so in the
disabled seek slider instead of showing the message "Drop media files here.".


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34132 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 25fcb499b439f335a325e0ec3055d312adcf20f1 19-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

Since the window now starts hidden for a brief moment, calling IsHidden() on
the views in the FrameResized() hook which does the layout had some
unanticipated results. We need to know relative to the views themselves. This
fixes the video view being visible despite audio-only content.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34129 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e337e55fdd21d454353f148ea7ca6d3f3c95161c 18-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Fixed some regressions I introduced. The video is now correctly layouted
again. Bute this commit seems to make the old bug that some parts of the GUI
are black much more likely. Will look into it tomorrow.
* The calculations to move the window wholy into the screen frame were buggy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34120 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ab18a502299fa5a8d32768b07814836ef365380b 16-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

* Moved the about alert handling into the application
* Simplified the handling of the first window and removed FirstWindow(),
we can tell by fPlayerCount.
* Both the above would fix a crash when requesting the about alert with the
first window already gone. Respectively another player instance opening
if fFirstWindow was reset to NULL after some recent revision.
* Implemented restoring the current playlist, index and position in the file.
* Devised a more robust way to solve asynchronous seeking. The Controller is
now notified that a seek request has been handled with a dedicated hook.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34079 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a7463857a3784f0435f133ae01e08fd0d670d98 16-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

Window size handling is now a bit more robust (all this affects audio only
and empty windows only):
* New windows use the width from the window that was last resized by the user.
* The first window uses the stored window position and size.
* When switching from video content to audio content, the last window width
from previous audio-only content is restored.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34078 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f907fa59c315a272572712723574066be3a77513 16-Nov-2009 Stephan Aßmus <superstippi@gmx.de>

Work in progress for storing some window position/size related settings of
the first window, and restoring them for audio content.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@34075 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 123bb4d5fd4a1159c0beb21c936a88205cf42326 28-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a position tool tip to the seek slider.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33816 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1aa885efee4a53ef1fcf3db028d70b009fab78fd 28-Oct-2009 Axel Dörfler <axeld@pinc-software.de>

* Added a temporary solution to add the Audio:Length attribute to audio files,
just like SoundPlay did.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33812 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 52a90fe6bef19f3af7fd089d1d819e4fa2fa1260 19-Oct-2009 Stephan Aßmus <superstippi@gmx.de>

Solved a few problems at program exit. The window needs to lock the playback
manager and inform it that the video target, ie the view will be gone. The
Controller needs to use the SetTo() method in order to actually close down
the nodes properly in the destructor. Otherwise asynchronous threads will use
the BMediaFile and tracks after it has been deleted (until the NodeManager
destructor is executed).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c6c220e98f77e987468f0dafcb5fd6a72dcb3bfb 29-Aug-2009 Fredrik Modeen <fredrik@modeen.se>

Open playlist from the playlist window hits B_REFS_RECEIVED and the drag and drop out side of playlistview hits B_SIMPLE_DATA, so adding append_index from the B_REFS_RECEIVED fixes the ticket #4332.
+ spel fix.

Stippi what do you think?

+alphabranch

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32828 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f2d247d81b9a5f1b828c0d4ed319f5df6c8d22eb 10-Aug-2009 Axel Dörfler <axeld@pinc-software.de>

* Ignore shortcuts if command+control are pressed at once, no longer stealing
system shortcuts. The shortcut mechanism should be reworked to use the
standard AddShortcut() way of doing, anyway for most things. This fixes bug
#4208.
* Fixed warnings.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@32224 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0d8ab1c4c18bcad83bdf2e5a325c9cc4a2942571 24-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

When the display aspect values were large enough, the calculations in
MainWin::_GetUnscaledVideoSize() would result in 0 width/height. Fixes ticket
#4114.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31729 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 6da40f2e247227ce72833cc1b5d3b5c7708e9e49 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Fixed more bugs with re-layouting when switching clips:
* In full screen mode, make sure to relayout the video view if size and/or
aspect change. Also adjust the window size limits (for later).
* Add optional code to _ResizeWindow() to make sure the window is fully on
screen. When it is out on one side, move it back in, when it is too large,
scale and center it so all the border is visible. This code is used when
switching clips if not in full screen mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31559 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d99b6b083f58261a9baaf522a72b886857d5b8a9 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Make sure the window size limits are always up to date.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31558 a95241bf-73f2-0310-859d-f6bbb57e9c96


# b097110bfb8e11d528efaea38e98ab02ed35705e 13-Jul-2009 Ryan Leavengood <leavengood@gmail.com>

According to Stephan the bug I wrote this code for (#1307) is no longer an
issue. Since there may be valid reasons to have part of the media player window
offscreen this code could get annoying. I still think it is pretty though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31551 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9ce9e6e45864bc745a35b1b6ea462ab1e8a18f6d 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Resetting the width/height and aspect all at once in my last commit was buggy.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31542 a95241bf-73f2-0310-859d-f6bbb57e9c96


# f186fa405cf7dc3a3f702612ac5d4074c26e2571 13-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

* Improvements to the aspect ratio handling. The "Keep Aspect Ratio" setting
is now superfluous.
* When switching aspect ratio and the current video size is 100%, always
resize such that one side stays at 100% (which would be the height mostly)
and the other is scaled up (mostly the width).
* In _SetupWindow(), which is triggered by a new stream for example, also
check if the aspect ratio changed and resize accordingly.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31541 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a920a6e2a0be1fa0d4f199c03188bb37956e28b2 09-Jul-2009 Stephan Aßmus <superstippi@gmx.de>

Use media_format pixel_width/height_aspect as it was meant to be used. This
avoids rounding issues (1440x1080 -> 1920x1080 instead of 1921x1080).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31477 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c8e27e390cc06dc656e6fab033c4cb3f93b9ad62 29-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Unified the "no menu, border, controls" settings to a single "no interface"
setting and made them available in the context menu again. During my testing,
I couldn't find any weird behavior, only the window dragging should still be
a problem on slower computers when multiple mouse messages piled up.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31324 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1f3691df0fa0861206a72c7b3b9967cea8097692 28-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

* In theory, we should support getting the video aspect from the current stream.
* Added "Force Aspect Ratio" to Video menu and context menu.
* Removed some code duplication in handling the video size messages.
* Added track selection sub-menus to the context menu, replacing the IMHO
not so important interface settings items.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31302 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 07cad22ee7fdb193b5d5c744ca0711217d901300 28-Jun-2009 Stephan Aßmus <superstippi@gmx.de>

Connect the Audio/Video track selection menus with the controller. Works great.
Totally "gapless", unlike any other media player I've ever used.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@31301 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c60fcc87e04b0af21ed9f01581b23d1f714a366f 23-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Changed the PlaylistItem interface to be hopefully more flexible. It can
probably still be improved.
* Renamed EntryRefPlaylistItem to just FilePlaylistItem.
* Moved the "move into Trash" and "restore from Trash" implementation into
FilePlaylistItem. Also added what's needed to allow Tracker to restore the
entry itself.
* Refactored everything to make Playlist use PlaylistItems instead of
entry_refs and all that entails...
* The transition to virtualize PlaylistItems is not complete yet in the
Controller, since it still uses BMediaFile there. But it's much easier to
change that now.
* Objects which keep a PlaylistItem around do correct reference counting, but
some commands could be simplified if they were using references as well. It
still should work correctly, though, if I didn't miss anything. It should also
fix theoretical situations of encountering out-of-memory while messing with
the Playlist leading to inconsistent state between Undo/Redo and then leaking
items because of that.
* Added the discussed change that MediaPlayer checks it's own supported types
before rejecting a file by super type. (untested)
* When importing playlist items, the currently playling item is better
maintained during Undo/Redo.
* Some debugging code added in MediaTrackAudioSupplier, no functional changes.
* Fixed a number of coding style issues and automatic whitespace cleanup.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30834 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 18b1ca6bbed4162b65def00ab29d1d3009e88577 18-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Auto hide the mouse after 5 seconds.
* Disable the screen saver when playing in full screen mode.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30797 a95241bf-73f2-0310-859d-f6bbb57e9c96


# dd09109647c709561a966752f1c2346f4f5a0e20 16-May-2009 Stephan Aßmus <superstippi@gmx.de>

* Refactor the "Remove and Put into Trash" backend a bit to allow giving it an
index and not work on the current selection only.
* Reenable the code in MainWin that implements the shortcuts to trigger this
feature during playback. Now it uses the Undo/Redo stack and profits from
existing polish.
* Add missing fPlaylist locking in MainWin at several places. Should not have
caused any realworld problems, though.
* Add Undo/Redo shortcuts to MainWin and forward to Playlist window.
* Make sure the Playlist window opens on the same workspace as the player
window. This could be seen when launching MediaPlayer on one workspace, later
moving the window and then opening the Playlist window, it would open on
the original workspace. The new behavior additionally pulls the playlist
when it's already open and you invoke the "Playlist" menu item.
* Added the beginnings of a refactoring to make the Playlist and everything
else use a PlaylistItem class, instead of entry_refs directly. This stuff is
not yet used, though, just compiles.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30776 a95241bf-73f2-0310-859d-f6bbb57e9c96


# bae0154ca35cc1f8187cf9d09b63e0b08a41ad4f 16-May-2009 Stephan Aßmus <superstippi@gmx.de>

* I didn't like so much how the "Remove and Move into Trash" feature was
implemented. It didn't reuse existing code and didn't integrate well. No
Undo/Redo except via Tracker, but not in the Playlist... some bugs as well
(Remove had same shortcut as Randomize, Didn't maintain current playback item
if last entry was removed)
* I need to reenable the main window short cut though. This is only temporary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30768 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9327db63a4836bcc1bd1bad60c5d1c79aa54212d 29-Apr-2009 Fredrik Modeen <fredrik@modeen.se>

Adds the option to delete a file from Mediaplayer and move that file to Trash
Works both from main window and PlayList window.
Button that works are B_COMMAND + [delete | d | r] button.
It can be debated what shortcut to use but I needed this function :)
Same goes for the menu i Playlist window. Yell and Ill change :)

What not works are undo and total undo in main window and total undo in Playlist
(total undo = undo files from trash as well as normal undo)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@30490 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cf4ef413b13d685643c2f4c8da9409c4b19cf8c0 17-Jan-2009 Stephan Aßmus <superstippi@gmx.de>

Set resizing mode before calling BMenuBar::ResizeToPreferred(), since the
default menu bar resizing mode triggers some R5 compatibility behavior wich
we don't want in MediaPlayer. This fixes the (apparantly) last remaining
issue from #2180.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@28917 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 126ce071385e2ddc8ba0c0247768433f2f810522 10-Oct-2008 Stephan Aßmus <superstippi@gmx.de>

* Cleanup with regards to file panel usage. There are two global file panels
now maintained by the application. (So that the last used folder is more
consistently remembered.)
* Added a message protocol for using the file panels from other loopers.
* Implemented playlist saving and loading for the binary (BMessage-based)
format. There were some beginnings for supporting a m3u-like text-based format
as well.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27955 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 82368346f80b5878f94790974f2f76c4b71ca023 21-Sep-2008 Jérôme Duval <korli@users.berlios.de>

fActiveVolume should always be set, and only switch volumes if needed


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27666 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 4ddc254c08b7f88229ba3741946b0925f3c8f805 26-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Implemented decreasing the volume of inactive player windows according to
the global settings. This is only done though if there are multiple players
open at the time. (It doesn't consider their "playing" state, though.)
* The SettingsWindow is now maintained by the MainApp, and there is only a
single instance, those settings are application wide. Also used the
"application floating" window look&feel.
* Small code cleanups.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27210 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9a5f768b197711cd146280af23da99172053c2dc 26-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

* Implemented the "Auto start playback", "Close when done playing movie" and
"Close when done playing sound" settings.
* Removed unused member variables from Controller
* Changed Playlist::SetCurrentRef() to indicate success and prevent the
current index from getting out of range.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27208 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 26e9cdb72cc4f788f60ca38dc3309e62b8c6247b 22-Aug-2008 Stephan Aßmus <superstippi@gmx.de>

I shouldn't push my luck too much, so I'm commiting these WIP changes:
* Removed unmaintained makefile.
* Renamed TPreferences to SettingsMessage, which better describes the beast.
* Renamed setter functions in SettingsMessage for more convenient use.
* Added getter functions which take a default value argument that is returned
when there is no value for the given key.
* Cleanup in Settings.[h|cpp], made things simpler and more convenient. Removed
redundant saving of the settings/message, which SettingsMessage already takes
care of. Added a global instance of the application settings.
* Some cleanup in FileReadWrite and Playlist.
* Reimplemented the SettingsWindow with the new layout API, the old code is
still in place for compiling for BeOS.
* Added two more check boxen for the overlay and bilinear scaling option I
intend to add eventually.
* Refactored the rest of the code in SettingsWindow to use the new global
settings instance and also support a Revert feature. All the new controls are
only available in Haiku though.
* Enabled the Settings... menu entry in the Settings window for access to
the SettingsWindow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@27154 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 62bf33df966c535c1e0e022d4ccc50e7b641693c 07-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

Don't reset the window size when playing a new file if it isn't necessary.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26286 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 9282400ff444c8d85c264f0f5fd16d1c639b7fae 06-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* The SeekSlider did not update the knob when it was resized.
* Subtile visual improvements to the SeekSlider.
* Added a PeakView for displaying the audio peaks that are produced by
the AudioProducer.
* A MessageEvent can now directly take a custom BMessage for delivery.
* The peak notification mechanism is a bit separate from the rest of the
Controller notification design, since the notification delivery should
be delayed until the audio is actually audible. I may change this
quick and dirty design though, since it is not so nice. The target
time could also be part of the message and be handled at a different
stage, but that would make it less efficient.
* Layout improvements to the playback controls.
* Code cleanup here and there, changed some license statements.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26280 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e6ac2ec43e8d5c0215f33734b2bfbb1e69c138c8 05-Jul-2008 Stephan Aßmus <superstippi@gmx.de>

* The window would not reset the audio/video track to 0 on a new file if
the Controller would keep the last audio/video track index across files
(which would be nice for certain situations).
* Better error message for unsupported files, especially for the
B_MEDIA_NO_HANDLER error.
* In the Controller, try to obtain the track duration and ignore tracks that
return a bogus duration. I have some MP3 files on ZETA that are obviously
not handled correctly by the ZETA mp3 decoder. Previously, the player would
just sit there and appeared to have some other internal error.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26261 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 47a197ac3a030a51286ccb2f859b21b9cd4f518c 09-Jun-2008 Philippe Houdoin <philippe.houdoin@gmail.com>

Run Alert/AboutBox in asynchronous mode: otherwise it freeze video
(can't tell if it was the same for audio, as mine -hda- is not supported
yet).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25894 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 7bed1cb42d58a4d9b94b708a3b40137cee56b988 31-May-2008 Stephan Aßmus <superstippi@gmx.de>

* The SeekSlider had the wrong follow mode. If the window was resized in such
a way that the transport group did not need to re-layout, then the seek
slider would not be at the correct position.
* Layout the transport controls with a fixed maximum width in order to prevent
spreading them too much.
* Fix "About" and "MediaPlayer" missing a space.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25733 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0fc56ed57bdd5d2d44f33edd17d94210704613bd 30-May-2008 Stephan Aßmus <superstippi@gmx.de>

* Moved a bunch of non-primary interface classes into a new subfolder
"interface"

* Complete reimplementation of the playback engine using Media Nodes:
- Seeking video files does not appear to lockup the playback anymore, but
works on a frame accurate level even for keyframe based streams. There is
currently a problem with certain container formats, the audio track reports
a "Device Seek Error" in certain conditions. In that case audio goes silent,
and can be restarted by going back to the beginnings of the stream.
- Video overlays are now supported.
- It would be possible to connect the output of the MediaPlayer to other
applications or dormant media nodes.

* Known regressions:
- The volume slider has currently no effect anymore.
- Switching the audio track during playback has a known race condition and
can crash the player.
- The new engine is not as "light weight" as the old one. I tagged the
previous implementation in tags/components/mediaplayer-engine-v1. It does
not seem to have any noticable effect though.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25725 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 85a4868f7123ec20f11f94e25d74653209103327 29-Apr-2008 Ryan Leavengood <leavengood@gmail.com>

Future proofing, make sure we get the screen this window is in.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25267 a95241bf-73f2-0310-859d-f6bbb57e9c96


# ef13436f1fa16fbf8d0a71726db581376054435d 28-Apr-2008 Ryan Leavengood <leavengood@gmail.com>

Fix for #676, an oldie (from 2 years ago): if the MediaPlayer window is moved
off the screen at all, it will be moved back on when the window is activated.

I almost think this might be a reasonable default implementation for
WindowActivated in BWindow :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25234 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 658aafcb6263a23f5422743cebd086be24730606 06-Apr-2008 François Revol <revol@free.fr>

Add recent files to the Open File menu.
Add dropped files to the roster's list of recent files.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24831 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 1b7f76bcfc37774f88e57a363f2f51263593f091 01-Apr-2008 Stephan Aßmus <superstippi@gmx.de>

Applied Patch by Frederik Modeen with some changes by myself:
* Created Settings window similar to R5 MediaPlayer.
* Prepared loading and saving of settings.
* Settings menu entry is hidden for the time being, since these new settings
do not actually have any effect yet.
* Prepared loading and saving of Playlists.
* ZETA Playlists can be dropped on the Player and should load fine.
Myself:
* Cleanup in MainWindow.cpp for line width limit.

To Frederik: I removed the buttons again from the Playlist window, since they
don't do anything yet, and the features are available from the menu as well.
An icon bar would be better, IMHO.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24715 a95241bf-73f2-0310-859d-f6bbb57e9c96


# df542f717fd7226e36e39453b494ec387202c8e8 25-Mar-2008 Stephan Aßmus <superstippi@gmx.de>

Prepare the MediaPlayer to survive a media_server restart, by first
making it detect the quit/start of the media_server and media_addon_server.
No action is currently taken in response to this, but the SoundOutput used
by the Controller needs to be recreated I would think.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@24573 a95241bf-73f2-0310-859d-f6bbb57e9c96


# a637e3c53c976ebe3d2c7d1fe8792a1eaf1aae3e 22-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

patch by Fredrik Modéen:
* add filtering of files by mimetype when adding them to the playlist
* some changes by myself (added Axel's suggestion to guess the mimetype
in order to support other filesystems than BFS)
Fredrik -> please have a look at our coding guidelines, also you have weird
whitespaces in your patches... :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22662 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 540fe7aef9f5fea126dbfb0be82b534744eea29c 17-Oct-2007 Stephan Aßmus <superstippi@gmx.de>

patch by Fredrik Modéen with changes by myself
* toggle the "marked" state of the settings menu items correctly
* implement muting/unmuting the volume
* implement volume up/down triggered by keyboard events
* forward the skip next/previous events to the controller
(various kinds of keyboard navigation or mouse wheel)
* establish the notification link for volume and muted changes


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@22594 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 2a72b9fead28a8cb1cad04c7a8bb023adb41bea0 05-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* re-enabled the InfoWin


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21335 a95241bf-73f2-0310-859d-f6bbb57e9c96


# cc2fbed22d7db3b90ece4147cf5933a599fe39ee 03-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* implemented infrastructure for undo/redo of playlist operations,
everything regarding playlist modification is now tunneled through
the playlist window


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21312 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 09464bc90b61f0c038cd92e3894921c64caedf9a 03-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* extraced PlaylistListView into it's own files
* lots of changes, besically these make the Playlist window usable
- drag sorting works (hold shift to copy instead of move items)
- removing items with the delete key works
- dragging files/folders from Tracker works (hold shift to insert
them in the existing playlist, othewise the new files replace
the playlist)
* some refactoring and bug fixes in previously unused functionality
* Playlist can now be locked (needed to be), and is in ControllerView,
MainWin and PlaylistListView


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21305 a95241bf-73f2-0310-859d-f6bbb57e9c96


# d329f1d6c1ab87225f92373f227626b9702607bc 02-Jun-2007 Stephan Aßmus <superstippi@gmx.de>

* cleanup in MainWin, better grouping of functions in .h and
moved functions in .cpp accordingly, prepended private methods with _
* disabled InfoWin, because it accessed members of MainWin directly,
will be reimplemented with notification mechanism
* fixed the bug with the multiple error alerts for an unsupported file,
the window should use the current file index from the notification
itself


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21300 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 5fa5e5fea7e2752ce0f9eb514b82f7c34ea308e6 29-May-2007 Stephan Aßmus <superstippi@gmx.de>

* added notification support to Playlist and Controller
* added AbstractLOAdapter by Ingo Weinhold which makes
notifications asynchronous
* removed "Player" interface/concept, replaced it by
the notification mechanism (window loads new file
when "current" ref index changes in Playlist)
* removed some cross classes dependencies
* the wind buttons are not displayed anymore for now
* lots of changes to the Controller
- the decoder/player threads are kept running for the
entire lifetime of the Controller object (in essence, makes
it possible to playback seamless)
- abstracted BMediaTrack usage into "Video-" and "AudioSupplier"
objects (the BMediaTrack pointers are only still there, because
I have not gotten around to fix the messy/hacky InfoWindow)
- reaching the end of the stream will trigger a notification,
so that the next file from the playlist is played
- fSoundOutput is managed by the Controller
- tried to make seeking seem more controlled (slider doesn't
jump back to previous position)
- playback position is correctly updated in GUI
- volume is maintained independend of SoundOutput so
that it can be transfered from one to the next output
- performance time is maintained correctly (?) even if
no audio stream is present
* work in progress Playlist window (drag sorting does not work yet!)
* rearranged menus a bit
* rearranged overlay code in the VideoView, but it cannot work
like it is currently designed, since the buffers need to be
switched all at once, which the video decoding thread
is not doing yet
* dragging files into the main window with shift held down
appends to the existing playlist
* dropping folders adds files recursively
* pressing space toggles playback (instead of changing some
settings of the GUI)
* fixed some more minor issues or unimplemented stuff in the UI


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21276 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 66eba86f4b3c2eef6462d090e93245fc60d7127b 16-May-2007 Axel Dörfler <axeld@pinc-software.de>

* Applied patch by Jonas Sundstrom: fixed the usage of B_UTF8_ELLIPSIS hopefully
everywhere in the tree.
* Added the ellipsis to "About Haiku" in Deskbar as well.
* Minor cleanup of Deskbar's StatusView.cpp


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21156 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c91fb637b62a85991908ff7349ca817dc35ab2f6 01-Mar-2007 François Revol <revol@free.fr>

Add a File Info Window to MediaPlayer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@20293 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 453f642e2e5277aa60c17863fc25f38e23309aa8 22-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Rewrote audio decoding to provide timing information
that is used to sync with video.
Separated audio decoding and playing into two threads,
the same applies to video decoding and playback.
This was inspired from code written by Stephan.
Added video decoding and display, added play/pause/stop.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17533 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 0f0bbc97511c62bb5537fa10a2815b7f1a4dd566 08-May-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

implemented seeking and position update


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17378 a95241bf-73f2-0310-859d-f6bbb57e9c96


# aadc5f572d7fa4e6d96e090ccb8087ddba45c27a 24-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

added playlist support


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17225 a95241bf-73f2-0310-859d-f6bbb57e9c96


# c98821ac7153ccee23df9eb72751102d7a967352 24-Apr-2006 Stephan Aßmus <superstippi@gmx.de>

* added GUI classes for the transport control panel implementation
* as noted by the headers, these originate from Be Sample Code or
code that was written by myself alone for VLC (they have been
updated in the meantime though)
* seek slider is missing yet as well playback position info view
(could be taken from VLC as well, I still have the implementation
that contains only my own code)
* fixed application quitting when only one of multiple player
windows is closed (not it quits when the last player is closed
or MediaPlayer->Quit is selected from the menu)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17222 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 91b9ff3f99ab334db0b4cabc08625245d47f3025 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

cleanup, moved track selection into settings


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17219 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 067423e61588b96ee18108968ca38e7b1536a880 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

implemented even more resizing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17218 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 399b0e8ab84555e2eeee8bb8aa40b450c868a02b 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

cleaned up resizing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17215 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 99cd5eeb92bdd42756e075535201dd44318aa8f6 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

added some resizing support


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17214 a95241bf-73f2-0310-859d-f6bbb57e9c96


# e1d8d7d6b48c655bab349c1fde5200fed917289e 23-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

implemented some file handling related functionality


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17211 a95241bf-73f2-0310-859d-f6bbb57e9c96


# 04a91b97bde1b41f4100b923a1699ddeac36635b 05-Apr-2006 Marcus Overhagen <marcusoverhagen@gmail.com>

Imported source code from DVB TV application


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@17021 a95241bf-73f2-0310-859d-f6bbb57e9c96