mirror of
https://github.com/alsa-project/alsa-tools.git
synced 2026-03-31 07:11:16 -04:00
hdajackretask: Add new program for easy retask of hda pin nodes
Most HDA Intel soundcards are to some degree retaskable, i e can be used for more than one thing. This tool is a GUI to make it easy to retask your jacks - e g, turn your Mic jack into an extra Headphone, or why not make them both line outs and connect them to your surround receiver? Signed-off-by: David Henningsson <david.henningsson@canonical.com>
This commit is contained in:
parent
a680841d4a
commit
7aa4a74f88
9 changed files with 1586 additions and 1 deletions
63
hdajackretask/sysfs-pin-configs.h
Normal file
63
hdajackretask/sysfs-pin-configs.h
Normal file
|
|
@ -0,0 +1,63 @@
|
|||
#ifndef __SYSFS_PIN_CONFIGS_H__
|
||||
#define __SYSFS_PIN_CONFIGS_H__
|
||||
|
||||
#include <glib.h>
|
||||
|
||||
typedef struct codec_name_t {
|
||||
int card;
|
||||
int device;
|
||||
gchar* name;
|
||||
} codec_name_t;
|
||||
|
||||
typedef struct pin_configs_t {
|
||||
int nid;
|
||||
unsigned long init_pin_config;
|
||||
unsigned long driver_pin_config;
|
||||
unsigned long user_pin_config;
|
||||
unsigned long pin_caps;
|
||||
unsigned long wid_caps;
|
||||
gboolean user_override;
|
||||
gboolean driver_override;
|
||||
} pin_configs_t;
|
||||
|
||||
typedef gboolean(*caps_limit_func_t)(unsigned long, unsigned long);
|
||||
|
||||
typedef struct typical_pins_t {
|
||||
char* name;
|
||||
caps_limit_func_t caps_limit;
|
||||
unsigned long pin_set;
|
||||
unsigned long match_mask;
|
||||
unsigned long pin_set_mask;
|
||||
} typical_pins_t;
|
||||
|
||||
typedef struct free_override_t {
|
||||
const char* name;
|
||||
unsigned long value;
|
||||
} free_override_t;
|
||||
|
||||
#define FREE_OVERRIDES_COUNT 8
|
||||
|
||||
free_override_t* get_free_override_list(int type);
|
||||
unsigned long get_free_override_mask(int type);
|
||||
|
||||
int get_codec_name_list(codec_name_t* names, int entries);
|
||||
|
||||
int get_pin_configs_list(pin_configs_t* pins, int entries, int card, int device);
|
||||
|
||||
gchar* get_config_description(unsigned long config);
|
||||
|
||||
gchar* get_caps_description(unsigned long pin_caps);
|
||||
|
||||
/* 0 = Jack, 1 = N/A, 2 = Internal, 3 = Both (?!) */
|
||||
int get_port_conn(unsigned long config);
|
||||
|
||||
int get_typical_pins(typical_pins_t* result, int entries, pin_configs_t* pin_cfg, int caps_limit);
|
||||
|
||||
unsigned long actual_pin_config(pin_configs_t* pins);
|
||||
|
||||
void get_codec_header(int card, int device, unsigned int* address,
|
||||
unsigned int* codec_vendorid, unsigned int* codec_ssid);
|
||||
|
||||
gboolean find_pin_channel_match(pin_configs_t* pins, int count, unsigned long pinval);
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue