Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 40c6e683 authored by Nickolay's avatar Nickolay Committed by Mauro Carvalho Chehab
Browse files

V4L/DVB (6415): Restructurize volume hook and drop unused mute hook

parent de5bec6b
Loading
Loading
Loading
Loading
+14 −15
Original line number Diff line number Diff line
@@ -5,13 +5,12 @@
 * This code is placed under the terms of the GNU General Public License
 */

#include "bttv-audio-hook.h"

/* ----------------------------------------------------------------------- */
/* winview                                                                 */

#include "bttvp.h"
#include <linux/videodev.h>

static void winview_audio(struct bttv *btv, struct video_audio *v, int set)
 void winview_audio(struct bttv *btv, struct video_audio *v, int set)
{
	/* PT2254A programming Jon Tombs, jon@gte.esi.us.es */
	int bits_out, loops, vol, data;
@@ -57,7 +56,7 @@ static void winview_audio(struct bttv *btv, struct video_audio *v, int set)
/* mono/stereo control for various cards (which don't use i2c chips but    */
/* connect something to the GPIO pins                                      */

static void
 void
gvbctv3pci_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned int con = 0;
@@ -79,7 +78,7 @@ gvbctv3pci_audio(struct bttv *btv, struct video_audio *v, int set)
	}
}

static void
 void
gvbctv5pci_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned int val, con;
@@ -142,7 +141,7 @@ gvbctv5pci_audio(struct bttv *btv, struct video_audio *v, int set)
 * handles this with a tda9840
 *
 */
static void
 void
avermedia_tvphone_audio(struct bttv *btv, struct video_audio *v, int set)
{
	int val = 0;
@@ -164,7 +163,7 @@ avermedia_tvphone_audio(struct bttv *btv, struct video_audio *v, int set)
	}
}

static void
 void
avermedia_tv_stereo_audio(struct bttv *btv, struct video_audio *v, int set)
{
	int val = 0;
@@ -185,7 +184,7 @@ avermedia_tv_stereo_audio(struct bttv *btv, struct video_audio *v, int set)
}

/* Lifetec 9415 handling */
static void
 void
lt9415_audio(struct bttv *btv, struct video_audio *v, int set)
{
	int val = 0;
@@ -215,7 +214,7 @@ lt9415_audio(struct bttv *btv, struct video_audio *v, int set)
}

/* TDA9821 on TerraTV+ Bt848, Bt878 */
static void
 void
terratv_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned int con = 0;
@@ -235,7 +234,7 @@ terratv_audio(struct bttv *btv, struct video_audio *v, int set)
	}
}

static void
 void
winfast2000_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned long val = 0;
@@ -269,7 +268,7 @@ winfast2000_audio(struct bttv *btv, struct video_audio *v, int set)
 * Note: There are card variants without tda9874a. Forcing the "stereo sound route"
 *       will mute this cards.
 */
static void
 void
pvbt878p9b_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned int val = 0;
@@ -301,7 +300,7 @@ pvbt878p9b_audio(struct bttv *btv, struct video_audio *v, int set)
 * sound control for FlyVideo 2000S (with tda9874 decoder)
 * based on pvbt878p9b_audio() - this is not tested, please fix!!!
 */
static void
 void
fv2000s_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned int val = 0xffff;
@@ -332,7 +331,7 @@ fv2000s_audio(struct bttv *btv, struct video_audio *v, int set)
 * sound control for Canopus WinDVR PCI
 * Masaki Suzuki <masaki@btree.org>
 */
static void
 void
windvr_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned long val = 0;
@@ -361,7 +360,7 @@ windvr_audio(struct bttv *btv, struct video_audio *v, int set)
 * sound control for AD-TVK503
 * Hiroshi Takekawa <sian@big.or.jp>
 */
static void
 void
adtvk503_audio(struct bttv *btv, struct video_audio *v, int set)
{
	unsigned int con = 0xffffff;
+3 −28
Original line number Diff line number Diff line
@@ -1434,23 +1434,13 @@ static void bttv_reinit_bt848(struct bttv *btv)

static int get_control(struct bttv *btv, struct v4l2_control *c)
{
	int i;

	for (i = 0; i < BTTV_CTLS; i++)
		if (bttv_ctls[i].id == c->id)
			break;
	if (i == BTTV_CTLS)
		return -EINVAL;
#ifdef CONFIG_VIDEO_V4L1
	if (btv->audio_hook && i >= 4 && i <= 8) {
	if (btv->audio_hook && (c->id == V4L2_CID_AUDIO_VOLUME)) {
		struct video_audio va;

		memset(&va,0,sizeof(va));
		btv->audio_hook(btv,&va,0);
		switch (c->id) {
		case V4L2_CID_AUDIO_MUTE:
			c->value = (VIDEO_AUDIO_MUTE & va.flags) ? 1 : 0;
			break;
		case V4L2_CID_AUDIO_VOLUME:
			c->value = va.volume;
			break;
@@ -1521,30 +1511,15 @@ static int get_control(struct bttv *btv, struct v4l2_control *c)

static int set_control(struct bttv *btv, struct v4l2_control *c)
{
	int i,val;
	int val;

	for (i = 0; i < BTTV_CTLS; i++)
		if (bttv_ctls[i].id == c->id)
			break;
	if (i == BTTV_CTLS)
		return -EINVAL;
#ifdef CONFIG_VIDEO_V4L1
	if (btv->audio_hook && i >= 4 && i <= 8) {
	if (btv->audio_hook && (c->id == V4L2_CID_AUDIO_VOLUME)) {
		struct video_audio va;

		memset(&va,0,sizeof(va));
		btv->audio_hook(btv,&va,0);
		switch (c->id) {
		case V4L2_CID_AUDIO_MUTE:
			if (c->value) {
				va.flags |= VIDEO_AUDIO_MUTE;
				audio_mute(btv, 1);
			} else {
				va.flags &= ~VIDEO_AUDIO_MUTE;
				audio_mute(btv, 0);
			}
			break;

		case V4L2_CID_AUDIO_VOLUME:
			va.volume = c->value;
			break;