2228 Commits

Author SHA1 Message Date
Ingo Weinhold
066dcdc34b Changed the way the pty reader and output parser thread communicate. The
parser was acquiring a semaphore for each character. Now it only
acquires a semaphore when the buffer is empty. This speeds up output
bound programs. In my setup "seq" is now 3 times faster. Which is still
rather slow.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25886 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 19:35:33 +00:00
Ingo Weinhold
bdc33077f9 GCC 4 fixes.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25885 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 18:52:09 +00:00
Ingo Weinhold
795e2f55b4 Removed work-around for now fixed bug #2355.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25882 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 17:28:28 +00:00
Ingo Weinhold
52b1d543e8 Terminal changes. This is still work in progress, some features
are disabled, lots of commented debug code is still in there,
and quite a bit of cleanup is needed, but basically things work
at least as well as before with several improvements:
* Changed TerminalBuffer from an interface to a complete
  implementation. Removed all related code from TermView. Removed
  the now obsolete TermBuffer. TermParse uses TerminalBuffer instead
  of TermView, and TerminalBuffer asynchronously notifies TermView.
  This avoids potential deadlocks, fixing #1918. It also speeds
  up tty-output-bound programs. E.g. a "seq 10000" is about twice
  at fast with the default terminal size in my setup, now. It's
  still horribly slow compared to e.g. Konsole, though.
* Replaced CurPos by a more compact and fully inline class TermPos.
* Removed the offset feature (that insets the used text area) from
  TermView, thus simplifying the code. Instead put the view into a
  new parent view which provides the insets. This also fixes
  artifacts that could sometimes be observed in the insets area.
* Scrolling related changes:
  - When scrolling fully down, the (80x25 or whatever) terminal
    screen is seen. It is not possible to scroll below the screen as
    in Be's Terminal. Scrolling in Haiku's Terminal was weirdly
    broken in this respect. As a side effect this fixes #2070.
  - When not scrolled fully down, further output won't cause any
    scrolling. It is thus possible to read earlier output while
    something is still going on. Fixes #1772.
  - Particularly to avoid unnecessary scrolling in the not scrolled
    fully down case, TermView no longer actually scrolls. It only
    sets an internal offset and manually uses CopyBits() as needed.
    Introduced a (hacky) BScrollView subclass using a BScrollBar
    subclass to make that possible.
* Selection related changes:
  - Double/triple click plus dragging allows for selecting multiple
    words/lines.
  - Word selection no longer selects ranges of non-space characters.
    Instead it knows that words are made of alpha numerical chars and
    a certain set of other chars, and selects a range of commonly
    classified characters (word chars, non-word non-whitespace chars,
    whitespace chars). The non-alpha-num word characters should be
    made user-settable. Due to missing multi-byte character
    classification multi-byte whitespace is not recognized.
  - Beyond the end of the line there no longer are invisible spaces.
    Trying to select the region selects the end of the line (i.e.
    line break). This is similar to how Konsole and xterm work.
  - Added auto-scrolling when selecting with the mouse. Formerly the
    Terminal scrolled only while moving the mouse. The scroll speed
    might need some fine-tuning.
  - Don't know what change exactly did that (likely the switch to
    non-end-inclusive text ranges used internally), but the
    occasional selection artifacts are gone.
* Resizing the terminal window re-wraps soft-wrapped lines.
* The find functionality seemed to be completely broken. At least it
  never found anything for me. Should work now, though multi-byte
  characters are not matched correctly in case-insensitive mode.

Regressions:
* Printing is disabled.
* Cursor blinking is disabled. Do we want it anyway?
* In several cases full-width characters are not handled correctly
  (in more cases than before).
* Shrinking the terminal width doesn't work very well with "less"
  (and probably other full-screen terminal apps), due to line
  re-wrapping. "less" expects them to be truncated only. When
  supporting an alternate screen buffer re-wrapping should be
  disabled for it, which should solve the problem.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25881 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 17:04:26 +00:00
