kdrive: Simplify the adaptor setup interface.
Now that we don't have to worry about the generic adaptors code, there's no need to have a list of pointers to different sets of adaptors. Signed-off-by: Eric Anholt <eric@anholt.net> Reviewed-by: Adam Jackson <ajax@redhat.com>
This commit is contained in:
parent
55aad7399d
commit
a5662193f1
|
@ -613,8 +613,6 @@ static Bool
|
|||
ephyrXVPrivRegisterAdaptors(EphyrXVPriv * a_this, ScreenPtr a_screen)
|
||||
{
|
||||
Bool is_ok = FALSE;
|
||||
KdVideoAdaptorPtr *adaptors = NULL, *registered_adaptors = NULL;
|
||||
int num_registered_adaptors = 0, i = 0, num_adaptors = 0;
|
||||
|
||||
EPHYR_RETURN_VAL_IF_FAIL(a_this && a_screen, FALSE);
|
||||
|
||||
|
@ -623,28 +621,14 @@ ephyrXVPrivRegisterAdaptors(EphyrXVPriv * a_this, ScreenPtr a_screen)
|
|||
if (!a_this->num_adaptors)
|
||||
goto out;
|
||||
|
||||
num_adaptors = a_this->num_adaptors;
|
||||
adaptors = calloc(num_adaptors, sizeof(KdVideoAdaptorPtr));
|
||||
if (!adaptors) {
|
||||
EPHYR_LOG_ERROR("failed to allocate adaptors tab\n");
|
||||
goto out;
|
||||
}
|
||||
memmove(adaptors, registered_adaptors, num_registered_adaptors);
|
||||
for (i = 0; i < a_this->num_adaptors; i++) {
|
||||
*(adaptors + num_registered_adaptors + i) = &a_this->adaptors[i];
|
||||
}
|
||||
if (!KdXVScreenInit(a_screen, adaptors, num_adaptors)) {
|
||||
if (!KdXVScreenInit(a_screen, a_this->adaptors, a_this->num_adaptors)) {
|
||||
EPHYR_LOG_ERROR("failed to register adaptors\n");
|
||||
goto out;
|
||||
}
|
||||
EPHYR_LOG("there are %d registered adaptors\n", num_adaptors);
|
||||
EPHYR_LOG("there are %d registered adaptors\n", a_this->num_adaptors);
|
||||
is_ok = TRUE;
|
||||
|
||||
out:
|
||||
free(registered_adaptors);
|
||||
registered_adaptors = NULL;
|
||||
free(adaptors);
|
||||
adaptors = NULL;
|
||||
|
||||
EPHYR_LOG("leave\n");
|
||||
return is_ok;
|
||||
|
|
|
@ -98,7 +98,7 @@ static void KdXVWindowExposures(WindowPtr pWin, RegionPtr r1, RegionPtr r2);
|
|||
static void KdXVClipNotify(WindowPtr pWin, int dx, int dy);
|
||||
|
||||
/* misc */
|
||||
static Bool KdXVInitAdaptors(ScreenPtr, KdVideoAdaptorPtr *, int);
|
||||
static Bool KdXVInitAdaptors(ScreenPtr, KdVideoAdaptorPtr, int);
|
||||
|
||||
static DevPrivateKeyRec KdXVWindowKeyRec;
|
||||
|
||||
|
@ -129,7 +129,7 @@ KdXVFreeVideoAdaptorRec(KdVideoAdaptorPtr ptr)
|
|||
}
|
||||
|
||||
Bool
|
||||
KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr * adaptors, int num)
|
||||
KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr adaptors, int num)
|
||||
{
|
||||
KdXVScreenPtr ScreenPriv;
|
||||
XvScreenPtr pxvs;
|
||||
|
@ -239,7 +239,7 @@ KdXVFreeAdaptor(XvAdaptorPtr pAdaptor)
|
|||
}
|
||||
|
||||
static Bool
|
||||
KdXVInitAdaptors(ScreenPtr pScreen, KdVideoAdaptorPtr * infoPtr, int number)
|
||||
KdXVInitAdaptors(ScreenPtr pScreen, KdVideoAdaptorPtr infoPtr, int number)
|
||||
{
|
||||
KdScreenPriv(pScreen);
|
||||
KdScreenInfo *screen = pScreenPriv->screen;
|
||||
|
@ -268,7 +268,7 @@ KdXVInitAdaptors(ScreenPtr pScreen, KdVideoAdaptorPtr * infoPtr, int number)
|
|||
return FALSE;
|
||||
|
||||
for (pa = pAdaptor, na = 0, numAdaptor = 0; na < number; na++, adaptorPtr++) {
|
||||
adaptorPtr = infoPtr[na];
|
||||
adaptorPtr = &infoPtr[na];
|
||||
|
||||
if (!adaptorPtr->StopVideo || !adaptorPtr->SetPortAttribute ||
|
||||
!adaptorPtr->GetPortAttribute || !adaptorPtr->QueryBestSize)
|
||||
|
|
|
@ -157,7 +157,7 @@ typedef struct {
|
|||
} KdVideoAdaptorRec, *KdVideoAdaptorPtr;
|
||||
|
||||
Bool
|
||||
KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr * Adaptors, int num);
|
||||
KdXVScreenInit(ScreenPtr pScreen, KdVideoAdaptorPtr Adaptors, int num);
|
||||
|
||||
void
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user