Commit Graph

36429 Commits

Author SHA1 Message Date
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
Axel Dörfler
d3e85ecc1a * LaunchApp() now removes an existing app hint if load_image() returned an
error. It could even try again in the case of launch-by-signature to make
  it more robust.
* _ResolveApp() now only updates the MIME type's app hint if there is no hint
  already. This means that only the first app launch will update the hint, not
  the ones after that; ie. if you had two installations of an app, launching
  it by signature will now always launch the first app, not the one started
  last.
* This is done since the app hint is written before its known whether or not
  the app could be started at all. Now, if an app could not be started, the
  hint is removed, which means it can be reset on next try.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38368 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 12:13:45 +00:00
Axel Dörfler
303269dc22 * Hide the "GCC 2 Hybrid" string since this is the default - only deviations
from the default are shown now.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38367 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 12:07:32 +00:00
Stephan Aßmus
dd96260d50 Cleaned up OutlineView::FindParent(), only do the visibility check if required.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38366 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 11:52:11 +00:00
Axel Dörfler
9d4331902c * Now we should also support link layer and INADDR_BROADCAST broadcasts again
correctly.
* This should finally fix ticket #6454, but I keep it open until it's confirmed.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38365 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 09:23:49 +00:00
Axel Dörfler
ef3f86e723 * Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38364 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 09:16:18 +00:00
Adrien Destugues
a8a33a98ff Intel_extreme now centers the screen when one select a resolution smaller than the ne of the LVDS panel.
Also clean up the style and add some more TODOs.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38363 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 09:13:41 +00:00
Axel Dörfler
4cd42050fa * Cleanup, no functional change.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38362 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 08:42:58 +00:00
Rene Gollent
00a2914f9c If the tooltip exists, release its reference on exit instead of deleting it directly. Resolves a crash on exit if a tooltip was showing at the time.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-26 01:07:14 +00:00
Stephan Aßmus
672397ba1a The list of Reader plugins will also not remain sorted,
the same mechanism needs to be applied as for Decoders,
so that user add-ons are always found before system
add-ons.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38360 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 22:27:12 +00:00
Clemens Zeidler
ccaae539b4 Call the correct method to minimize/activate a window. Previously the BWindow got out of sync and activation of a window haven't worked probably.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38359 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 21:22:26 +00:00
Rene Gollent
4e3080b72d Updated cdrtools optional package rebuilt by Chris Roberts due to some errors that crept into the earlier one. Added iconv as dependency.
git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38358 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 20:49:21 +00:00
Oliver Tappe
447b7fded1 More work on Time preflet
* update the times shown on timezone page when the user switches RTC between
  GMT/Local Time
* rename "Etc"-region to "<Other>" and sort it at the end of the list
* add current time of the corresponding zone to tooltip of a timezone-listitem
* show timezone names in the default language - not the default locale, as
  the latter is just responsible for date/time and numeric formats
This works, but the localized names are sometimes a bit strange (for instance
in English, whose timezone names have a superfluous ' Time' prefix).
I am going to experiment with mixing country information back into the game, next.

git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38357 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 17:34:54 +00:00
Axel Dörfler
4c6e53f601 * IPv4 must always set the net_buffer::interface_address on incoming buffers; it
didn't do that for broadcasts - this is still not a full solution as it won't
  work for link layer broadcasts, but this should fix most DHCP problems.
* IPv4 multicast doesn't do that yet.
* Only send ICMP errors if it hasn't been a link layer broadcast.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 15:54:35 +00:00
Axel Dörfler
cb99c9153b * The KDL command "udp_endpoints" did not work anymore, since
DatagramSocket::AvailableData() locks; introduced a UdpEndpoint::Dump() method
  to work around that.
* Minor cleanup.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 15:51:43 +00:00
Adrien Destugues
124a502a7a Always set the LVDS panel to its native mode, except for the 'display' part.
This allows to use lower resolution screen modes with black border.

Added a set of TODOs :
 * The smaller scren is not centered, but aligned top-left
 * The base resolution used is the one reported from edid 1.1, because I'm still not sure how to parse EDID 1.2. This resolution is too small on my laptop, but it works.

Also added two ways of setting 8-to-6 dithering for 18-bit LVDS panel. No visible result for me, unfortunately.


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@38354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2010-08-25 15:06:49 +00:00