Axel Dörfler
a7b8e0f267 * Slightly improved invalid suffix removal from URLs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25872 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 13:01:58 +00:00
Jérôme Duval
53ad1814cb * show EULA before the Installer window
* this fixes #2332


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25860 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 12:09:10 +00:00
Alexandre Deckner
bd8185aba2 - In vertical mode, TExpandoMenuBar used its own width to set the width of a newly added item. Removing the last item made the MenuBar resizes
itself to (0,0), and broke further item width computation. We now use the parent view width (BarView) instead. This fixes #471 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25826 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 15:07:40 +00:00
Stephan Aßmus
9639f1bf6c * Move the color_space_to_string() function into it's own file.
* On BeOS "bitmaps_support_space()" returns false for YCbCr color spaces. :-(
* Refactor the code which sets up the decoded format in the MediaTrack-
  VideoSupplier to always start with a clean format for multiple calls to
  BMediaTrack::DecodedFormat().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25824 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 12:40:10 +00:00
Stephan Aßmus
d39288b8d6 * Actually set the format to B_RGB32 when retrying for that format.
* Do not exit in case of success to retry with B_RGB32, so the bytes per row
  check is performed.
* Ignore if bytes per row is big enough.
* Check the success for the last attempt to set DecodedFormat().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25821 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 10:36:50 +00:00
Stephan Aßmus
df13386015 Do not insert a new playing state when seeking to the same frame. In the
end, this results in trying to decode the last frame again, which would
the decoder to seek unnecessarily.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25820 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 10:33:47 +00:00
Stephan Aßmus
6d0505fffc The seeking algo stopped decoding frames one frame too early.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25819 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-06 10:17:28 +00:00
Ingo Weinhold
15cdb34646 Fixed gcc 4 build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25789 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-03 16:31:36 +00:00
Ingo Weinhold
4386ce0206 Pulled the TermView interface used by TermParse into a new interface
class TerminalBuffer, which will evolve into a TermBuffer replacement
and decouple the parse thread from the window.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25787 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-03 15:29:10 +00:00
Jérôme Duval
87905063c3 better handles error and cancellation when copying
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25772 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 22:34:48 +00:00
Jérôme Duval
1d0b3c1590 ported back a change from Tracker FSUtils.cpp
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25771 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 22:29:15 +00:00
Jérôme Duval
62572b22a6 HasBorder and HasTitle are exclusive, fix bug #2325
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25770 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 20:53:46 +00:00
Stephan Aßmus
2ebec00b97 And now it should even compile again! Sorry about that, forgot to
remove the debug output completely.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25767 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 18:50:42 +00:00
Stephan Aßmus
3c1baac2ac Accidentally left tracing on...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25766 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 18:46:38 +00:00
Stephan Aßmus
64c4d8f606 I tracked down a problem with a specific clip I have here.
In the end, the problem was that no codec was installed
for it, but I fixed a bunch of issues on the way to find
out. Now the controller will not rely on the number
of audio and video tracks, but on the fact that it could
instantiate suppliers at all. Made the MediaTrackVideoSupplier
return an init error. Should be replicated for the
MediaTrackAudioSupplier.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25765 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 18:28:31 +00:00
Stephan Aßmus
12f1188b4f Do not reference bitmap color spaces directly anymore, but use
bitmaps_support_space() interface kit function. First try to
use overlays, if that fails, try again without overlays. The
NodeManager makes sure to fall back to B_RGB32 if the given
mode is not supported for drawing bitmaps in by BViews. Thanks,
Axel, for the suggestion!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25764 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 18:25:31 +00:00
Stephan Aßmus
50c7a8f997 Small code cleanups.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25763 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-02 18:21:55 +00:00
Stephan Aßmus
4fd26cd542 Reuse existing nodes if the media formats do not change. This fixes the
regression that audio playback of multiple files was not "seamless" anymore.
Even video playback should be seamless, the remaining small glitch could be
a problem with buffer timeout if the switch takes too long.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25735 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-31 11:06:04 +00:00
Stephan Aßmus
4aa9ff58c6 Fix a locking problem with inner locks to protect the race condition when
the producer media nodes would access the suppliers in their own thread
without having any locks held, while the window could replace the suppliers.
I think since I delayed the deletion of the suppliers in the controllers, this
problem was only theoretical... but this is just more clean.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25734 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-31 10:39:45 +00:00
Stephan Aßmus
7bed1cb42d * 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
2008-05-31 10:37:44 +00:00
Stephan Aßmus
474f214fdb Print a warning in case the video buffer is bigger than what should be
displayed, does not seem to be the reason for the problem I am observing
with one clip I have, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25732 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-31 10:35:43 +00:00
Stephan Aßmus
d7f2503a08 * Support codecs that don't support B_YCbCrXXX color spaces.
* Leave the codec a chance to advertise the best output color space,
  try B_YCbCr422 as the most widely supported format in case the codec
  does not advertise.
* Support two more overlay colorspace modes in the video consumer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25731 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-31 08:46:11 +00:00
Stephan Aßmus
eaa3851e82 Build fix for GCC 4.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25728 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-30 19:21:54 +00:00
Stephan Aßmus
bbf1ff835d Added BMediaRoster class definition.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25727 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-30 19:17:37 +00:00
Stephan Aßmus
0fc56ed57b * 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
2008-05-30 18:59:36 +00:00
Stephan Aßmus
722f6c5cd0 Small cleanup of duplicated files. AutoLocker and AutoDeleter are already
part of headers/private/shared, Icon-O-Matic used older versions.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25720 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-30 14:03:02 +00:00
Stephan Aßmus
1083a4b6d2 Added Andreas Faerber and Scott McCreary to the list of contributors for their
help with bugs, sending patches and the ongoing Haiku-Ports effort.

As always, if you think someone should be listed, please drop me a line!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25711 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-29 19:56:00 +00:00
Axel Dörfler
ce2ba4187b * Added SHINTA to the list of contributors.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25669 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-26 21:21:12 +00:00
Ingo Weinhold
06a28b5416 BFilePanel doesn't take over ownership of the supplied messenger, so it
was leaked. CID 881.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25641 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-24 15:56:54 +00:00
François Revol
05ffb70e8f Add compiler version to AboutSystem so newbs can identify if an image is built with gcc4 or gcc2.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25619 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 21:00:11 +00:00
François Revol
6524effd4f Fix style.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25612 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-22 16:13:09 +00:00
François Revol
dfd39d8b12 Fix "may be uninitialized" warnings. Not sure we want black there though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25594 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-21 21:45:52 +00:00
David McPaul
cca73f2ab9 display codec id when codec not available\nSome layout changes too
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25520 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-16 02:30:50 +00:00
Axel Dörfler
707cdd3719 Added Christian Fasshauer, and Marco Minutoli to the list of contributors.
Shinta, if you can give me your full name, I would like to add you too :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25492 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-14 16:48:03 +00:00
Ingo Weinhold
6b202f4e3d * Introduced new header directory headers/private/system which is supposed
to contain headers shared by kernel and userland (mainly libroot).
* Moved quite a few private kernel headers to the new location. Split
  several kernel headers into a shared part and one that is still kernel
  private. Adjusted all affected Jamfiles and source in the standard x86
  build accordingly. The build for other architectures and for test code
  may be broken.
* Quite a bit of userland code still includes private kernel headers.
  Mostly those are <util/*> headers. The ones that aren't strictly
  kernel-only should be moved to some other place (maybe
  headers/private/shared/util).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25486 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-14 03:55:16 +00:00
Stephan Aßmus
bf681d149a BRoster::GetAppInfo() only works on running applications, for the replicant to
find the DeskCalc icon, we need to use BRoster::FindApp() instead.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25477 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-12 19:58:20 +00:00
Jérôme Duval
739dbdfae4 * Patch from Christian Fasshauer: provides a cancel button
* fixed a few things: one couldn't restart the install process when cancelled, use B_QUIT_REQUESTED instead of QuitRequested().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25466 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-12 11:38:10 +00:00
Stefano Ceccherini
976203c80a typo which broke the build
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25457 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 18:34:29 +00:00
Stefano Ceccherini
66b7ce851c We shoulnd't mess with the pulse rate of the window, since if we are a
replicant, the window is not ours. Blinking the cursor is now done with 
a BMessageRunner.
Removed the dragger for the time being, since Terminal as a replicant 
has some issues.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25456 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 18:23:12 +00:00
François Revol
29ede77343 - add jamfile & rdef
- remove makefile & rsrc
- hook to the build.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25443 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 01:02:34 +00:00
François Revol
fe8567ec1c The code for my (very useful if you ask me) AutoRaise deskbar addon that brings the focussed window to front after a timeout.
MIT of course.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25442 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 00:40:56 +00:00
François Revol
a4a6c26a2a - add a jamfile and rdef
- remove makefile and rsrc as it builds fine from jam
- add to the build


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25441 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 00:32:02 +00:00
François Revol
1d7c2d4adc Sources for Matthijs Hollemans' WebWatch app, I don't use it (anyone actually using @beats ?) but it's quite cute and could serve as nice sample code. And it's under MIT licence.
Oddly this is version 1.5 while bebits still has 1.4 :)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-11 00:02:26 +00:00
Ingo Weinhold
7b54413e91 Typo, spotted by Andreas Faerber.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25436 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 21:52:44 +00:00
François Revol
3082bb7d0c added a dumpState() call to help debugging EscParse
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 13:30:15 +00:00
Axel Dörfler
14cc96293c * Turned off replicant handle for the time being; it's not really usable as
a replicant yet.
* Improved CSS producing code.
* Cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-05-10 12:55:53 +00:00