V4L/DVB: cx18, cx23885, v4l2 doc, MAINTAINERS: Update Andy Walls' email address
[safe/jmp/linux-2.6] / drivers / media / video / cx18 / cx18-driver.h
index 930bab6..9bc51a9 100644 (file)
@@ -4,7 +4,7 @@
  *  Derived from ivtv-driver.h
  *
  *  Copyright (C) 2007  Hans Verkuil <hverkuil@xs4all.nl>
- *  Copyright (C) 2008  Andy Walls <awalls@radix.net>
+ *  Copyright (C) 2008  Andy Walls <awalls@md.metrocast.net>
  *
  *  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
@@ -42,6 +42,7 @@
 #include <linux/pagemap.h>
 #include <linux/workqueue.h>
 #include <linux/mutex.h>
+#include <linux/slab.h>
 #include <asm/byteorder.h>
 
 #include <linux/dvb/video.h>
@@ -246,16 +247,8 @@ struct cx18_enc_idx_entry {
 #define CX18_WARN_DEV(dev, fmt, args...)     v4l2_warn(dev, fmt , ## args)
 #define CX18_INFO_DEV(dev, fmt, args...)     v4l2_info(dev, fmt , ## args)
 
-/* Values for CX18_API_DEC_PLAYBACK_SPEED mpeg_frame_type_mask parameter: */
-#define MPEG_FRAME_TYPE_IFRAME 1
-#define MPEG_FRAME_TYPE_IFRAME_PFRAME 3
-#define MPEG_FRAME_TYPE_ALL 7
-
-#define CX18_MAX_PGM_INDEX (400)
-
 extern int cx18_debug;
 
-
 struct cx18_options {
        int megabytes[CX18_MAX_STREAMS]; /* Size in megabytes of each stream */
        int cardtype;           /* force card type on load */
@@ -582,6 +575,10 @@ struct cx18 {
        int stream_buffers[CX18_MAX_STREAMS]; /* # of buffers for each stream */
        int stream_buf_size[CX18_MAX_STREAMS]; /* Stream buffer size */
        struct cx18_stream streams[CX18_MAX_STREAMS];   /* Stream data */
+       struct snd_cx18_card *alsa; /* ALSA interface for PCM capture stream */
+       void (*pcm_announce_callback)(struct snd_cx18_card *card, u8 *pcm_data,
+                                     size_t num_bytes);
+
        unsigned long i_flags;  /* global cx18 flags */
        atomic_t ana_capturing; /* count number of active analog capture streams */
        atomic_t tot_capturing; /* total count number of active capture streams */
@@ -599,12 +596,6 @@ struct cx18 {
 
        struct vbi_info vbi;
 
-       u32 pgm_info_offset;
-       u32 pgm_info_num;
-       u32 pgm_info_write_idx;
-       u32 pgm_info_read_idx;
-       struct v4l2_enc_idx_entry pgm_info[CX18_MAX_PGM_INDEX];
-
        u64 mpg_data_received;
        u64 vbi_data_inserted;
 
@@ -647,6 +638,9 @@ struct cx18 {
        u32 active_input;
        v4l2_std_id std;
        v4l2_std_id tuner_std;  /* The norm of the tuner (fixed) */
+
+       /* Used for cx18-alsa module loading */
+       struct work_struct request_module_wk;
 };
 
 static inline struct cx18 *to_cx18(struct v4l2_device *v4l2_dev)
@@ -654,6 +648,9 @@ static inline struct cx18 *to_cx18(struct v4l2_device *v4l2_dev)
        return container_of(v4l2_dev, struct cx18, v4l2_dev);
 }
 
+/* cx18 extensions to be loaded */
+extern int (*cx18_ext_init)(struct cx18 *);
+
 /* Globals */
 extern int cx18_first_minor;