All pastes #770703 Raw Edit

Unnamed

public text v1 · immutable
·published 2007-11-12 14:55 UTC
rendered paste body
/*
 * This file is autogenerated with bcop:
 * The Compiz option code generator
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 */

#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include <compiz-core.h>

#include "3d_options.h"

static int displayPrivateIndex;

static CompMetadata tdOptionsMetadata;

static CompPluginVTable *tdPluginVTable = NULL;
CompPluginVTable tdOptionsVTable;

#define GET_TD_OPTIONS_DISPLAY(d) \
        ((TdOptionsDisplay *) (d)->base.privates[displayPrivateIndex].ptr)

#define TD_OPTIONS_DISPLAY(d) \
        TdOptionsDisplay *od = GET_TD_OPTIONS_DISPLAY (d)

#define GET_TD_OPTIONS_SCREEN(s, od) \
        ((TdOptionsScreen *) (s)->base.privates[(od)->screenPrivateIndex].ptr)

#define TD_OPTIONS_SCREEN(s) \
        TdOptionsScreen *os = GET_TD_OPTIONS_SCREEN (s, GET_TD_OPTIONS_DISPLAY (s->display))

typedef struct _TdOptionsDisplay
{
    int screenPrivateIndex;

} TdOptionsDisplay;

typedef struct _TdOptionsScreen
{
    CompOption opt[TdScreenOptionNum];
    tdScreenOptionChangeNotifyProc notify[TdScreenOptionNum];
} TdOptionsScreen;

CompMatch * tdGetWindowMatch (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionWindowMatch].value.match;
}

CompOption * tdGetWindowMatchOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionWindowMatch];
}

void tdSetWindowMatchNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionWindowMatch] = notify;
}

float tdGetSpace (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionSpace].value.f;
}

CompOption * tdGetSpaceOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionSpace];
}

void tdSetSpaceNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionSpace] = notify;
}

float tdGetSpeed (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionSpeed].value.f;
}

CompOption * tdGetSpeedOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionSpeed];
}

void tdSetSpeedNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionSpeed] = notify;
}

float tdGetWidth (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionWidth].value.f;
}

CompOption * tdGetWidthOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionWidth];
}

void tdSetWidthNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionWidth] = notify;
}

Bool tdGetMipmaps (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionMipmaps].value.b;
}

CompOption * tdGetMipmapsOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionMipmaps];
}

void tdSetMipmapsNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionMipmaps] = notify;
}

Bool tdGetDisableCulling (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionDisableCulling].value.b;
}

CompOption * tdGetDisableCullingOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionDisableCulling];
}

void tdSetDisableCullingNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionDisableCulling] = notify;
}

Bool tdGetDisableCaps (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionDisableCaps].value.b;
}

CompOption * tdGetDisableCapsOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionDisableCaps];
}

void tdSetDisableCapsNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionDisableCaps] = notify;
}

Bool tdGetManualOnly (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionManualOnly].value.b;
}

CompOption * tdGetManualOnlyOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionManualOnly];
}

void tdSetManualOnlyNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionManualOnly] = notify;
}

int tdGetBevel (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionBevel].value.i;
}

CompOption * tdGetBevelOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionBevel];
}

void tdSetBevelNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionBevel] = notify;
}

Bool tdGetBevelTopleft (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionBevelTopleft].value.b;
}

CompOption * tdGetBevelTopleftOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionBevelTopleft];
}

void tdSetBevelTopleftNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionBevelTopleft] = notify;
}

Bool tdGetBevelTopright (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionBevelTopright].value.b;
}

CompOption * tdGetBevelToprightOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionBevelTopright];
}

void tdSetBevelToprightNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionBevelTopright] = notify;
}

Bool tdGetBevelBottomleft (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionBevelBottomleft].value.b;
}

CompOption * tdGetBevelBottomleftOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionBevelBottomleft];
}

void tdSetBevelBottomleftNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionBevelBottomleft] = notify;
}

Bool tdGetBevelBottomright (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return os->opt[TdScreenOptionBevelBottomright].value.b;
}

CompOption * tdGetBevelBottomrightOption (CompScreen *s)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[TdScreenOptionBevelBottomright];
}

void tdSetBevelBottomrightNotify (CompScreen *s, tdScreenOptionChangeNotifyProc notify)
{
    TD_OPTIONS_SCREEN(s);
    os->notify[TdScreenOptionBevelBottomright] = notify;
}

CompOption * tdGetScreenOption (CompScreen *s, TdScreenOptions num)
{
    TD_OPTIONS_SCREEN(s);
    return &os->opt[num];
}

