Commit Graph
100 Commits
Author SHA1 Message Date
Axel Dörfler 6ebe15a039 Added support for properly initializing a file system without issueing any
cache warnings.
Now prints out actual useful information with the -v option.
Removed DEBUG from the build, so that it's now silent and can be used as
a replacement of the original.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6482 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-03 02:17:59 +00:00
Axel Dörfler db88a56aa8 Now calls the new fs_shell only call kill_device_vnodes() in Volume::Initialize()
to be able to remove the cache correctly (without issuing any warnings).
The Volume::Initialize() method is now only defined in USER mode (of course, this
will change in OpenBeOS).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6481 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-03 02:14:51 +00:00
Axel Dörfler 77c235a2e4 Encapsulated parts of the functionality from sys_mount/unmount() in supplementary
functions that can be used by the "mkbfs" command (and similary ones).
Also added a kill_device_vnodes() function which should be called before removing
the cache in the file system's "initialize volume" function - again, its use is
intended for the "mkbfs" utility only.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6480 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-03 02:13:11 +00:00
Axel Dörfler b8c2776bb7 Moved some more functionality into create_new_vnode() to reduce code duplication.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6469 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-02 15:09:21 +00:00
Axel Dörfler 5b25332a79 This should fix the recently introduced locking problems:
- locking policy is now: 1) the volume lock, 2) the inode lock, 3) start
  the transaction (the journal lock) - you don't need all locks, but you
  have to follow this order when you need more than one of them.
- in many cases, this makes our inode read/write lock useless. I am really
  looking forward to the OpenBeOS VFS layer where we can remove many of
  these locks again.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6464 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-02 01:50:00 +00:00
