History log of /haiku/src/apps/mediaplayer/ControllerObserver.h
Revision Date Author Comments
# 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


# 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


# 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


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

* Coding style cleanups, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33811 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


# 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


# 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


# 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


# 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


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

* Coding style cleanups, no functional change.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@33811 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


# 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