Commit Graph

21646 Commits

Author SHA1 Message Date
François Revol
ffa2f65116 Let's use asm offset instead of hardcoded values...
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26070 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 23:41:36 +00:00
Ingo Weinhold
0b4dac74e0 * Added kernel tracing for insertion and removal of cache pages (tracing
level 2).
* merge_cache_with_only_consumer() marked the source cache unbusy when
  it was done, which caused a race condition with the page fault code.
  I accidentally introduced this problem in r25716. Fixes #2326.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26068 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 21:08:07 +00:00
Michael Lotz
efec339946 Take the source alpha into account when doing a B_OP_INVERT so that drawing
bitmaps in B_OP_INVERT mode does not affect pixels where the source bitmap
was transparent, as noted in the BeBook. Not really sure I'm doing that right
though and probably needs looking into for B_OP_ERASE and B_OP_SELECT too.
Fixes bug #2421 though.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26067 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 19:38:56 +00:00
Stephan Aßmus
50450a0053 Implemented an AudioReader subclass "AudioVolumeConverter" which applies
a volume to the audio data. It ramps between a previous and the current volume
if necessary to smooth out the changes. The volume slider functionality is
thereby restored.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26066 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 18:15:48 +00:00
Michael Lotz
bdc47b1f97 Remove transparent magic handling for B_CMAP8, ImportBits() takes care of that already.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26065 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 14:48:06 +00:00
Michael Lotz
f24652cba6 Fix two wrong debug output messages and add one for AS_SYNC.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26063 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 13:45:58 +00:00
Stephan Aßmus
4e913061bb Make the buffer latency less agressive for Haiku, this makes audio playback
perfect in Haiku for me (HD Audio), while it adds a very noticable latency.
On C-Media, the difference between "policy 4" and "policy 5" is 2048 versus
32768 bytes, which is 16 times the latency. I added a note on why the same
policy on Haiku might give me troubles (C-Media versus HD Audio means
16 bits/sample versus 32 bits/sample) and if OSS does not double the buffer
size then I can see where the trouble is comming from. I should probably
figure out a more fine grained way of influencing the driver buffer size.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26062 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 13:13:21 +00:00
François Revol
2e314c0993 Fix build for Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26061 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:49:56 +00:00
Stephan Aßmus
773ead235b Added note about the remaining playback problem for using OSS in BeOS.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26060 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:19:55 +00:00
Stephan Aßmus
d3ebd7843a Victory! With these changes, playback is nearly perfect under BeOS (tested with
C-Media based sound card). In Haiku, I could test with HD Audio, and playback
has clicks. It doesn't seem to have to do with the "drift", which is now
correctly published, I am not sure what exactly is causing it, I would like to
test on different hardware yet.
* I have modified the buffering policy (4 will give about 2048 bytes internal
  OSS buffer), which decreases the latency of the node to an acceptable value.
* I completely replaced the timesource publishing algo to be more reliable.
* Removed now unnecessary methods from OpenSoundDeviceEngine.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26059 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:14:26 +00:00
François Revol
1f5afb2e36 Add to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26058 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 12:12:17 +00:00
Stephan Aßmus
188ba2f72a * SetTarget((BView*)NULL) needs to unset the previous target's pointer to
the scrollbar.
* Added notes about BeOS behavior to SetTarget(const char*).
* Reuse SetTarget(NULL) in the destructor.
* Initialize fTarget and fTargetName in the archive constructor.
* Added TODO about possibly restoring the target in the archive constructor.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26057 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 08:39:14 +00:00
François Revol
1e4285015c Better handle incorrect io ranges, it should only be fixed for PC (around 0x3f0).
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26055 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-21 00:35:07 +00:00
François Revol
71c84a02ee Rename floppy target to pc_floppy, add to the build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26053 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 23:14:18 +00:00
François Revol
476618a00e Move the floppy driver to disk/floppy/pc_floppy, it will be named pc_floppy, as it handles PC-style controllers, but not only PCs have those, so it doesn't belong to arch anymore.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26052 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 23:05:19 +00:00
François Revol
01cf5d4907 Prepare for move.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26051 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 23:01:16 +00:00
François Revol
8942de6c0d Make the floppy driver buildable again... even under Haiku.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26050 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 22:58:15 +00:00
Alexandre Deckner
1c4b7e9e01 - revert my last changes to ScrollBy, this temporarily bring back #2312
and the previously mentioned ResizeToFit issue.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26047 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 20:04:10 +00:00
Ingo Weinhold
2fd41f637c Also scroll to the cursor when pasting something.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26046 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 12:38:52 +00:00
Ingo Weinhold
644470be68 Use the preferred history size. It's not settable via GUI yet, but one
can edit the settings file. The default are 10000 lines BTW.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26045 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 12:35:42 +00:00
Ingo Weinhold
a5e61a10eb Fixed mouse copy'n'paste support. We use a separate clipboard for mouse
selection which we update whenever the first mouse button is released.
This also enables copy'n'paste between Terminals.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26044 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 12:22:52 +00:00
Alexandre Deckner
d511a89a8a - Since r21336, BView::ScrollBy was checking the values against the ScrollBar ranges but ScrollBy is often called before
updating the scroll range (ie: in ContainerWindow.cpp). IMO, the programatic ScrollBy method shouldn't depend on the 
ScrollBars ranges or state. The original fix in r21336 was apparently hiding other BScrollBar or BView bugs that have been 
fixed in the mean time.
  The content was offseted when going back to list mode after moving icons on the left/up in icon mode. This fixes Tracker bug 
