Commit Graph

24751 Commits

Author SHA1 Message Date
Ingo Weinhold
0ee6c1ea21 * TermView does now maintain an additional visible area sized
BasicTerminalBuffer. It synchronizes this buffer with the actual
  terminal buffer and uses it for drawing. This does significantly
  decrease the time the terminal buffer is locked by the window thread,
  and avoids the necessity to do invalidations in Draw() when the
  terminal buffer changed in the meantime.
* When the view detects heavy scrolling of the terminal buffer due to
  lots of continued output, it throttles redraws to one every 0.1s. The
  detection condition might need some fine-tuning -- it's probably a bit
  too strict for most situations.

I guess I'm done now with optimizations. After testing on real iron for
the first time, I'm a little impressed. In the "time seq ..." speed
competition Haiku's Terminal easily beats Konsole by 10 to 20% for 80x25
and by factor 3+ for full screen. And if I interpret the results
correctly 90% of the time is actually used by "seq" itself which seems
to be about 5 times slower than under Linux.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25917 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 22:20:14 +00:00
Rene Gollent
864ace1845 Rework BList's Resize() functionality: instead of altering the size of the list a block at a time,
we now double/halve the current size of the list, starting with the constructor blocksize as a baseline.
This has the net effect that when doing large numbers of inserts/removes, the number of resize operations 
needed scales logarithmically to the number of operations, which should yield a decent performance 
improvement in such cases.

Review welcome. This does not yet affect ticket #2363 that I'm aware of, as I'm currently in the process
of attempting to find a copy of said app to test with.



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25916 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 22:10:13 +00:00
Michael Lotz
97403a77f1 * Fix the check after waiting for owner change to happen and don't reset if the
handover indeed worked. Doesn't really matter though, as we reset anyway,
  just not twice in the success case.
* Disable all interrupts and clear any pending active interrupts just after
  taking over the controller. This might fix bug #2361.
* Also trace output when the ownership change is successful.
* Don't disable interrupts during reset.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25915 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 22:07:45 +00:00
Axel Dörfler
0e0d9290e0 I can't believe Urias wasn't mentioned here yet...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25914 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:54:35 +00:00
Axel Dörfler
52b5cb5a10 Applied patch by Urias in order to let the PPC port build again.
Temporarily removed the VESA driver, as long as it only builds on x86.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25913 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:53:00 +00:00
Ingo Weinhold
90ab7ea343 * Added a SetHistoryCapacity() method.
* Added a ResizeTo() version that allows to set the history capacity at
  the same time.
* Added a SynchronizeWith() method that allows synchronizing with (a
  part of) another buffer.
* Fixed TODO in _Scroll().
* Improved the dirty region update code in _Scroll(). It would in
  certain (not exactly uncommon) situations needlessly invalidate the
  whole screen.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25912 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:43:42 +00:00
Ingo Weinhold
540e66d6a6 * Renamed GetReaderBuf() to _NextParseChar().
* Introduced a small (64 byte) buffer for the parser thread. Instead of
  directly reading single characters out of the reader buffer, we read
  a full parser buffer and process the characters from the parser
  buffer. Thus _NextParseChar() could be inlined, since it merely
  consists of a conditional method call and an access to the parser
  buffer, now.
* Improved the locking of the terminal buffer. Instead of unlocking and
  relocking after every multi-byte char or escape sequence, we only
  unlock while refilling the parser buffer.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25911 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 21:34:50 +00:00
Karsten Heimrich
ced75fc6b0 * in case we do not show the config window,
still distinguish between config page and config job
 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25910 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 18:47:07 +00:00
Karsten Heimrich
e8991ce3ac * fill the view with it's high color, BPrintJob behaves now like on R5
fixes printing from e.g Scooby (missing header color)

  finally found the missing peace here:
  http://www.freelists.org/archives/haiku-development/06-2008/msg00086.html
  thanks Stephan  :)



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25909 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 18:42:47 +00:00
Rudolf Cornelissen
8981fa5d54 removed PIO mode acceleration completely.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25908 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 17:56:54 +00:00
Rudolf Cornelissen
6fafa6bf00 removed PIO mode acceleration completely.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25907 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 17:56:12 +00:00
François Revol
f95fe944e3 - Remove some multi-audio leftovers.
- spice up select_oss_rate() to use the passed rate as hint, and also check in the rate array, or the range for cards with the FREERATE cap.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25906 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 13:27:42 +00:00
Rudolf Cornelissen
b11432e092 removed all references to G80 and newer cards.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25905 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 11:10:52 +00:00
Rudolf Cornelissen
7d4cfc1251 removed all references to G80 and newer cards. Bumped version to 0.85 and updated docs.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25904 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 11:10:31 +00:00
Rudolf Cornelissen
69ca210263 removed all references to G80 and newer cards. Bumped version to 0.85
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25903 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 11:10:01 +00:00
Rudolf Cornelissen
ea72734485 added verified support for Nvidia GeForce 6150 Go (NFORCE4 Integr.GPU) on behalf of Dustin Howett. Thanks for your work on this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25902 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 10:45:54 +00:00
Rudolf Cornelissen
5ee68405ad added verified support for Nvidia GeForce 6150 Go (NFORCE4 Integr.GPU) on behalf of Dustin Howett. Thanks for your work on this.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25901 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 10:44:10 +00:00
Rudolf Cornelissen
9e06ba69cc re-enabled force-WS option, but changed default to being true. Also modified default setting for program panel to being false since this may provide a higher chance for a working panel outthere. If people experience trouble please let me know.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25900 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 10:39:03 +00:00
Rudolf Cornelissen
109f1e1cb8 re-enabled force-WS option, but changed default to being true. Also modified default setting for program panel to being false since this may provide a higher chance for a working panel outthere. If people experience trouble please let me know.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25899 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 10:38:50 +00:00
François Revol
344b81452e work in progress: use one thread per connected channel, and a BList of BBuffer * to avoid dropping them. Disabled early buffer recycling as latency calculation is still broken. I can now play something without missing buffers.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25898 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 02:01:12 +00:00
Alexandre Deckner
6d4ab8b00e - The bug in Tracker (previous commit) uncovered a bug in BScrollBar's thumb positioning. The + 1.0 was well intented and produced the right effect unless fMax-fMin was too close to 1.0. It could
leave a unusable gap on the right (or down) of the thumb.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25897 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 00:53:16 +00:00
Alexandre Deckner
ed27e7aef6 - Scrollbar proportions computation was wrong in icon mode. The problem showed when a folder contained few icons regrouped in a small area (Extent() smaller than Bounds()). The viewable extent is
always Bounds() now.

 This fixes #361, again we're better than R5! Although in this test case, the scrollbars shouldn't be activated in the first place. In icon mode the poseview is still putting too much white space on 
