Commit Graph

36544 Commits

Author SHA1 Message Date
Axel Dörfler
44260788fe * Fixed CID 1650: the "raw" buffer could be leaked.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38420 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 16:46:18 +00:00
Oliver Ruiz Dorantes
8235dffe80 Last message key was closing the socket earlier than I expected
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38419 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 16:07:59 +00:00
Axel Dörfler
31d8c43d1c * Fixed CID 1262: waitForLock was not only -1 when exiting the loop, it didn't
make much sense to wake up any waiters either in this case.
* Fixed doubled semaphore deletion.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 15:17:23 +00:00
Axel Dörfler
8d797bda1d * Fixed CIDs 1503 & 2054: dereferenced {record|playback}_stream which could be
NULL.
* Fixed an operator precedence bug (&), and added the (() != 0) everywhere.
* Minor cleanup.
* Automatic whitespace cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 14:52:22 +00:00
Axel Dörfler
be136723e7 * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 14:35:48 +00:00
Axel Dörfler
da0d740954 * Fixed broken UDP for non device bound sockets.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 10:41:57 +00:00
Oliver Tappe
f059c93c7d * minor cleanup
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 09:36:59 +00:00
Adrien Destugues
355a38a098 Fix gcc4 build as well as logic error : the driver needlessly scanned some devices.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 09:35:15 +00:00
Oliver Tappe
81fe5a9200 * re-added GetAvailableTimeZones() to BCountry - it is now a convenience wrapper
around BLocaleRoster::GetAvailableTimeZonesForCountry()
* minor cleanup

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 09:23:26 +00:00
Adrien Destugues
18900042ce * Use defines for the SCSI commands instead of the numeric opcode directly
* Colorize the trace output for easier syslog reading
 * Add usb_floppy to the default image
 * disable error tracing


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38411 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-28 08:57:29 +00:00
Adrien Destugues
68f54d50f2 Better error handling : do not enter an endless loop in cases of errors, but report them to the caller.
Note this leads to KDL if there is a write error, so it may not be the best way for a floppy...

This allows the driver to uninitialize properly when all devices are unplugged, which in turns permits updating the driver without rebooting to unload it.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38410 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 22:02:24 +00:00
Axel Dörfler
46af4e7787 * Fixed CID 566 that was duplicated in blue_screen.cpp as well (but was not
discovered by Coverity for some reason): commands without arguments would
  overwrite memory (in this case the sConsole::arg_count only, though).
* Travis's copyright was missing in blue_screen.cpp.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38409 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 21:36:07 +00:00
Axel Dörfler
882d595fc0 * If an unknown type is encountered, return immediately. This fixes CID 1504.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38408 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 21:10:14 +00:00
Adrien Destugues
0a240bcefe Replace icon for the usb_floppy devices.
The floppy icon is based on zumi's one. changes done :
 * I made the floppy a bit thinner, it looked more like a zip100 cartridge
 * I added an USB logo (or something that more or less looks like one) on the floppy label
 * The logo only shows at big icon sizes since I couldn't get it looking good at small ones.

Feel free to improve.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38407 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 21:00:17 +00:00
Adrien Destugues
a046d61f81 * Write operation data direction is obviously host-to-device
* Write operation will always return an error, one needs to send request sense until the write is actually done.
This gets floppy writing working.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 20:17:12 +00:00
Adrien Destugues
027fabed60 Use block read and block write instead of regular read and write commands. Mounting the device read-only now works. Writing
is still not working.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38405 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 17:54:04 +00:00
Adrien Destugues
87bfae8987 A floppy drive is a slow device, so we have to try many times before getting a result.
This gets read capaity working, the device shows up in drivesetup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 17:33:54 +00:00
Stephan Aßmus
e9a09f6670 * Enabled the mp2/mp3 decoder in the ffmpeg plug-in (CodecTable.h).
* Removed the mp3_reader and mp3_decoder from the image and from
   the source tree even. The mpeg123lib based decoder was crashy,
   since the lib didn't cope with bad input data too well, whatever
   the reason, but bad input can also be a specially crafted file.
   I didn't see the value in keeping two decoders around that use
   a third party library as backend. While reading in the mp3_decoder
   code, I even saw that it used global variables in the mpeg123 lib
   to figure out framerate and channel count, after decoding a bit of
   input. Obviously this has concurrency issues.
 * Removed the mp4_reader from the image. It is native code, and should
   perhaps be preferred over imported code, but I don't have the
   resources to look into it, and David doesn't seem to have the time
   either. There are basically three types of problems with the
   native mp4 reader: 1) It is way too CPU intensive. I have many HD
   files that don't play at all, since there is not enough time left
   for actual decoding. 2) Seeking leaves a lot of visual artifacts
   (with the very same decoder plug-in), since there seems something
   wrong either with finding true keyframes, or with flushing buffers
   correctly. And 3) very often audio stops working at all after
   seeking. Sometimes a keyframe is returned for audio which is very
   far away from the wanted frame, which currently triggers bad
   behavior in the audio producer node in MediaPlayer and can even
   crash the media_addon_server. With the ffmpeg based mp4 reader,
   none of these problems exist: Seeking is perfect, no artifacts,
   CPU load is low enough for pretty much all HD clips I tested with,
   and audio always works and is always in perfect sync with the video
   after seeking.

