/*
margi.h
Copyright (C) Marcus Metzler for convergence integrated media.
This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.
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.
You should have received a copy of the GNU General Public License
along with this program; if not, write to the Free Software
Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
*/
#ifndef margi_cs_h
#define margi_cs_h
#include "cardbase.h"
#include <linux/kernel.h>
#include <linux/init.h>
#include <linux/sched.h>
#include <linux/ptrace.h>
#include <linux/malloc.h>
#include <linux/string.h>
#include <linux/timer.h>
#include <linux/delay.h>
#include <asm/io.h>
#include <asm/system.h>
//#include <linux/videodev.h>
/*
PES
*/
#define PROG_STREAM_MAP 0xBC
#define PRIVATE_STREAM1 0xBD
#define PADDING_STREAM 0xBE
#define PRIVATE_STREAM2 0xBF
#define AUDIO_STREAM_S 0xC0
#define AUDIO_STREAM_E 0xDF
#define VIDEO_STREAM_S 0xE0
#define VIDEO_STREAM_E 0xEF
#define ECM_STREAM 0xF0
#define EMM_STREAM 0xF1
#define DSM_CC_STREAM 0xF2
#define ISO13522_STREAM 0xF3
#define PROG_STREAM_DIR 0xFF
#define PBUFFER 100
enum{AUDIO, VIDEO};
typedef struct p2t_s{
u8 pes[PBUFFER];
int type;
long int pos;
int frags;
} p2t_t;
u_char read_indexed_register(struct cvdv_cards *card, int addr);
void write_indexed_register(struct cvdv_cards *card, int addr,
u_char data);
void WriteByte(struct cvdv_cards *card, int addr, u_char data);
u_char ReadByte(struct cvdv_cards *card, int addr);
void MaskByte(struct cvdv_cards *card, int addr, u_char mask, u_char bits);
int MargiFreeBuffers(struct cvdv_cards *card);
int MargiSetBuffers(struct cvdv_cards *card, u32 size);
int MargiFlush (struct cvdv_cards *card);
int MargiPush(struct cvdv_cards *card, int count, const char *data);
int DecoderStartChannel(struct cvdv_cards *card);
int DecoderStopChannel(struct cvdv_cards *card);
void DACSetFrequency(struct cvdv_cards *card, int khz, int multiple);
stream_type get_stream_type(struct cvdv_cards *card);
audio_type get_audio_type(struct cvdv_cards *card);
#endif
LinuxTV legacy CVS <linuxtv.org/cvs>