#2312.

- Revert and fix changes to ContainerWindow.cpp in r18481 (cvs 1.37). The condition was broken, but it wouldn't ScrollBy() 
anyway due to the previous problem. Fixing BView made the content autoscroll even if the lefttop corner of the extent was 
already visible.

- Probably unrelated, fix changes to ContainerWindow.cpp in r18993 (cvs 1.38). PoseView()->Bounds().left/top < 0 is expected, 
if for example in icon mode you move an icon close or crossing the left side of the window and then scroll left to adjust. 
This fix ResizeToFit that wouldn't scroll the view correctly in some cases.

So we had a Tracker Bug uncovering a BView fix that was hiding another Tracker bug, everything is fixed hopefully, phew :-)


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26043 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 02:39:33 +00:00
François Revol
04390361b5 - comment
- fix building arch_debug. Misses many regs still.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26042 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 02:22:26 +00:00
François Revol
a3dc7ef06c - some cpu and platform fixes.
- we'll just use decimal chip number (68030, ...) to identify cpu, fpu, and mmu for simplicity.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26041 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 02:11:45 +00:00
François Revol
7d5d19dfab bviously M68KPlatform makes more sense here :)
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26040 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:40:58 +00:00
Ingo Weinhold
769b9b3c40 * Generate the same escape sequence when pressing control or command and
the left/right cursor keys.
* Normalized the Ctrl-<cursor> escape sequences. Makes word navigation
  in vim work.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26038 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:33:18 +00:00