Axel Dörfler f00b71c38d Added a basic Jamfile that tries to build the netperf test application.
Probably doesn't work, but it can be used as a template :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6453 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-01 01:26:22 +00:00
Axel Dörfler 50304661f3 Uncomment the lines when you want to build anything from them.
Note: if anything in this Jamfile builds properly, it should get
part of the build, right?


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6452 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-02-01 01:24:46 +00:00
Axel Dörfler 42b671e397 Fixed the bfs_shell build from other directories, thanks to Ingo!
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6440 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-31 01:27:06 +00:00
Axel Dörfler a3acf1f210 Now defines UNSAFE_GET_VNODE when compiling.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6425 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-30 00:51:04 +00:00
Axel Dörfler 36660c5e99 Switched from direct get_vnode() usage to the Vnode class.
Now acquires the volume lock always before get_vnode() is called as long
as UNSAFE_GET_VNODE is defined (which now is by default).
May cause some unwanted side-effects; it still has to be thorougly tested.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6424 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-30 00:47:56 +00:00
Axel Dörfler b39a7a0edd Fixed the "inode is not becoming unbusy" problem.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6423 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 23:46:23 +00:00
Axel Dörfler 4d61634cbe Added more (and conditional) debug stuff -- currently turned off.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6418 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 22:41:49 +00:00
Axel Dörfler 01338285a9 Some minor style changes.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6417 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 22:19:17 +00:00
Axel Dörfler 73e3e50c41 Fixed the bug that caused the "vnode already exists with different cookie"
crash: bfs_inode::InitCheck() didn't check INODE_DELETED, and Inode::Remove()
didn't clear the INODE_IN_USE flag (as the original BFS, IIRC).
Some more debug output and checks.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6416 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 22:14:07 +00:00
Axel Dörfler 55ba8e3830 Changed the prompt of the bfs_shell, so that I can't confuse it with the
fsh command (which is part of BeOS for some unknown reason).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6415 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 21:59:44 +00:00
Axel Dörfler 753f8791b9 Added support to change the prompt (at compile time for implementations).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6414 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 21:58:32 +00:00
Axel Dörfler fb1146f245 Improved debug output; added thread information.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6413 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 21:50:00 +00:00
Axel Dörfler 9dea85013f Make sure that the local "Debug.h" is actually used.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6412 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 21:48:21 +00:00
Axel Dörfler fc2f5c4f98 Fixed working with volume without indices - in case of a corrupt indices node
the Inode will now be deleted, and it will only be tried to be instantiated
if the indices block_run is not zeroed out.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6406 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 10:45:54 +00:00
Axel Dörfler 403d1302de Minor cleanup.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6404 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-29 10:44:18 +00:00
Axel Dörfler 11805f2d85 BlockAllocator::InitializeAndClearBitmap() now also sets the used_blocks
field of the super block correctly.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6399 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-28 23:12:59 +00:00
Axel Dörfler 3bb10b9323 The standard indices are now created when a volume is initialized.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6398 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-28 23:07:52 +00:00
Axel Dörfler 9e6ec53a18 You can now specify all important options on the command line.
Now does a sync() after the changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6382 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 23:10:31 +00:00
Axel Dörfler b41bf79188 Standard log size is 2048 blocks, not 4096...
Added a ToDo comment so that I don't forget to add the standard indices :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6381 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 22:41:32 +00:00
Axel Dörfler 6be2590464 Also added "bootfloppy" to build the boot floppy (still available using "boot_floppy", too).
Just for consistency with "installfloppy" and Marcus :).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6361 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 20:36:12 +00:00
Axel Dörfler a49b150fff Removed the fOwningThread functionality from the Journal class; it now
just uses a RecursiveLock instead.
Changed Journal::CurrentTransaction() so that it returns the current
transaction only if it's valid for the thread asking for it.
That doesn't fix the bug, but changed its timing a bit.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6356 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 11:19:05 +00:00
Axel Dörfler 0057030901 Added some more debug output and checks.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6355 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 11:15:43 +00:00
Axel Dörfler d401c62383 Fixed typo.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6354 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 11:14:37 +00:00
Axel Dörfler 8364cf0a90 Added a LockWithTimeout() method to the RecursiveLock class.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6353 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 11:11:18 +00:00
Axel Dörfler 3eacb520e4 The InodeAllocator will now remove the INODE_NOT_READY flag to unblock
any pending bfs_read_vnode() calls when it is destructed and the inode
goes away.
Fixed some endian related issues.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6350 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 09:54:47 +00:00
Axel Dörfler 2726d4732e This should fix the syslog_daemon build under R5 (compiles strlcpy() in).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6349 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 09:41:41 +00:00
Axel Dörfler a98a451545 Added a small test application that uses the same allocation group algorithm
as (our) BFS, so that you can play with it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6340 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 02:37:29 +00:00
Axel Dörfler d61e7f330a Wrote a simple algorithm to create appropriate allocation group values
for newly initialized disks. Should work for all sizes :-)
Documented a bit what good values actually mean.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6339 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 02:26:22 +00:00
Axel Dörfler afd7a6e6ce Added a new "stattest" command that permanently stat()s a file that is
being created and removed without a break.
That test is finally able to reproduce the bugs we are seeing in the
kernel but that never occured in userland - thanks *very* much to
mmu_man who found the shortest way to trigger it.
Just run it for a few minutes and it should happen (press "return" to stop it).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6338 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-27 01:17:22 +00:00
Axel Dörfler c10586fe0d Fixed a typo.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6329 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 12:35:00 +00:00
Axel Dörfler 965c8c8b4d Fixed the Volume::Mount() call; BlockAllocator::Initialize() was never
called since last change (could mount volumes, but cannot write to them
anymore without errors).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6328 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 12:29:26 +00:00
Axel Dörfler c4e3ef09c4 Removed the makefile, since it's not used at all.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6326 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 10:38:38 +00:00
Axel Dörfler 4472757fb0 Renamed the generic "floppy" target to "boot_floppy" so that it doesn't
clash with the floppy driver anymore.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6325 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 10:33:13 +00:00
Axel Dörfler 6b6b3d294b Fixed all warnings.
Renamed DPRINT() to the more common (in our codebase) TRACE().
print_sr0() is only compiled in and called if DEBUG is defined.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6324 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 10:28:16 +00:00
Axel Dörfler fb86eb2c00 Fixed all warnings, added license.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6323 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 09:53:51 +00:00
Axel Dörfler 322defd113 Accidently broke the build by allowing kernel_cpp.cpp to be built without
having access to private/kernel.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6322 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 09:33:31 +00:00
Axel Dörfler e0014cf657 Reduced the block cache size a bit.
Set the volume ID to 1 now - that's a hack to get it working until
we have better support from fs_shell's kernel.c.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6321 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 03:39:03 +00:00
Axel Dörfler 9e72b7739d Inode::Create() now prints out a reason if new_vnode() failed.
If the parent is NULL, Inode::Create() will now set node::parent to
the node itself, like BFS is doing it (for root and indices nodes only).
Added a temporary hack in Volume::Initialize() to get the inodes freed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6320 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 03:38:08 +00:00
Axel Dörfler ddf3d84685 Removed debug output, set mode of newly created root node to 0755 instead of 0777.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6319 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 03:20:07 +00:00
Axel Dörfler a447f8b11c Added an initial mkbfs test app (it's intended to be used under R5).
Hardcoded device file to "/boot/home/test-device" - more to come :)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6318 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:59:00 +00:00
Axel Dörfler 7410cb93f2 Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6317 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:54:49 +00:00
Axel Dörfler 437490577d Added the USED_IN_FS_SHELL define.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6316 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:51:12 +00:00
Axel Dörfler eb02489701 Bound the tracker feature to a USED_IN_FS_SHELL define (to allow building
in other environments, too).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6315 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:47:24 +00:00
Axel Dörfler aac1dff951 Updated the comment in bfs_initialize() - which we don't need for R5 (as it's
never called).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6314 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:45:54 +00:00
Axel Dörfler 3154133754 Moved the functionality of Volume::IsSuperBlockValid() into the new
disk_super_block::IsValid() method.
There is now a disk_super_block::Initialize() method that sets up
a super block for creating a new file system on it - it's currently
hard coded to produce correct results for 10 MB images, though;
the allocation group stuff has to be done a bit more flexible :)