the left (x<0) and make the scrollbars show. Fix is almost ready :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25896 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-10 00:52:01 +00:00
François Revol
c0179e0856 Do not use -shared when linking linkhack.so for PPC. It is however needed for other archs.
This is a temporary workaround to get the thing building until someone has enough cafein available to update binutils.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25895 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 23:29:09 +00:00
Philippe Houdoin
47a197ac3a 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
2008-06-09 22:52:53 +00:00
Ingo Weinhold
234502808a Pulled base class BasicTerminalBuffer out of TerminalBuffer. It contains
pretty much all the meaty code. Left in TerminalBuffer is only stuff
that didn't quite fit, like the encoding and view notifications.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25893 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 21:46:52 +00:00
Ingo Weinhold
5423f9c0ac Some renaming and inlining of TerminalBuffer methods.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25892 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 21:09:02 +00:00
Jérôme Duval
8af7752eff fix dependency
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25891 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 20:45:19 +00:00
Jérôme Duval
b93be9caa8 added a driver for ACPI lid: only detection is implemented, and not sure a dev entry is needed
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25890 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 20:42:53 +00:00
Jérôme Duval
0afec1917e added AddNewDriversToHaikuImage to replace AddDriverRegistrationToHaikuImage: it places drivers which supports the new device architecture at the right place
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25889 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 20:32:54 +00:00
Ingo Weinhold
1654e65735 Renamed "Font Encoding" to "Text Encoding" as it really has nothing to
do with the font.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25888 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 20:14:45 +00:00
Ingo Weinhold
cbe6d01c9d Propagate the encoding to TerminalBuffer. It doesn't really belong
there, but that's the easiest solution for the time being.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25887 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 20:12:38 +00:00
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
Oliver Ruiz Dorantes
c61dc72f6c - Add some traces
- Register the protocol
- Remove some AF_INET stuff

Although step by step will become the L2CAP protocol implementation, for the moment is just a testing and learning code. 



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25884 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 18:51:04 +00:00
François Revol
9c1328f0a2 gcc4 fix.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25883 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 18:08:24 +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
Stephan Aßmus
80f4a4f272 The given updateRect in screen coords (_Draw()/_DrawAfterChildren()) should
no longer extend outside the view after r25879.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25880 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 16:09:20 +00:00
Stephan Aßmus
581e67867c * Change the protocol for sending the affected view tokens during an update
session to also include each view's individual update rect (in screen coords).
  Should actually not be mush slower than the old version, and hopefully makes
  it possible to have smarter BView::Draw() implementations which should make
  more than up for any potential speed loss.
* Removed unused version of View::AddTokensForViewsInRegion().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25879 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 16:07:18 +00:00
Rudolf Cornelissen
50d3d63701 updated settings file
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25878 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 15:36:54 +00:00
Rudolf Cornelissen
179645d635 removed nv_agp.c
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25877 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 15:25:03 +00:00
Rudolf Cornelissen
9c6e0a8061 renamed nvidia.settings
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25876 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 15:17:02 +00:00
Rudolf Cornelissen
abeca8acc6 kerneldriver for nvidia gpgpu driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25875 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 14:54:32 +00:00
Rudolf Cornelissen
0ddc7716d4 headers for nvidia_gpgpu driver
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25874 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 14:53:17 +00:00
Rudolf Cornelissen
dcdc3ec9ed copied nvidia driver over to nvidia_gpgpu driver. Does nothing but compile. I hope to be fidding around with a EN8500GT soon. If for some reason I shouldn't be creating these folders, feel free to remove it again, and let me know :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25873 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-09 14:37:03 +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
Ingo Weinhold
258fd455bc Also do fast mouse wheel scrolling when Command or Control is pressed
(was Option only).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25871 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 23:47:32 +00:00
Michael Lotz
ca7b0f375e Patch by Olivier Coursiere that removes unneeded special characters.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25870 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 21:48:23 +00:00
Jérôme Duval
9f3408f86f build fix
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25869 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 20:34:49 +00:00
Michael Lotz
ea963c10d1 * Adding a driver for the not quite standard IT8211 single channel IDE
controller. The device doesn't use the PCI_ide subclass (but
  PCI_mass_storage_other) and requires not using compatibility mode. Otherwise
  it's pretty much the generic_ide_pci driver.
* Directly adding the driver to the image.

This driver could either be merged into the generic ide driver so it supports
not quite standard devices, or this could be made into a driver that collects
all those non standard devices. Either way, this works for now and lets my
machine boot off the IDE drive :-)

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@25868 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-08 20:09:12 +00:00