François Revol
194846c6a4 Remove another OF leftover. If we ever support hades or milan we'll add something else there.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26037 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:24:27 +00:00
François Revol
616c19c359 Remove leftover OF header
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26036 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:23:20 +00:00
François Revol
22531ab80f Fix building the pci bus manager. Still quite stubbed out though.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26035 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 01:20:29 +00:00
Ingo Weinhold
10a01828a1 The main thread was used as BApplication thread and a new thread as
worker thread. That sounds somehow reasonable, but has the problem that
signals to the process hit a thread that doesn't know how to handle
them. Fortunately the author already prepared the code to switch the
thread tasks. In the Terminal vim does now correctly react on window
resizes. Probably also fixes #2393.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26034 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 00:56:05 +00:00
Ingo Weinhold
b43255b9f7 Squashed TODO: When writing a character in the last column of a line we
wrapped to the next line and a subsequent LF would advance another line.
We behave like xterm now, i.e. visually the cursor stays on the same
line (on the last character), but the next character will be wrapped to
the next line.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26033 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-20 00:30:13 +00:00
Ingo Weinhold
f9428b3ecd Also clear the selection when invalidating all.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26032 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 22:23:59 +00:00
Ingo Weinhold
1291c38c18 Implemented \ESC[?47h and \ESC[?47l (use alternative/normal screen
buffer). These are the sequences our /etc/termcap uses (local less and
vim use the alternative screen buffer now). The ones already implemented
are used e.g. by the termcap of my Linux installation. A bit weird all
those different termcap files, some even with the same version
number.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26031 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 21:10:21 +00:00
Ingo Weinhold
f3c7795744 Also update the cursor on full invalidation.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26030 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 20:57:35 +00:00
Ingo Weinhold
539903c55b * Added /etc/sysless with settings to make backspace work correctly in
less.
* Added /etc/vim/vimrc. Besides fixing key mappings it also disables
  compatibility mode and adjusts some settings to make using vi a more
  pleasant experience.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26028 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 14:32:25 +00:00
Ingo Weinhold
77222ae772 Reverted r22488 and part of r23783. This makes the backspace key work
again in the shell.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26025 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 14:24:12 +00:00
Ingo Weinhold
dc0467088c Added home and end key xterm capabilities.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26024 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 14:21:45 +00:00
Ingo Weinhold
470198e08c Hack to avoid problems with termcap entries that take more space than
2KB. That's the currently recommended size of the buffer passed to
tgetent(). Our xterm entry is bigger, though.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26023 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 14:21:01 +00:00
Ingo Weinhold
a71fd7987b * Changed generated key sequences to be more ANSI/xterm.
* Set TERM to "xterm".
* Removed unnecessary {Begin,End}ViewTransaction() in TermView::Draw().


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26022 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 14:18:31 +00:00
Stephan Aßmus
eaa6da1ef7 Use a flag in BWindow to store whether an update to a view (Invalidate()) has
been requested. The first call to a BView::Invalidate() will flush the link
so that app_server is notified as soon as possible. It makes no sense for
further calls to Invalidate() to flush also, since Flush() is not cheap. This
trick makes Invalidate() about 3.2 times faster, making it a cheaper operation.
I could not see any negative effects, I tested with apps that invalidate
multiple different parts inside a window in reaction to something. Thanks go to
Ingo who had the idea.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26020 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 13:07:44 +00:00
Ingo Weinhold
ae50fc51bb Fixed libbe_test build.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26017 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-19 00:06:50 +00:00
Rene Gollent
aa2ff66326 The attribute copy operation was nested inside a conditional block which wouldn't be executed if the file being copied was zero bytes in length. Moved outside the block to where permissions and other optional operations are handled. This fixes bug #2259.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26013 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 22:04:15 +00:00
Oliver Ruiz Dorantes
14ea910db6 Identation and handling of the pincode and incoming connection events
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26012 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 21:05:33 +00:00
Oliver Ruiz Dorantes
24f4a20d25 Add UI classes to the build.
Adding some helper methods to the Local and remote devices



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26011 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 21:01:26 +00:00
Oliver Ruiz Dorantes
b12daa5f08 Add UI classes for handling incoming connections and pincode requests
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26010 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 20:57:27 +00:00
Michael Lotz
df7096a4aa * Added malloc_nogrow() function that does allocation without triggering or
waiting for a heap grow.
* Use that nogrow version in the VM code to avoid a deadlock with the address
  space lock when a grow operation would try to create an area while a malloc
  happened from such a function in the VM.
* When waiting for a grow to happen, notify the waiting thread from the grower
  also if it failed to allocate a new heap. Otherwise a thread would just sit
  there and wait until another thread requested growing too and that one
  succeeded (or just forever in the worst case).
* Make the dedicated grow heap growable too. If the current grow heaps run low
  on memory it will instruct the grower to allocate a new grow heap. This
  reduces the likelyhood of running out of memory with no way to grow to a
  minimum. As the growing is done asynchronously it is still possible to
  happen, but it is highly unlikely as the grow heap is solely used to
  allocate memory in the process of creating new heap areas and it will even
  try using normal public memory if the dedicated memory has run out.
* Reduced the dedicated grow heap from 2 to 1MB. As it can now grow itself, it
  doesn't need to last so long.
* Extract heap creation into it's own function that does area creation and heap
  attach and use this function for growing normal and grow heaps.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26009 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 19:55:51 +00:00
Oliver Ruiz Dorantes
0df89492fb -Wrong header for function,
indenting...


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26008 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 19:17:35 +00:00
Michael Pfeiffer
4420c1ceff PPD parser and configuration UI prototype from 2004. Maybe it can be of some use for the CUPS port HCD 2008 project.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26007 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 18:24:54 +00:00
Ingo Weinhold
13315c5755 * The old screen buffer wasn't freed in _ResizeSimple().
* Updated some debug output.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26005 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 04:14:06 +00:00
Ingo Weinhold
7f6f9ddb94 * Forgot to clear the lines of the alternate screen buffer on
initialization. This would lead to crashes when resizing.
* Shuffled code in ResizeTo() a bit to make it more robust in case of
  error (out of memory).



git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@26004 a95241bf-73f2-0310-859d-f6bbb57e9c96
2008-06-18 04:12:46 +00:00