Added a DeviceOpener class that simplifies Volume::Mount() a bit and
fixes some problems of it (forgot to call close() once or twice).
Implemented the new Volume::Initialize() method that completely
covers the mkbfs functionality.

Fixed the broken Volume::ToBlockRun() method - AFAICT it has only
be used by Volume::CreateIndicesRoot() and in dump_bplustree_node
so far (should not have been critical, as the former was probably
never called yet [only if you had tried to create an index on a
BFS volume that didn't have indices yet]).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6313 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:44:27 +00:00
Axel Dörfler d7db210882 Fixed a bug that could happen when calling Inode::Create() with unusual
arguments (such for creating a root directory, for example).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6312 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:08:31 +00:00
Axel Dörfler 81566b9389 Implemented initalizing the bitmap of a fresh volume in the new call
BlockAllocator::InitializeAndClearBitmap().
Added BlockAllocator::BitmapSize() which returns the size of the block
bitmap in bytes - used it where appropriate.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6311 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:06:47 +00:00
Axel Dörfler daf0126bb2 alarm_event() has sent the signal to the currently running thread instead
of the one that issues the alarm - it now does an ugly cast to get the
real thread structure. It would be nice if we had an additional user
parameter to a timer event.
Thanks to Travis for reporting this one!


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6310 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-26 02:01:46 +00:00
Axel Dörfler 016f7b6f32 Fixed compilation when you can't add private/kernel to your include headers.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6301 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 18:31:04 +00:00
Axel Dörfler 0f18208594 BMediaFormats::InitCheck() now checks if the global lock could be initialized
to give its existance a bit more sense.
update_media_formats() no longer ASSERTS if the lock is held, but fails
if it's not locked.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6300 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:56:10 +00:00
Axel Dörfler ddb013472a Switched to kernel_cpp.cpp/h
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6299 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:45:21 +00:00
Axel Dörfler 14795a07ba Fixed warnings.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6298 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:42:16 +00:00
Axel Dörfler 8d0b31a063 Fixed warnings.
Minor style changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6297 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:25:50 +00:00
Axel Dörfler b103e03a71 Switched to kernel_cpp.h.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6296 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:13:57 +00:00
Axel Dörfler d3d255f3a9 Got btree test to build again.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6295 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:11:19 +00:00
Axel Dörfler 6fbc2b70db Updated for change in the debug mode.
Switched to kernel_cpp.cpp/h.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6294 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:04:20 +00:00
Axel Dörfler 67a14a5ee7 Unbroke the debug build (also in user mode).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6293 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 15:03:38 +00:00
Axel Dörfler ba6b73149c Not needed anymore, now uses kernel.cpp/h (same thing, just in a standard location).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6292 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 14:50:09 +00:00
Axel Dörfler 54343bbc2d Switched to kernel_cpp.h/cpp.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6291 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 14:48:40 +00:00
Axel Dörfler aef00d7b03 Cleaned up the debug mess mmu_man has created (thanks anyway!).
Fixed a bug where the debug commands would be added in bfs_mount(), but
not removed (since bfs_unmount() is only called if bfs_mount() doesn't
fail).
Switched to kernel_cpp.h/cpp.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6290 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 14:46:24 +00:00
Axel Dörfler a893229e08 Cleaned up the debug mess mmu_man has created (thanks anyway!).
Switched to kernel_cpp.h/cpp.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6289 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 14:44:51 +00:00
Axel Dörfler b53b9c0cd9 Cleaned the debug mess mmu_man created (thanks anyway).
Switched to kernel_cpp.h/cpp.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6288 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 14:43:37 +00:00
Axel Dörfler 55b5474b8b Added _PACKED to the on-disk structures.
Switched to kernel_cpp.h/cpp.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6287 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-25 14:38:51 +00:00
Axel Dörfler 001103576a Accidently used its own PluginManager object instead of the global one.
Implemented BMediaDecoder::GetDecoderInfo().
Changed the documentation style to something doxygen can read.
Added some ToDo comments.
Some minor style changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6249 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 09:15:47 +00:00
Axel Dörfler a0a20160cd Updated all decoders to the changed codec API (from meta_descriptions to
BMediaFormats based detection).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6248 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:55:01 +00:00
Axel Dörfler 86bafc634b Removed now unused get_format_for_description and get_description_for_format
request/reply structures.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6247 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:44:42 +00:00
Axel Dörfler 7c02339d2c Rewritten the FormatManager class.
It now implements the new format registration needed for the BMediaFormats
class.
Does not yet implement a settings file, and does not yet support removing
of existing decoders/encoders.
Also, it currently replies in FormatManager::GetFormats() in the tread of
the media server with a timeout of 5 seconds...


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6246 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:43:33 +00:00
Axel Dörfler 20e3dd9dbe Almost rewritten the AddOnManager. It now works together with the new
media decoder detection code and the FormatManager.
It now stores all registered formats from a decoder, and uses this
information to implement GetDecoderForFormat().


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6245 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:40:35 +00:00
Axel Dörfler 61dec6a5c7 Removed now unused GET_FORMAT_FOR_DESCRIPTION and GET_DESCRIPTION_FOR_FORMAT
stuff.
Simplified ServerApp::MessageReceived() and added MEDIA_SERVER_GET_FORMATS
to it.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6244 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:34:25 +00:00
Axel Dörfler a898baf0cc Added missing AddOnManager and FormatManager.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6243 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:31:57 +00:00
Axel Dörfler 2a93bc9819 We don't need no BLocker anymore, updated _reserved[] to not change the size
of the class. Renamed fIndex to fIteratorIndex.
Some minor style changes.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6242 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:30:51 +00:00
Axel Dörfler c38d73ee4c New meta_format structure that is used internally by BMediaFormats and
the FormatManager in the server.
Update the plugin API.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6241 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:24:51 +00:00
Axel Dörfler 6e53563dac Updated to new API, some minor changes. Added "ToDo" items in the
DestroyReader/Decoder() functions - they erroneously don't put the
plugin back.
Added license.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6240 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:23:14 +00:00
Axel Dörfler 29f1f4488e Removed now unused methods, added license.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6239 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:14:47 +00:00
Axel Dörfler 68b80bbdb9 Slightly improved error reporting for CreateDecoder (now with error code).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6238 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:11:15 +00:00
Axel Dörfler 0f34281e3e The BMediaFormats class is now completely implemented. Removed wrong old
implementation and the now unused old meta_description stuff.
Also fixed the == and < operator for media_format_description.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6237 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:09:19 +00:00
Axel Dörfler b6b1e538a7 Removed all now unused functionality.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6236 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 07:06:12 +00:00
Axel Dörfler db95389956 Added a program to test the == and < operator of media_format_description.
Revealed some bugs in our previous implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6235 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 06:41:19 +00:00
Axel Dörfler b7d3f36edc "Fixed" the write_port_etc() call: it used a hardcoded 8 instead of B_RELATIVE_TIMEOUT (ts ts ts).
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6234 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 01:12:51 +00:00
Axel Dörfler 8b47303be4 Added a QueryServer() function for BMessage communication.
Added MEDIA_SERVER_GET_FORMATS for the new BMediaFormats implementation.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6233 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 01:10:46 +00:00
Axel Dörfler 0a580bde18 Added a QueryServer() function for BMessage transfer.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6232 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-23 01:06:33 +00:00
Axel Dörfler 40997e1444 Added the _PACKED attribute to the BFS on-disk structures to be sure
the compiler doesn't break anything by aligning them differently.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6215 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-21 15:57:03 +00:00
Axel Dörfler 2ed1070506 Added structureSizes to the build.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6214 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-21 15:55:15 +00:00
Axel Dörfler 0207f71894 Added a simple test program to check if the disk structure sizes change
with different compiler options - couldn't find anything, though.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6213 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-21 15:54:53 +00:00
Axel Dörfler 03df40f1df (Temporarily?) removed the private API exports that the new SoundPlay 4.8.1
uses - it does crash anyway, when we export them (and return NULL).
Asked Marco about it, we'll see what comes back :-)


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6205 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 23:32:09 +00:00
Axel Dörfler 149a6f76aa Added missing newlines.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6201 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 14:33:28 +00:00
Axel Dörfler 73ff0e8f02 Added a small test app that prints out all BMediaFormats supported media_formats,
and some other tiny things.
Will print out a meaningful error in case there is one - tests locking behaviour
of BMediaFormats::GetNextFormat() and if GetCodeFor() works correctly.
Added to the build. Removed "root" library from the rules - that one doesn't
have to be included manually.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6200 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 14:25:08 +00:00
Axel Dörfler 57263483db Somehow, -(uint32)10 didn't do what I wanted... if there were no valid
settings, the window is now set to the intended position.
Also enlarged the default window height a big, since it was a bit too
unglossed.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6199 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 11:36:27 +00:00
Axel Dörfler 0c6beeacb4 Added some debug output in case Reader::RegisterPlugin() failed.
git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6197 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 10:38:23 +00:00
Axel Dörfler 0df774c143 Fixed warnings (added newlines to the end of the file).
Removed extra "root" reference in the Jamfile - libroot.so is linked
against automatically by ld.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6196 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 10:36:52 +00:00
Axel Dörfler 09d31e11ec Now sets the mediaHeader->start_time in Decode() (hopefully correct).
Also fixed a crashing bug if the decoder was not setup with data from
the MusePackReader.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6172 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-20 01:06:43 +00:00
Axel Dörfler 9aa7863ddb Added some missing pieces to get the engine to work with our codec API.
It's even working a bit (you hear something that's at least similar to
what you should hear :).
Since the underlying engine doesn't differentiate between container and
contents, this looks like a hack, too.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6165 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-19 23:38:44 +00:00
Axel Dörfler af18100b2f Fixed class inheritance so that the decoder will be found as well.
RegisterPlugin() didn't return B_OK.
Removed unused headers.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6164 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-19 23:13:31 +00:00
Axel Dörfler e74116611d The MPC_decoder class now contains a pointer to the StreamInfo set by
SetStreamInfo() (because MusePackDecoder can use this data).
Removed some other unused lines.


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6163 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-19 23:10:29 +00:00
Axel Dörfler ed8da400c3 Fixed all warnings and did some minor style updates (only those next to
the fixed warnings :).


git-svn-id: file:///srv/svn/repos/haiku/trunk/current@6139 a95241bf-73f2-0310-859d-f6bbb57e9c96
2004-01-19 17:54:57 +00:00