Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 99035
b: refs/heads/master
c: 105f1c2
h: refs/heads/master
i:
  99033: e5b8089
  99031: ba3b692
v: v3
  • Loading branch information
Mark Brown authored and Jaroslav Kysela committed May 19, 2008
1 parent dd13eb6 commit 3dd0c7b
Show file tree
Hide file tree
Showing 3 changed files with 74 additions and 17 deletions.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 4ba1327ab8ce179c40862f3dedb4ebaaa491d737
refs/heads/master: 105f1c28442301237d20b05a3d52d9987614016f
17 changes: 16 additions & 1 deletion trunk/include/sound/soc-dapm.h
Original file line number Diff line number Diff line change
Expand Up @@ -193,6 +193,7 @@ struct snd_soc_dapm_widget;
enum snd_soc_dapm_type;
struct snd_soc_dapm_path;
struct snd_soc_dapm_pin;
struct snd_soc_dapm_route;

/* dapm controls */
int snd_soc_dapm_put_volsw(struct snd_kcontrol *kcontrol,
Expand All @@ -210,10 +211,12 @@ int snd_soc_dapm_new_controls(struct snd_soc_codec *codec,
int num);

/* dapm path setup */
int snd_soc_dapm_connect_input(struct snd_soc_codec *codec,
int __deprecated snd_soc_dapm_connect_input(struct snd_soc_codec *codec,
const char *sink_name, const char *control_name, const char *src_name);
int snd_soc_dapm_new_widgets(struct snd_soc_codec *codec);
void snd_soc_dapm_free(struct snd_soc_device *socdev);
int snd_soc_dapm_add_routes(struct snd_soc_codec *codec,
const struct snd_soc_dapm_route *route, int num);

/* dapm events */
int snd_soc_dapm_stream_event(struct snd_soc_codec *codec, char *stream,
Expand Down Expand Up @@ -250,6 +253,18 @@ enum snd_soc_dapm_type {
snd_soc_dapm_post, /* machine specific post widget - exec last */
};

/*
* DAPM audio route definition.
*
* Defines an audio route originating at source via control and finishing
* at sink.
*/
struct snd_soc_dapm_route {
const char *sink;
const char *control;
const char *source;
};

/* dapm audio path between two widgets */
struct snd_soc_dapm_path {
char *name;
Expand Down
72 changes: 57 additions & 15 deletions trunk/sound/soc/soc-dapm.c
Original file line number Diff line number Diff line change
Expand Up @@ -841,21 +841,8 @@ int snd_soc_dapm_sync_endpoints(struct snd_soc_codec *codec)
}
EXPORT_SYMBOL_GPL(snd_soc_dapm_sync_endpoints);

/**
* snd_soc_dapm_connect_input - connect dapm widgets
* @codec: audio codec
* @sink: name of target widget
* @control: mixer control name
* @source: name of source name
*
* Connects 2 dapm widgets together via a named audio path. The sink is
* the widget receiving the audio signal, whilst the source is the sender
* of the audio signal.
*
* Returns 0 for success else error.
*/
int snd_soc_dapm_connect_input(struct snd_soc_codec *codec, const char *sink,
const char * control, const char *source)
static int snd_soc_dapm_add_route(struct snd_soc_codec *codec,
const char *sink, const char *control, const char *source)
{
struct snd_soc_dapm_path *path;
struct snd_soc_dapm_widget *wsource = NULL, *wsink = NULL, *w;
Expand Down Expand Up @@ -957,8 +944,63 @@ int snd_soc_dapm_connect_input(struct snd_soc_codec *codec, const char *sink,
kfree(path);
return ret;
}

/**
* snd_soc_dapm_connect_input - connect dapm widgets
* @codec: audio codec
* @sink: name of target widget
* @control: mixer control name
* @source: name of source name
*
* Connects 2 dapm widgets together via a named audio path. The sink is
* the widget receiving the audio signal, whilst the source is the sender
* of the audio signal.
*
* This function has been deprecated in favour of snd_soc_dapm_add_routes().
*
* Returns 0 for success else error.
*/
int snd_soc_dapm_connect_input(struct snd_soc_codec *codec, const char *sink,
const char *control, const char *source)
{
return snd_soc_dapm_add_route(codec, sink, control, source);
}
EXPORT_SYMBOL_GPL(snd_soc_dapm_connect_input);

/**
* snd_soc_dapm_add_routes - Add routes between DAPM widgets
* @codec: codec
* @route: audio routes
* @num: number of routes
*
* Connects 2 dapm widgets together via a named audio path. The sink is
* the widget receiving the audio signal, whilst the source is the sender
* of the audio signal.
*
* Returns 0 for success else error. On error all resources can be freed
* with a call to snd_soc_card_free().
*/
int snd_soc_dapm_add_routes(struct snd_soc_codec *codec,
const struct snd_soc_dapm_route *route, int num)
{
int i, ret;

for (i = 0; i < num; i++) {
ret = snd_soc_dapm_add_route(codec, route->sink,
route->control, route->source);
if (ret < 0) {
printk(KERN_ERR "Failed to add route %s->%s\n",
route->source,
route->sink);
return ret;
}
route++;
}

return 0;
}
EXPORT_SYMBOL_GPL(snd_soc_dapm_add_routes);

/**
* snd_soc_dapm_new_widgets - add new dapm widgets
* @codec: audio codec
Expand Down

0 comments on commit 3dd0c7b

Please sign in to comment.