static const CompMetadataOptionInfo tdOptionsScreenOptionInfo[] = {
    { "window_match", "match", 0, 0, 0 },
    { "space", "float", "<min>0.0</min><max>1.0</max>", 0, 0 },
    { "speed", "float", "<min>0.0</min><max>1.0</max>", 0, 0 },
    { "width", "float", "<min>0.0</min><max>1.0</max>", 0, 0 },
    { "mipmaps", "bool", 0, 0, 0 },
    { "disable_culling", "bool", 0, 0, 0 },
    { "disable_caps", "bool", 0, 0, 0 },
    { "manual_only", "bool", 0, 0, 0 },
    { "bevel", "int", "<min>0</min><max>20</max>", 0, 0 },
    { "bevel_topleft", "bool", 0, 0, 0 },
    { "bevel_topright", "bool", 0, 0, 0 },
    { "bevel_bottomleft", "bool", 0, 0, 0 },
    { "bevel_bottomright", "bool", 0, 0, 0 },
};

static Bool tdOptionsSetScreenOption (CompPlugin *plugin, CompScreen *s, const char *name, CompOptionValue *value)
{
    TD_OPTIONS_SCREEN(s);
    CompOption *o;
    int        index;

    o = compFindOption (os->opt, TdScreenOptionNum, name, &index);

    if (!o)
        return FALSE;

    switch (index)
    {
     case TdScreenOptionWindowMatch:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionWindowMatch])
                (*os->notify[TdScreenOptionWindowMatch]) (s, o, TdScreenOptionWindowMatch);
            return TRUE;
        }
        break;
     case TdScreenOptionSpace:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionSpace])
                (*os->notify[TdScreenOptionSpace]) (s, o, TdScreenOptionSpace);
            return TRUE;
        }
        break;
     case TdScreenOptionSpeed:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionSpeed])
                (*os->notify[TdScreenOptionSpeed]) (s, o, TdScreenOptionSpeed);
            return TRUE;
        }
        break;
     case TdScreenOptionWidth:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionWidth])
                (*os->notify[TdScreenOptionWidth]) (s, o, TdScreenOptionWidth);
            return TRUE;
        }
        break;
     case TdScreenOptionMipmaps:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionMipmaps])
                (*os->notify[TdScreenOptionMipmaps]) (s, o, TdScreenOptionMipmaps);
            return TRUE;
        }
        break;
     case TdScreenOptionDisableCulling:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionDisableCulling])
                (*os->notify[TdScreenOptionDisableCulling]) (s, o, TdScreenOptionDisableCulling);
            return TRUE;
        }
        break;
     case TdScreenOptionDisableCaps:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionDisableCaps])
                (*os->notify[TdScreenOptionDisableCaps]) (s, o, TdScreenOptionDisableCaps);
            return TRUE;
        }
        break;
     case TdScreenOptionManualOnly:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionManualOnly])
                (*os->notify[TdScreenOptionManualOnly]) (s, o, TdScreenOptionManualOnly);
            return TRUE;
        }
        break;
     case TdScreenOptionBevel:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionBevel])
                (*os->notify[TdScreenOptionBevel]) (s, o, TdScreenOptionBevel);
            return TRUE;
        }
        break;
     case TdScreenOptionBevelTopleft:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionBevelTopleft])
                (*os->notify[TdScreenOptionBevelTopleft]) (s, o, TdScreenOptionBevelTopleft);
            return TRUE;
        }
        break;
     case TdScreenOptionBevelTopright:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionBevelTopright])
                (*os->notify[TdScreenOptionBevelTopright]) (s, o, TdScreenOptionBevelTopright);
            return TRUE;
        }
        break;
     case TdScreenOptionBevelBottomleft:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionBevelBottomleft])
                (*os->notify[TdScreenOptionBevelBottomleft]) (s, o, TdScreenOptionBevelBottomleft);
            return TRUE;
        }
        break;
     case TdScreenOptionBevelBottomright:
        if (compSetScreenOption (s, o, value))
        {
            if (os->notify[TdScreenOptionBevelBottomright])
                (*os->notify[TdScreenOptionBevelBottomright]) (s, o, TdScreenOptionBevelBottomright);
            return TRUE;
        }
        break;
    default:
        break;
    }
    return FALSE;
}

static CompOption * tdOptionsGetScreenOptions (CompPlugin *plugin, CompScreen *s, int *count)
{
    TD_OPTIONS_SCREEN(s);
    *count = TdScreenOptionNum;
    return os->opt;
}

static Bool tdOptionsInitScreen (CompPlugin *p, CompScreen *s)
{
    TdOptionsScreen *os;
    
    TD_OPTIONS_DISPLAY (s->display);

    os = calloc (1, sizeof(TdOptionsScreen));
    if (!os)
        return FALSE;

    s->base.privates[od->screenPrivateIndex].ptr = os;

    if (!compInitScreenOptionsFromMetadata (s, &tdOptionsMetadata, tdOptionsScreenOptionInfo, os->opt, TdScreenOptionNum))
    {
        free (os);
        return FALSE;
    }

    return TRUE;
}

static void tdOptionsFiniScreen (CompPlugin *p, CompScreen *s)
{
    TD_OPTIONS_SCREEN (s);


    compFiniScreenOptions (s, os->opt, TdScreenOptionNum);

    free (os);
}

