view libaf/af_dummy.c @ 27375:80d93ca55238

Add video driver for Nintendo Wii/GameCube. Original patch by Jing Liu <fatersh-1@yahoo.com>, based on vo_fbdev.c and adapted to Nintendo's specific GPU. This driver handles dedicated ATI GPU, which can be found in: - Nintendo GameCube (ATI LSI Flipper @ 162 MHz) - Nintendo Wii (ATI Hollywood @ 243 MHz) Flipper and Hollywood chipsets are pretty similar, except from clock speed: - Embedded framebuffer is 2MB. - Texture cache is 1MB. - Vertex cache is 0.1 MB. - Framebuffer is YUY2, not RGB. - Best resolution is 480p (854x480)
author ben
date Sun, 03 Aug 2008 20:04:03 +0000
parents b2402b4f0afa
children 72d0b1444141
line wrap: on
line source

/* The name speaks for itself this filter is a dummy and will not blow
   up regardless of what you do with it. */
#include <stdio.h>
#include <stdlib.h>
#include <string.h>

#include "af.h"

// Initialization and runtime control
static int control(struct af_instance_s* af, int cmd, void* arg)
{
  switch(cmd){
  case AF_CONTROL_REINIT:
    memcpy(af->data,(af_data_t*)arg,sizeof(af_data_t));
    af_msg(AF_MSG_VERBOSE,"[dummy] Was reinitialized: %iHz/%ich/%s\n",
	af->data->rate,af->data->nch,af_fmt2str_short(af->data->format));
    return AF_OK;
  }
  return AF_UNKNOWN;
}

// Deallocate memory 
static void uninit(struct af_instance_s* af)
{
  if(af->data)
    free(af->data);
}

// Filter data through filter
static af_data_t* play(struct af_instance_s* af, af_data_t* data)
{
  // Do something necessary to get rid of annoying warning during compile
  if(!af)
    af_msg(AF_MSG_ERROR,"EEEK: Argument af == NULL in af_dummy.c play().");
  return data;
}

// Allocate memory and set function pointers
static int af_open(af_instance_t* af){
  af->control=control;
  af->uninit=uninit;
  af->play=play;
  af->mul=1;
  af->data=malloc(sizeof(af_data_t));
  if(af->data == NULL)
    return AF_ERROR;
  return AF_OK;
}

// Description of this filter
af_info_t af_info_dummy = {
    "dummy",
    "dummy",
    "Anders",
    "",
    AF_FLAGS_REENTRANT,
    af_open
};