* Updated copyright header.

* Initial implementation of suggest_thread_priority. It behaves like version from BeOS R5. 
* TODO take arguments 'period', 'jitter', and 'length' into account as well . 


git-svn-id: file:///srv/svn/repos/haiku/haiku/trunk@21825 a95241bf-73f2-0310-859d-f6bbb57e9c96
This commit is contained in:
Michael Pfeiffer 2007-08-04 16:35:19 +00:00
parent 187453512d
commit fc069a2ace

View File

@ -1,15 +1,49 @@
/*
** Copyright 2004, Jérôme Duval, korli@users.sourceforge.net. All rights reserved.
** Distributed under the terms of the Haiku License.
*/
* Copyright 2004-2007, Haiku. All rights reserved.
* Distributed under the terms of the MIT License.
*
* Authors:
* Jérôme Duval, korli@users.sourceforge.net.
* Michael Pfeiffer, laplace@users.sourceforge.net
*/
#include <scheduler.h>
static struct {
uint32 what;
int32 priority;
} gWhatPriorityArray[] = {
// highest priority first
{B_MIDI_PROCESSING, 0x78},
{B_AUDIO_RECORDING | B_AUDIO_PLAYBACK, 0x73},
{B_LIVE_AUDIO_MANIPULATION, 0x6e},
{B_VIDEO_RECORDING, 0x19},
{B_VIDEO_PLAYBACK, 0x14},
{B_USER_INPUT_HANDLING, 0x0f},
{B_LIVE_VIDEO_MANIPULATION, 0x0e},
{B_LIVE_3D_RENDERING, 0x0c},
{B_STATUS_RENDERING, 0xa},
{B_OFFLINE_PROCESSING, 0x06},
{B_NUMBER_CRUNCHING, 0x05},
{(uint32)-1, -1}
};
int32
suggest_thread_priority(uint32 what, int32 period, bigtime_t jitter, bigtime_t length)
{
return 10;
int32 priority = what == B_DEFAULT_MEDIA_PRIORITY ? 0x0a : 0;
// default priority
for (int i = 0; gWhatPriorityArray[i].what != (uint32)-1; i ++) {
if ((what & gWhatPriorityArray[i].what) != 0) {
priority = gWhatPriorityArray[i].priority;
break;
}
}
return priority;
}
bigtime_t