If there are regressions after this commit at all (I tested a lot of
files), then I anticipate only that the ffmpeg plugin does not advertise
support for files it could actually handle (i.e. easily fixable). In
those cases hopefully a test stream can be made available. If the
native mp4 reader is improved to the point that it works as well as
the ffmpeg mp4 demuxer, we can easily switch it back, but for now, users
will prefer reliable playback.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38403 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 17:16:00 +00:00
Adrien Destugues
779ccf5c6d * Properly initialize the drive before attempting to access it
* Ask the drive for its status after each command we send, or else it locks up
THis get us as far as trying to read the drive capacity, but this still fails for some reason.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38402 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 17:00:57 +00:00
Stephan Aßmus
22ce5d9517 * Optionally separate tracing output for FindKeyFrame().
* Output more information in AVFormatReader::StreamCookie::Open(),
   AVInputFormat flags for example.
 * Added CODEC_ID_AAC handling when codecTag is 0. Adds support
   for AAC in Matroska containers when the ffmpeg plugin is enabled
   to handle those.
 * Added some rounding to frame<->time conversions.
 * AVFormatReader::StreamCookie::Seek() forgot to pass the seek
   flags to av_seek_frame().
 * The most important fix is this, though: There are formats which
   build the keyframe index on the fly, while parsing the stream!!
   These means we can only seek to real keyframes for parts of the
   stream that has already been decoded. Handle this situation by
   assuming we can seek to the requested frame/time. This change
   fixes the use of the AVFormatReader as MP3 reader.
 * Anothe important fix is to ignore the nb_frames member of the
   stream for the total frame count. This makes MP4 movies
   also work perfectly now when the AVFormatReader is used for them.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38401 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 13:29:52 +00:00
Stephan Aßmus
d5479a3bd0 * Use the new avcodec_decode_audio3() call, avcodec_decode_audio2()
gives the deprecated warning... We need to cache an AVPacket for this.
 * Check the allocation of fOutputBuffer.
 * When seeking, we need to flush the already decoded stuff
   in fOutputBuffer, and throw away the last chunk buffer as well.
 * Handle an incomplete input format at least to the point of not
   crashing with a divide error (mp3_reader would give us such an
   incomplete format for example).
 * _DecodeAudio():
   - Fixed some edge cases in the audio decoding loop: avcodec_decode_audio3()
     can return a 0 length, which means no error, but no decoded frames
     either. ffplay throws away the chunk in this case, do the same.
  - Convert some invalid situations that were printf()s into debugger()s.
  - Add much more comments to explain how everything works.
 * Fixed the occasional coding style issue.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38400 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 13:21:03 +00:00
Adrien Destugues
156a187d0d * Fix test unit ready command (the device still stall, no idea why).
* Move the interrupt stuff inside the device structure
 * Some cleanup, added some more tracing fordebug purposes.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 12:40:05 +00:00
Axel Dörfler
d26fafe96b * The arp module gives warnings in GCC4, so the typo was actually needed; this
temporarily fixes the build again.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 12:09:47 +00:00
Axel Dörfler
bbbb5592e4 * UDP now respects the net_socket::bound_to_device field when propagating data
to endpoints. This should help with the final issues of bug #6454.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38397 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 11:05:13 +00:00
Axel Dörfler
c993531c60 * Fixed GCC4 only error.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38396 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:57:03 +00:00
Axel Dörfler
89bf19ccde * Made an uint32 out of net_socket::bound_to_device.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38395 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:56:41 +00:00
Axel Dörfler
cf064cc7b5 * Set the new net_buffer::index field on retrieval of a buffer.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38394 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:55:48 +00:00
Axel Dörfler
870fd4b77b * Removed radix.c from the build, as it's not currently used.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38393 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:54:58 +00:00
Axel Dörfler
40b788d449 * Fixed typo that prevented the datalink_protocols to be compiled with -Werror.
* Enabled -Werror for the protocols.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38392 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:53:04 +00:00
Axel Dörfler
8402e1f46d * Now sets the net_buffer::index field before forwarding a buffer to the next
layer.
* Converted the hash used to the BOpenHashTable instead of khash.
* Fixed remaining GCC4 warnings.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38391 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:51:39 +00:00
Axel Dörfler
62d3dbd618 * Added a soon to be used index field.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38390 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:48:59 +00:00
Axel Dörfler
00400fd683 * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38389 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:48:31 +00:00
Stephan Aßmus
ff1679bee8 * Improved some comments.
* When writing encoded audio, we were leaking one
   temporary buffer per chunk.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38388 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 10:32:18 +00:00