static Bool tdOptionsInitDisplay (CompPlugin *p, CompDisplay *d)
{
    TdOptionsDisplay *od;
   
    
    od = calloc (1, sizeof(TdOptionsDisplay));
    if (!od)
        return FALSE;

    od->screenPrivateIndex = allocateScreenPrivateIndex(d);
    if (od->screenPrivateIndex < 0)
    {
        free(od);
        return FALSE;
    }

    d->base.privates[displayPrivateIndex].ptr = od;

    
    return TRUE;
}

static void tdOptionsFiniDisplay (CompPlugin *p, CompDisplay *d)
{
    TD_OPTIONS_DISPLAY (d);

    freeScreenPrivateIndex(d, od->screenPrivateIndex);
    free (od);
}

static Bool tdOptionsInit (CompPlugin *p)
{
    displayPrivateIndex = allocateDisplayPrivateIndex();
    if (displayPrivateIndex < 0)
        return FALSE;

    if (!compInitPluginMetadataFromInfo (&tdOptionsMetadata, "3d",0, 0, tdOptionsScreenOptionInfo, TdScreenOptionNum))
        return FALSE;

    compAddMetadataFromFile (&tdOptionsMetadata, "3d");
    if (tdPluginVTable && tdPluginVTable->init)
        return tdPluginVTable->init (p);
    return TRUE;
}

static void tdOptionsFini (CompPlugin *p)
{
    if (tdPluginVTable && tdPluginVTable->fini)
        return tdPluginVTable->fini (p);

    if (displayPrivateIndex >= 0)
        freeDisplayPrivateIndex(displayPrivateIndex);

    compFiniMetadata (&tdOptionsMetadata);
}

static CompBool tdOptionsInitObject (CompPlugin *p, CompObject *o)
{
    static InitPluginObjectProc dispTab[] = {
        (InitPluginObjectProc) 0,
        (InitPluginObjectProc) tdOptionsInitDisplay,
        (InitPluginObjectProc) tdOptionsInitScreen
    };

    RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), TRUE, (p, o));
}

static void tdOptionsFiniObject (CompPlugin *p, CompObject *o)
{
    static FiniPluginObjectProc dispTab[] = {
        (FiniPluginObjectProc) 0,
        (FiniPluginObjectProc) tdOptionsFiniDisplay,
        (FiniPluginObjectProc) tdOptionsFiniScreen
    };

    DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), (p, o));
}

static CompBool tdOptionsInitObjectWrapper (CompPlugin *p, CompObject *o)
{
    CompBool rv = TRUE;
    rv = tdOptionsInitObject (p, o);
    if (tdPluginVTable->initObject)
        rv &= tdPluginVTable->initObject (p, o);
    return rv;
}

static void tdOptionsFiniObjectWrapper (CompPlugin *p, CompObject *o)
{
    if (tdPluginVTable->finiObject)
        tdPluginVTable->finiObject (p, o);
    tdOptionsFiniObject (p, o);
}

static CompOption * tdOptionsGetObjectOptions (CompPlugin *p, CompObject *o, int *count)
{
    static GetPluginObjectOptionsProc dispTab[] = {
        (GetPluginObjectOptionsProc) 0,
            (GetPluginObjectOptionsProc) 0,
        (GetPluginObjectOptionsProc) tdOptionsGetScreenOptions
    };

    RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab),
		     (void *) (*count = 0), (p, o, count));
}

static CompBool tdOptionsSetObjectOption (CompPlugin *p, CompObject *o, const char *name, CompOptionValue *value)
{
    static SetPluginObjectOptionProc dispTab[] = {
        (SetPluginObjectOptionProc) 0,
        (SetPluginObjectOptionProc) 0,
        (SetPluginObjectOptionProc) tdOptionsSetScreenOption
    };

    RETURN_DISPATCH (o, dispTab, ARRAY_SIZE (dispTab), FALSE,
		     (p, o, name, value));
}

static CompMetadata *
tdOptionsGetMetadata (CompPlugin *plugin)
{
    return &tdOptionsMetadata;
}

CompPluginVTable *getCompPluginInfo20070830 (void)
{
    if (!tdPluginVTable)
    {
        tdPluginVTable = getCompPluginInfo ();
        memcpy(&tdOptionsVTable, tdPluginVTable, sizeof(CompPluginVTable));
        tdOptionsVTable.getMetadata = tdOptionsGetMetadata;
        tdOptionsVTable.init = tdOptionsInit;
        tdOptionsVTable.fini = tdOptionsFini;
        tdOptionsVTable.initObject = tdOptionsInitObjectWrapper;
        tdOptionsVTable.finiObject = tdOptionsFiniObjectWrapper;
        tdOptionsVTable.getObjectOptions = tdOptionsGetObjectOptions;
	tdOptionsVTable.setObjectOption = tdOptionsSetObjectOption;
	
    }
    return &tdOptionsVTable;
}