Adrien Destugues
64286654bc This fixes redrawing bugs related to the selection in terminal (#6426). It should also avoid some other bugs related to
drawing whitespace at the start of a line but the behaviour is not perfect yet.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38387 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 08:43:40 +00:00
Axel Dörfler
1e4feb533e * Added some optional debug output.
* Check for errors using != instead of < - the functions are not supposed to
  return anything above B_OK.
* Use the stack-wide ENABLE_DEBUGGER_COMMANDS instead of our own local solution.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38386 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 07:32:41 +00:00
Oliver Tappe
8b31c7e7aa * oops - removed debug leftover
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38385 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 00:58:34 +00:00
Oliver Tappe
540cbcd8e6 * add explicit check against mismatching version of legacy compiler, avoids
trying to build the compiler when it's not going to work


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38384 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-27 00:57:11 +00:00
Oliver Tappe
3740f52dca More Time preflet improvements:
* fixed another instance of BToolTip deletion, when we should be releasing
  a reference instead (the first one was fixed by Rene - thanks BTW!)
* brought BCountry back into the game, such that the localized name of the
  country is now being used, where possible (avoiding the " Time" suffixes
  in English)
* country-items containing only one timezone are now being filtered (the 
  timezone moves up one level, replacing the country item, but adopting
  the country's name)
* added the date to the timezone-item's tooltip, in order to make it obvious
  which timezone is "before" and which is "behind" the date-borderline
I'm pretty happy with how it works now - what's yet missing is conversion of
the preflet to the layout kit and localization of the GUI.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 22:27:25 +00:00
Oliver Tappe
9ef134d918 * added timezone-support to some more date/time-formatting methods in BLocale
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 22:17:40 +00:00
Oliver Tappe
c91aa9f4e6 * moved support for getting timezones-by-country from BCountry to LocaleRoster,
since we'd like to be able to get the timezones of the global (i.e. empty)
  country, too.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38380 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 22:16:40 +00:00
Adrien Destugues
bbdb55154d Work In Progress (do not try yet!) driver for usb floppy drive.
This is loosely based on usb_disk, but uses a different protocol for sending the commands.
Refactoring is unfinished, so don't look at the style too muh, it will e fixed and cleaned up later.

Basic communication with the drive works (sending commands). Command themselves still mostly untested.
Command Blocks sent to the drive are most likely wrong and may erase your floppies or do any other weird things!


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38379 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 20:28:54 +00:00
Axel Dörfler
db4015a5f8 * Work in progress of reworking the net80211 stack a bit, implementing some of
the missing notifications.
* Renamed ieee80211_haiku.c to .cpp, and made it compile (this part requires
  the updated GCC2, as it uses the ISO-C varargs macros).


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38378 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 14:35:03 +00:00
Axel Dörfler
93e784a576 * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38377 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 14:32:14 +00:00
Axel Dörfler
f9bb7404fa * Updated the GCC2 package to version -100818. This will soon be needed to be
able to build Haiku.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38376 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 14:31:52 +00:00
Stephan Aßmus
3c772f3e09 Finally fixed #3036: BColumnListView::PreferredSize() needs
to take into account the correct extra spacing around
the TitleView, as well the internal margin width that
the TitleView adds to the current column width sum for
its virtual width used to set the horizontal scrollbar
proportion. Introduced TitleView::MarginWidth() for that.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38374 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 13:57:54 +00:00
Axel Dörfler
1e0617da2e * dladdr() apparently should work on any symbol, not just functions. This
closes bug #6491.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38373 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 13:49:14 +00:00
Stephan Aßmus
2f368a273a Fixed the overly complicated computation of the height of the
removed rows in OutlineView::RemoveRow(BRow* row). It also
contained a bug (tracked down by Duggan in ticket #3897, thanks!)
which caused it to skip the sub-tree height computation when
FindParent() returns false, which it does for root items.
Now the computation is simple: The subTreeHeight is the height
of the row itself, if a) the row doesn't have a parent or b)
the parent is visible and expanded. Then if the row being removed
is expanded, we calculate the sub-tree height recursively.
Removed a lot of duplicated or even trippled checks along the
way and solved two easily solvable TODOs with regards to what is
invalidated. Previously the entire list view was invalidated
for each row being removed, even if they were scrolled out the
view bounds.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38372 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 13:10:27 +00:00
Adrien Destugues
c1b432af8e Fix build with tracing enabled.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38371 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 12:43:44 +00:00
Axel Dörfler
f16be37f87 * Fixed strange/wrong indentation.
* Made sure the 80 character per line limit is honoured.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38370 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 12:36:52 +00:00
Axel Dörfler
0250598f79 * Forgot to update copyright for the last change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38369 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 12:14:36 +00:00