mirror of
https://gitlab.freedesktop.org/pipewire/pipewire.git
synced 2025-12-14 08:56:37 -05:00
Fix typos
This commit is contained in:
parent
379068c31d
commit
47ef2b6b09
35 changed files with 53 additions and 53 deletions
12
NEWS
12
NEWS
|
|
@ -68,7 +68,7 @@ with previous 0.3.x releases.
|
||||||
default.
|
default.
|
||||||
|
|
||||||
- JACK
|
- JACK
|
||||||
- JACK developement files can now optionally be installed.
|
- JACK development files can now optionally be installed.
|
||||||
|
|
||||||
|
|
||||||
Older versions:
|
Older versions:
|
||||||
|
|
@ -86,7 +86,7 @@ with previous 0.3.x releases.
|
||||||
- volume restore for virtual sinks/sources or other sink/sources
|
- volume restore for virtual sinks/sources or other sink/sources
|
||||||
without hardware volume.
|
without hardware volume.
|
||||||
- Fix cracks and pops in audio capture.
|
- Fix cracks and pops in audio capture.
|
||||||
- Many bluetooth improvements and compatibity fixes.
|
- Many bluetooth improvements and compatibility fixes.
|
||||||
|
|
||||||
|
|
||||||
- PipeWire improvements
|
- PipeWire improvements
|
||||||
|
|
@ -871,7 +871,7 @@ with previous 0.3.x releases.
|
||||||
- Don't ever block the server, use non-blocking IO everywhere.
|
- Don't ever block the server, use non-blocking IO everywhere.
|
||||||
- Fill description of profiles with the name if not otherwise set,
|
- Fill description of profiles with the name if not otherwise set,
|
||||||
this fixes a crash in pavucontrol.
|
this fixes a crash in pavucontrol.
|
||||||
- the connection debug catergory will now also debug pulse
|
- the connection debug category will now also debug pulse
|
||||||
messages.
|
messages.
|
||||||
- Respect the no_remix flag to make the control panel channel
|
- Respect the no_remix flag to make the control panel channel
|
||||||
check work.
|
check work.
|
||||||
|
|
@ -1159,7 +1159,7 @@ with previous 0.3.x releases.
|
||||||
* improve default source and sink handling. It was not updated
|
* improve default source and sink handling. It was not updated
|
||||||
correctly in all cases.
|
correctly in all cases.
|
||||||
* add samplerate and period to the pw-jack wrapper to easily
|
* add samplerate and period to the pw-jack wrapper to easily
|
||||||
configure the desired samplerate and perdiod for the app.
|
configure the desired samplerate and period for the app.
|
||||||
|
|
||||||
- ALSA plugin improvements
|
- ALSA plugin improvements
|
||||||
* Add a mixer entry in the alsa config file.
|
* Add a mixer entry in the alsa config file.
|
||||||
|
|
@ -1750,7 +1750,7 @@ PipeWire 0.2.6
|
||||||
- Permissions of objects are now combined with parent permissions
|
- Permissions of objects are now combined with parent permissions
|
||||||
- Remove libv4l2 dependency, it is not used
|
- Remove libv4l2 dependency, it is not used
|
||||||
- Improve format negotiation in autolink #146
|
- Improve format negotiation in autolink #146
|
||||||
- Try to avoid list corruption with event emmission #143
|
- Try to avoid list corruption with event emission #143
|
||||||
- Fix destroy of client-node memory corruption
|
- Fix destroy of client-node memory corruption
|
||||||
- Various small improvements
|
- Various small improvements
|
||||||
|
|
||||||
|
|
@ -1769,7 +1769,7 @@ PipeWire 0.2.4
|
||||||
- Install man pages in right directory
|
- Install man pages in right directory
|
||||||
- Add systemd socket activation
|
- Add systemd socket activation
|
||||||
- Various memory leak and corruption fixes in properties, dbus and
|
- Various memory leak and corruption fixes in properties, dbus and
|
||||||
buffer mmaped memory.
|
buffer mmapped memory.
|
||||||
- Fix v4l2 crash on unplug
|
- Fix v4l2 crash on unplug
|
||||||
- improve stream cleanup
|
- improve stream cleanup
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -74,7 +74,7 @@ $ pw-jack <appname>
|
||||||
If you replaced JACK with PipeWire completely, `pw-jack` does not have any
|
If you replaced JACK with PipeWire completely, `pw-jack` does not have any
|
||||||
effect and can be omitted.
|
effect and can be omitted.
|
||||||
|
|
||||||
JACK applications will automatically use the buffer-size choosen by the
|
JACK applications will automatically use the buffer-size chosen by the
|
||||||
server. You can force a maximum buffer size (latency) by setting the
|
server. You can force a maximum buffer size (latency) by setting the
|
||||||
`PIPEWIRE_LATENCY` environment variable like so:
|
`PIPEWIRE_LATENCY` environment variable like so:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -675,7 +675,7 @@ SHOW_NAMESPACES = YES
|
||||||
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
# The FILE_VERSION_FILTER tag can be used to specify a program or script that
|
||||||
# doxygen should invoke to get the current version for each file (typically from
|
# doxygen should invoke to get the current version for each file (typically from
|
||||||
# the version control system). Doxygen will invoke the program by executing (via
|
# the version control system). Doxygen will invoke the program by executing (via
|
||||||
# popen()) the command command input-file, where command is the value of the
|
# popen()) the command input-file, where command is the value of the
|
||||||
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
|
# FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
|
||||||
# by doxygen. Whatever the program writes to standard output is used as the file
|
# by doxygen. Whatever the program writes to standard output is used as the file
|
||||||
# version. For an example see the documentation.
|
# version. For an example see the documentation.
|
||||||
|
|
@ -1443,7 +1443,7 @@ EXT_LINKS_IN_WINDOW = NO
|
||||||
|
|
||||||
FORMULA_FONTSIZE = 10
|
FORMULA_FONTSIZE = 10
|
||||||
|
|
||||||
# Use the FORMULA_TRANPARENT tag to determine whether or not the images
|
# Use the FORMULA_TRANSPARENT tag to determine whether or not the images
|
||||||
# generated for formulas are transparent PNGs. Transparent PNGs are not
|
# generated for formulas are transparent PNGs. Transparent PNGs are not
|
||||||
# supported properly for IE 6.0, but are supported on all modern browsers.
|
# supported properly for IE 6.0, but are supported on all modern browsers.
|
||||||
#
|
#
|
||||||
|
|
|
||||||
|
|
@ -208,7 +208,7 @@ Clients with MODIFY permissions on another object can set or remove
|
||||||
metadata on that object.
|
metadata on that object.
|
||||||
|
|
||||||
Clients that need permissions assigned to them can be started in
|
Clients that need permissions assigned to them can be started in
|
||||||
blocked mode and resume when perrmissions are assigned to them by
|
blocked mode and resume when permissions are assigned to them by
|
||||||
a session manager or portal, for example.
|
a session manager or portal, for example.
|
||||||
|
|
||||||
PipeWire uses memfd (`memfd_create(2)`) or DMA-BUF for sharing media
|
PipeWire uses memfd (`memfd_create(2)`) or DMA-BUF for sharing media
|
||||||
|
|
|
||||||
|
|
@ -468,7 +468,7 @@ default:
|
||||||
|
|
||||||
Given 2 pod objects of the same type (Object, Struct, ..) one can
|
Given 2 pod objects of the same type (Object, Struct, ..) one can
|
||||||
run a filter and generate a new pod that only contains values that
|
run a filter and generate a new pod that only contains values that
|
||||||
are compatibe with both input pods.
|
are compatible with both input pods.
|
||||||
|
|
||||||
This is, for example, used to find a compatible format between two ports.
|
This is, for example, used to find a compatible format between two ports.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -226,7 +226,7 @@ Now we're ready to connect the stream and run the main loop:
|
||||||
```
|
```
|
||||||
|
|
||||||
To connect we specify that we have a `PW_DIRECTION_OUTPUT` stream. `PW_ID_ANY`
|
To connect we specify that we have a `PW_DIRECTION_OUTPUT` stream. `PW_ID_ANY`
|
||||||
means that we are ok with conneting to any consumer. Next we set some flags:
|
means that we are ok with connecting to any consumer. Next we set some flags:
|
||||||
|
|
||||||
* `PW_STREAM_FLAG_AUTOCONNECT` automatically connect this stream. This instructs
|
* `PW_STREAM_FLAG_AUTOCONNECT` automatically connect this stream. This instructs
|
||||||
the session manager to link us to some consumer.
|
the session manager to link us to some consumer.
|
||||||
|
|
|
||||||
|
|
@ -417,7 +417,7 @@ int jack_set_freewheel_callback (jack_client_t *client,
|
||||||
void *arg) JACK_OPTIONAL_WEAK_EXPORT;
|
void *arg) JACK_OPTIONAL_WEAK_EXPORT;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Tell JACK to call @a bufsize_callback whenever the size of the the
|
* Tell JACK to call @a bufsize_callback whenever the size of the
|
||||||
* buffer that will be passed to the @a process_callback is about to
|
* buffer that will be passed to the @a process_callback is about to
|
||||||
* change. Clients that depend on knowing the buffer size must supply
|
* change. Clients that depend on knowing the buffer size must supply
|
||||||
* a @a bufsize_callback before activating themselves.
|
* a @a bufsize_callback before activating themselves.
|
||||||
|
|
@ -606,7 +606,7 @@ int jack_set_xrun_callback (jack_client_t *client,
|
||||||
* register a latency callback.
|
* register a latency callback.
|
||||||
*
|
*
|
||||||
* Another case is when a client wants to use
|
* Another case is when a client wants to use
|
||||||
* @ref jack_port_get_latency_range(), which only returns meaninful
|
* @ref jack_port_get_latency_range(), which only returns meaningful
|
||||||
* values when ports get connected and latency values change.
|
* values when ports get connected and latency values change.
|
||||||
*
|
*
|
||||||
* See the documentation for @ref jack_port_set_latency_range()
|
* See the documentation for @ref jack_port_set_latency_range()
|
||||||
|
|
|
||||||
|
|
@ -305,7 +305,7 @@ extern const char* JACK_METADATA_PORT_GROUP;
|
||||||
*
|
*
|
||||||
* This property allows audio ports to be tagged with a "meaning". The value
|
* This property allows audio ports to be tagged with a "meaning". The value
|
||||||
* is a simple string. Currently, the only type is "CV", for "control voltage"
|
* is a simple string. Currently, the only type is "CV", for "control voltage"
|
||||||
* ports. Hosts SHOULD be take care to not treat CV ports as audibile and send
|
* ports. Hosts SHOULD be take care to not treat CV ports as audible and send
|
||||||
* their output directly to speakers. In particular, CV ports are not
|
* their output directly to speakers. In particular, CV ports are not
|
||||||
* necessarily periodic at all and may have very high DC.
|
* necessarily periodic at all and may have very high DC.
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -61,11 +61,11 @@ jack_midi_get_event_count(void* port_buffer) JACK_OPTIONAL_WEAK_EXPORT;
|
||||||
*
|
*
|
||||||
* Jack MIDI is normalised, the MIDI event returned by this function is
|
* Jack MIDI is normalised, the MIDI event returned by this function is
|
||||||
* guaranteed to be a complete MIDI event (the status byte will always be
|
* guaranteed to be a complete MIDI event (the status byte will always be
|
||||||
* present, and no realtime events will interspered with the event).
|
* present, and no realtime events will interspersed with the event).
|
||||||
*
|
*
|
||||||
* This rule does not apply to System Exclusive MIDI messages
|
* This rule does not apply to System Exclusive MIDI messages
|
||||||
* since they can be of arbitrary length.
|
* since they can be of arbitrary length.
|
||||||
* To maintain smooth realtime operation such events CAN be deliverd
|
* To maintain smooth realtime operation such events CAN be delivered
|
||||||
* as multiple, non-normalised events.
|
* as multiple, non-normalised events.
|
||||||
* The maximum size of one event "chunk" depends on the MIDI backend in use.
|
* The maximum size of one event "chunk" depends on the MIDI backend in use.
|
||||||
* For example the midiseq driver will create chunks of 256 bytes.
|
* For example the midiseq driver will create chunks of 256 bytes.
|
||||||
|
|
|
||||||
|
|
@ -235,7 +235,7 @@ int jack_set_net_slave_shutdown_callback(jack_net_slave_t *net, JackNetSlaveShut
|
||||||
/**
|
/**
|
||||||
* Prototype for server Restart callback : this is the new preferable way to be notified when the master has disappeared.
|
* Prototype for server Restart callback : this is the new preferable way to be notified when the master has disappeared.
|
||||||
* The client may want to retry connecting a certain number of time (which will be done using the time_out value given in jack_net_slave_open)
|
* The client may want to retry connecting a certain number of time (which will be done using the time_out value given in jack_net_slave_open)
|
||||||
* by returning 0. Otherwise returning a non-zero error code will definively close the connection
|
* by returning 0. Otherwise returning a non-zero error code will definitively close the connection
|
||||||
* (and jack_net_slave_is_active will later on return false).
|
* (and jack_net_slave_is_active will later on return false).
|
||||||
* If both Shutdown and Restart are supplied, Restart callback will be used.
|
* If both Shutdown and Restart are supplied, Restart callback will be used.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -156,7 +156,7 @@ typedef struct _jack_session_event jack_session_event_t;
|
||||||
* whenever a session notification is sent via jack_session_notify().
|
* whenever a session notification is sent via jack_session_notify().
|
||||||
*
|
*
|
||||||
* Ownership of the memory of @a event is passed to the application.
|
* Ownership of the memory of @a event is passed to the application.
|
||||||
* It must be freed using jack_session_event_free when its not used anymore.
|
* It must be freed using jack_session_event_free when it's not used anymore.
|
||||||
*
|
*
|
||||||
* The client must promptly call jack_session_reply for this event.
|
* The client must promptly call jack_session_reply for this event.
|
||||||
*
|
*
|
||||||
|
|
|
||||||
|
|
@ -63,7 +63,7 @@
|
||||||
* which means that their absence doesn't cause an error during program
|
* which means that their absence doesn't cause an error during program
|
||||||
* startup. Instead, Jill can test whether or not the symbol jack_set_latency_callback
|
* startup. Instead, Jill can test whether or not the symbol jack_set_latency_callback
|
||||||
* is null or not. If its null, it means that the JACK installed on this machine
|
* is null or not. If its null, it means that the JACK installed on this machine
|
||||||
* is too old to support this function. If its not null, then Jill can use it
|
* is too old to support this function. If it's not null, then Jill can use it
|
||||||
* just like any other function in the API. For example:
|
* just like any other function in the API. For example:
|
||||||
*
|
*
|
||||||
* \code
|
* \code
|
||||||
|
|
|
||||||
|
|
@ -137,7 +137,7 @@ struct spa_io_clock {
|
||||||
int64_t delay; /**< delay between position and hardware,
|
int64_t delay; /**< delay between position and hardware,
|
||||||
* positive for capture, negative for playback */
|
* positive for capture, negative for playback */
|
||||||
double rate_diff; /**< rate difference between clock and monotonic time */
|
double rate_diff; /**< rate difference between clock and monotonic time */
|
||||||
uint64_t next_nsec; /**< extimated next wakeup time in nanoseconds */
|
uint64_t next_nsec; /**< estimated next wakeup time in nanoseconds */
|
||||||
uint32_t padding[8];
|
uint32_t padding[8];
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
@ -231,7 +231,7 @@ struct spa_io_segment {
|
||||||
* segment extends to the next segment. If the
|
* segment extends to the next segment. If the
|
||||||
* segment becomes invalid and the looping flag is
|
* segment becomes invalid and the looping flag is
|
||||||
* set, the segment repeats. */
|
* set, the segment repeats. */
|
||||||
double rate; /**< overal rate of the segment, can be negative for
|
double rate; /**< overall rate of the segment, can be negative for
|
||||||
* backwards time reporting. */
|
* backwards time reporting. */
|
||||||
uint64_t position; /**< The position when the running time == start.
|
uint64_t position; /**< The position when the running time == start.
|
||||||
* can be invalid when the owner of the extra segment
|
* can be invalid when the owner of the extra segment
|
||||||
|
|
|
||||||
|
|
@ -68,7 +68,7 @@ struct spa_node_info {
|
||||||
#define SPA_NODE_FLAG_NEED_CONFIGURE (1u<<5) /**< node needs configuration before it can
|
#define SPA_NODE_FLAG_NEED_CONFIGURE (1u<<5) /**< node needs configuration before it can
|
||||||
* be started. */
|
* be started. */
|
||||||
#define SPA_NODE_FLAG_ASYNC (1u<<6) /**< the process function might not
|
#define SPA_NODE_FLAG_ASYNC (1u<<6) /**< the process function might not
|
||||||
* immediateley produce or consume data
|
* immediately produce or consume data
|
||||||
* but might offload the work to a worker
|
* but might offload the work to a worker
|
||||||
* thread. */
|
* thread. */
|
||||||
uint64_t flags;
|
uint64_t flags;
|
||||||
|
|
|
||||||
|
|
@ -29,12 +29,12 @@
|
||||||
extern "C" {
|
extern "C" {
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/** Various Chroma sitings.
|
/** Various Chroma settings.
|
||||||
* @SPA_VIDEO_CHROMA_SITE_UNKNOWN: unknown cositing
|
* @SPA_VIDEO_CHROMA_SITE_UNKNOWN: unknown cositing
|
||||||
* @SPA_VIDEO_CHROMA_SITE_NONE: no cositing
|
* @SPA_VIDEO_CHROMA_SITE_NONE: no cositing
|
||||||
* @SPA_VIDEO_CHROMA_SITE_H_COSITED: chroma is horizontally cosited
|
* @SPA_VIDEO_CHROMA_SITE_H_COSITED: chroma is horizontally cosited
|
||||||
* @SPA_VIDEO_CHROMA_SITE_V_COSITED: chroma is vertically cosited
|
* @SPA_VIDEO_CHROMA_SITE_V_COSITED: chroma is vertically cosited
|
||||||
* @SPA_VIDEO_CHROMA_SITE_ALT_LINE: choma samples are sited on alternate lines
|
* @SPA_VIDEO_CHROMA_SITE_ALT_LINE: chroma samples are sited on alternate lines
|
||||||
* @SPA_VIDEO_CHROMA_SITE_COSITED: chroma samples cosited with luma samples
|
* @SPA_VIDEO_CHROMA_SITE_COSITED: chroma samples cosited with luma samples
|
||||||
* @SPA_VIDEO_CHROMA_SITE_JPEG: jpeg style cositing, also for mpeg1 and mjpeg
|
* @SPA_VIDEO_CHROMA_SITE_JPEG: jpeg style cositing, also for mpeg1 and mjpeg
|
||||||
* @SPA_VIDEO_CHROMA_SITE_MPEG2: mpeg2 style cositing
|
* @SPA_VIDEO_CHROMA_SITE_MPEG2: mpeg2 style cositing
|
||||||
|
|
|
||||||
|
|
@ -84,7 +84,7 @@ enum spa_video_multiview_mode {
|
||||||
/* Padding for new frame packing modes */
|
/* Padding for new frame packing modes */
|
||||||
|
|
||||||
SPA_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME = 32,
|
SPA_VIDEO_MULTIVIEW_MODE_FRAME_BY_FRAME = 32,
|
||||||
/* Multivew mode(s) */
|
/* Multiview mode(s) */
|
||||||
SPA_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
|
SPA_VIDEO_MULTIVIEW_MODE_MULTIVIEW_FRAME_BY_FRAME,
|
||||||
SPA_VIDEO_MULTIVIEW_MODE_SEPARATED
|
SPA_VIDEO_MULTIVIEW_MODE_SEPARATED
|
||||||
/* future expansion for annotated modes */
|
/* future expansion for annotated modes */
|
||||||
|
|
|
||||||
|
|
@ -549,7 +549,7 @@ static pa_available_t calc_port_state(pa_device_port *p, pa_card *impl)
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* If the current availablility is unknown go the more precise no,
|
/* If the current availability is unknown go the more precise no,
|
||||||
* but otherwise don't change state */
|
* but otherwise don't change state */
|
||||||
if (pa == PA_AVAILABLE_UNKNOWN)
|
if (pa == PA_AVAILABLE_UNKNOWN)
|
||||||
pa = cpa;
|
pa = cpa;
|
||||||
|
|
|
||||||
|
|
@ -72,7 +72,7 @@ struct pa_device_port {
|
||||||
|
|
||||||
unsigned priority;
|
unsigned priority;
|
||||||
pa_available_t available; /* PA_AVAILABLE_UNKNOWN, PA_AVAILABLE_NO or PA_AVAILABLE_YES */
|
pa_available_t available; /* PA_AVAILABLE_UNKNOWN, PA_AVAILABLE_NO or PA_AVAILABLE_YES */
|
||||||
char *availability_group; /* a string identifier which determine the group of devices handling the available state simulteneously */
|
char *availability_group; /* a string identifier which determine the group of devices handling the available state simultaneously */
|
||||||
|
|
||||||
pa_direction_t direction;
|
pa_direction_t direction;
|
||||||
int64_t latency_offset;
|
int64_t latency_offset;
|
||||||
|
|
|
||||||
|
|
@ -206,7 +206,7 @@ static inline void pa_hashmap_sort(pa_hashmap *h,
|
||||||
for ((state) = NULL, (e) = pa_hashmap_iterate((h), &(state), NULL); \
|
for ((state) = NULL, (e) = pa_hashmap_iterate((h), &(state), NULL); \
|
||||||
(e); (e) = pa_hashmap_iterate((h), &(state), NULL))
|
(e); (e) = pa_hashmap_iterate((h), &(state), NULL))
|
||||||
|
|
||||||
/* A macro to ease itration through all key, value pairs */
|
/* A macro to ease iteration through all key, value pairs */
|
||||||
#define PA_HASHMAP_FOREACH_KV(k, e, h, state) \
|
#define PA_HASHMAP_FOREACH_KV(k, e, h, state) \
|
||||||
for ((state) = NULL, (e) = pa_hashmap_iterate((h), &(state), (const void **) &(k)); \
|
for ((state) = NULL, (e) = pa_hashmap_iterate((h), &(state), (const void **) &(k)); \
|
||||||
(e); (e) = pa_hashmap_iterate((h), &(state), (const void **) &(k)))
|
(e); (e) = pa_hashmap_iterate((h), &(state), (const void **) &(k)))
|
||||||
|
|
|
||||||
|
|
@ -155,7 +155,7 @@ static int make_matrix(struct channelmix *mix)
|
||||||
spa_log_debug(mix->log, "src-mask:%08"PRIx64" dst-mask:%08"PRIx64,
|
spa_log_debug(mix->log, "src-mask:%08"PRIx64" dst-mask:%08"PRIx64,
|
||||||
src_mask, dst_mask);
|
src_mask, dst_mask);
|
||||||
|
|
||||||
/* move the MONO mask to FC so that the lower bits can be shifed
|
/* move the MONO mask to FC so that the lower bits can be shifted
|
||||||
* away. */
|
* away. */
|
||||||
if ((src_mask & (1Ull << SPA_AUDIO_CHANNEL_MONO)) != 0)
|
if ((src_mask & (1Ull << SPA_AUDIO_CHANNEL_MONO)) != 0)
|
||||||
src_mask |= (1ULL << SPA_AUDIO_CHANNEL_FC);
|
src_mask |= (1ULL << SPA_AUDIO_CHANNEL_FC);
|
||||||
|
|
@ -179,7 +179,7 @@ static int make_matrix(struct channelmix *mix)
|
||||||
matrix[0][i]= 1.0f / mix->src_chan;
|
matrix[0][i]= 1.0f / mix->src_chan;
|
||||||
} else {
|
} else {
|
||||||
/* just pair channels */
|
/* just pair channels */
|
||||||
spa_log_debug(mix->log, "paring channels");
|
spa_log_debug(mix->log, "pairing channels");
|
||||||
for (i = 0; i < SPA_AUDIO_MAX_CHANNELS; i++)
|
for (i = 0; i < SPA_AUDIO_MAX_CHANNELS; i++)
|
||||||
matrix[i][i]= 1.0f;
|
matrix[i][i]= 1.0f;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -373,7 +373,7 @@ again:
|
||||||
if (errno == EINTR)
|
if (errno == EINTR)
|
||||||
goto again;
|
goto again;
|
||||||
|
|
||||||
/* return socked has no data */
|
/* return socket has no data */
|
||||||
if (errno == EAGAIN || errno == EWOULDBLOCK)
|
if (errno == EAGAIN || errno == EWOULDBLOCK)
|
||||||
return 0;
|
return 0;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -705,7 +705,7 @@ static bool rfcomm_hfp_hf(struct spa_source *source, char* buf)
|
||||||
selected_codec = atoi(token);
|
selected_codec = atoi(token);
|
||||||
|
|
||||||
if (selected_codec != HFP_AUDIO_CODEC_CVSD && selected_codec != HFP_AUDIO_CODEC_MSBC) {
|
if (selected_codec != HFP_AUDIO_CODEC_CVSD && selected_codec != HFP_AUDIO_CODEC_MSBC) {
|
||||||
spa_log_warn(backend->log, NAME": unsupported codec negociation: %d", selected_codec);
|
spa_log_warn(backend->log, NAME": unsupported codec negotiation: %d", selected_codec);
|
||||||
} else {
|
} else {
|
||||||
spa_log_debug(backend->log, NAME": RFCOMM selected_codec = %i", selected_codec);
|
spa_log_debug(backend->log, NAME": RFCOMM selected_codec = %i", selected_codec);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -268,7 +268,7 @@ static void battery_update(struct spa_bt_device *device)
|
||||||
dbus_message_unref(msg);
|
dbus_message_unref(msg);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Create ney virtual battery with value stored in current device object
|
// Create new virtual battery with value stored in current device object
|
||||||
static void battery_create(struct spa_bt_device *device) {
|
static void battery_create(struct spa_bt_device *device) {
|
||||||
DBusMessage *msg;
|
DBusMessage *msg;
|
||||||
DBusMessageIter iter, entry, dict;
|
DBusMessageIter iter, entry, dict;
|
||||||
|
|
@ -1043,8 +1043,8 @@ int spa_bt_device_check_profiles(struct spa_bt_device *device, bool force)
|
||||||
device_stop_timer(device);
|
device_stop_timer(device);
|
||||||
device_connected(monitor, device, BT_DEVICE_CONNECTED);
|
device_connected(monitor, device, BT_DEVICE_CONNECTED);
|
||||||
} else {
|
} else {
|
||||||
/* The initial reconnect event has not been triggred,
|
/* The initial reconnect event has not been triggered,
|
||||||
* the connecting is triggred by bluez. */
|
* the connecting is triggered by bluez. */
|
||||||
if (device->reconnect_state == BT_DEVICE_RECONNECT_INIT)
|
if (device->reconnect_state == BT_DEVICE_RECONNECT_INIT)
|
||||||
device->reconnect_state = BT_DEVICE_RECONNECT_PROFILE;
|
device->reconnect_state = BT_DEVICE_RECONNECT_PROFILE;
|
||||||
device_start_timer(device);
|
device_start_timer(device);
|
||||||
|
|
@ -2390,7 +2390,7 @@ int spa_bt_device_ensure_a2dp_codec(struct spa_bt_device *device, const struct a
|
||||||
|
|
||||||
/* Check if we already have an enabled transport for the most preferred codec.
|
/* Check if we already have an enabled transport for the most preferred codec.
|
||||||
* However, if there already was a codec switch running, these transports may
|
* However, if there already was a codec switch running, these transports may
|
||||||
* disapper soon. In that case, we have to do the full thing.
|
* disappear soon. In that case, we have to do the full thing.
|
||||||
*/
|
*/
|
||||||
if (spa_list_is_empty(&device->codec_switch_list) && preferred_codec != NULL) {
|
if (spa_list_is_empty(&device->codec_switch_list) && preferred_codec != NULL) {
|
||||||
spa_list_for_each(t, &device->transport_list, device_link) {
|
spa_list_for_each(t, &device->transport_list, device_link) {
|
||||||
|
|
@ -3916,7 +3916,7 @@ const struct spa_handle_factory spa_bluez5_dbus_factory = {
|
||||||
impl_enum_interface_info,
|
impl_enum_interface_info,
|
||||||
};
|
};
|
||||||
|
|
||||||
// Report battery percentage to BlueZ using experimental (BlueZ 5.56) Battery Provider API. No-op if no changes occured.
|
// Report battery percentage to BlueZ using experimental (BlueZ 5.56) Battery Provider API. No-op if no changes occurred.
|
||||||
int spa_bt_device_report_battery_level(struct spa_bt_device *device, uint8_t percentage)
|
int spa_bt_device_report_battery_level(struct spa_bt_device *device, uint8_t percentage)
|
||||||
{
|
{
|
||||||
if (percentage == SPA_BT_NO_BATTERY) {
|
if (percentage == SPA_BT_NO_BATTERY) {
|
||||||
|
|
|
||||||
|
|
@ -316,8 +316,8 @@ static void volume_changed(void *userdata)
|
||||||
impl->params[IDX_Route].flags ^= SPA_PARAM_INFO_SERIAL;
|
impl->params[IDX_Route].flags ^= SPA_PARAM_INFO_SERIAL;
|
||||||
emit_info(impl, false);
|
emit_info(impl, false);
|
||||||
|
|
||||||
/* It sometimes flips volume to over 100% in pavucontrol silder
|
/* It sometimes flips volume to over 100% in pavucontrol slider
|
||||||
* if volume is emited before route info emitting while node
|
* if volume is emitted before route info emitting while node
|
||||||
* volumes are not identical to route volumes. Not sure why. */
|
* volumes are not identical to route volumes. Not sure why. */
|
||||||
emit_volume(impl, node);
|
emit_volume(impl, node);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -424,7 +424,7 @@ struct spa_bt_device {
|
||||||
int has_battery;
|
int has_battery;
|
||||||
|
|
||||||
uint32_t hw_volume_profiles;
|
uint32_t hw_volume_profiles;
|
||||||
/* Even tought A2DP volume is exposed on transport interface, the
|
/* Even though A2DP volume is exposed on transport interface, the
|
||||||
* volume activation info would not be variate between transports
|
* volume activation info would not be variate between transports
|
||||||
* under same device. So it's safe to cache activation info here. */
|
* under same device. So it's safe to cache activation info here. */
|
||||||
bool a2dp_volume_active[2];
|
bool a2dp_volume_active[2];
|
||||||
|
|
|
||||||
|
|
@ -529,14 +529,14 @@ static int do_start(struct impl *this)
|
||||||
/* Do accept if Gateway; otherwise do connect for Head Unit */
|
/* Do accept if Gateway; otherwise do connect for Head Unit */
|
||||||
do_accept = this->transport->profile & SPA_BT_PROFILE_HEADSET_AUDIO_GATEWAY;
|
do_accept = this->transport->profile & SPA_BT_PROFILE_HEADSET_AUDIO_GATEWAY;
|
||||||
|
|
||||||
/* acquire the socked fd (false -> connect | true -> accept) */
|
/* acquire the socket fd (false -> connect | true -> accept) */
|
||||||
if ((res = spa_bt_transport_acquire(this->transport, do_accept)) < 0)
|
if ((res = spa_bt_transport_acquire(this->transport, do_accept)) < 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
/* Init mSBC if needed */
|
/* Init mSBC if needed */
|
||||||
if (this->transport->codec == HFP_AUDIO_CODEC_MSBC) {
|
if (this->transport->codec == HFP_AUDIO_CODEC_MSBC) {
|
||||||
sbc_init_msbc(&this->msbc, 0);
|
sbc_init_msbc(&this->msbc, 0);
|
||||||
/* Libsbc expects audio samples by default in host endianity, mSBC requires little endian */
|
/* Libsbc expects audio samples by default in host endianness, mSBC requires little endian */
|
||||||
this->msbc.endian = SBC_LE;
|
this->msbc.endian = SBC_LE;
|
||||||
|
|
||||||
/* write_mtu might not be correct at this point, so we'll throw
|
/* write_mtu might not be correct at this point, so we'll throw
|
||||||
|
|
|
||||||
|
|
@ -606,7 +606,7 @@ static int do_start(struct impl *this)
|
||||||
/* Do accept if Gateway; otherwise do connect for Head Unit */
|
/* Do accept if Gateway; otherwise do connect for Head Unit */
|
||||||
do_accept = this->transport->profile & SPA_BT_PROFILE_HEADSET_AUDIO_GATEWAY;
|
do_accept = this->transport->profile & SPA_BT_PROFILE_HEADSET_AUDIO_GATEWAY;
|
||||||
|
|
||||||
/* acquire the socked fd (false -> connect | true -> accept) */
|
/* acquire the socket fd (false -> connect | true -> accept) */
|
||||||
if ((res = spa_bt_transport_acquire(this->transport, do_accept)) < 0)
|
if ((res = spa_bt_transport_acquire(this->transport, do_accept)) < 0)
|
||||||
return res;
|
return res;
|
||||||
|
|
||||||
|
|
@ -616,7 +616,7 @@ static int do_start(struct impl *this)
|
||||||
/* Init mSBC if needed */
|
/* Init mSBC if needed */
|
||||||
if (this->transport->codec == HFP_AUDIO_CODEC_MSBC) {
|
if (this->transport->codec == HFP_AUDIO_CODEC_MSBC) {
|
||||||
sbc_init_msbc(&this->msbc, 0);
|
sbc_init_msbc(&this->msbc, 0);
|
||||||
/* Libsbc expects audio samples by default in host endianity, mSBC requires little endian */
|
/* Libsbc expects audio samples by default in host endianness, mSBC requires little endian */
|
||||||
this->msbc.endian = SBC_LE;
|
this->msbc.endian = SBC_LE;
|
||||||
this->msbc_seq_initialized = false;
|
this->msbc_seq_initialized = false;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -95,7 +95,7 @@ int main(int argc, char *argv[])
|
||||||
goto error_close;
|
goto error_close;
|
||||||
}
|
}
|
||||||
if ((data = mmap(NULL, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0)) == MAP_FAILED) {
|
if ((data = mmap(NULL, sbuf.st_size, PROT_READ, MAP_PRIVATE, fd, 0)) == MAP_FAILED) {
|
||||||
fprintf(stderr, "error mmaping file '%s': %m\n", argv[1]);
|
fprintf(stderr, "error mmapping file '%s': %m\n", argv[1]);
|
||||||
goto error_close;
|
goto error_close;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -733,7 +733,7 @@ static int handle_route(struct device *dev, struct route *r)
|
||||||
|
|
||||||
if (!ri->prev_active) {
|
if (!ri->prev_active) {
|
||||||
/* a new port has been found, restore the volume and make sure we
|
/* a new port has been found, restore the volume and make sure we
|
||||||
* save this as a prefered port */
|
* save this as a preferred port */
|
||||||
pw_log_info("device %d: new active port found '%s'", dev->id, r->name);
|
pw_log_info("device %d: new active port found '%s'", dev->id, r->name);
|
||||||
restore_route(dev, r);
|
restore_route(dev, r);
|
||||||
} else if (r->props && r->save) {
|
} else if (r->props && r->save) {
|
||||||
|
|
|
||||||
|
|
@ -2520,7 +2520,7 @@ int main(int argc, char *argv[])
|
||||||
else
|
else
|
||||||
pw_log_debug("got dbus connection %p", impl.this.dbus_connection);
|
pw_log_debug("got dbus connection %p", impl.this.dbus_connection);
|
||||||
} else {
|
} else {
|
||||||
pw_log_info("dbus diabled");
|
pw_log_info("dbus disabled");
|
||||||
}
|
}
|
||||||
|
|
||||||
if ((res = start_session(&impl)) < 0)
|
if ((res = start_session(&impl)) < 0)
|
||||||
|
|
|
||||||
|
|
@ -52,7 +52,7 @@ static const struct format audio_formats[] = {
|
||||||
{ SAMPLE_S24LE, SPA_AUDIO_FORMAT_S24_LE, "s24ne", 3 },
|
{ SAMPLE_S24LE, SPA_AUDIO_FORMAT_S24_LE, "s24ne", 3 },
|
||||||
{ SAMPLE_S24_32LE, SPA_AUDIO_FORMAT_S24_32_LE, "s24-32ne", 4 },
|
{ SAMPLE_S24_32LE, SPA_AUDIO_FORMAT_S24_32_LE, "s24-32ne", 4 },
|
||||||
#endif
|
#endif
|
||||||
/* planar formats, we just report them as inteleaved */
|
/* planar formats, we just report them as interleaved */
|
||||||
{ SAMPLE_U8, SPA_AUDIO_FORMAT_U8P, "u8ne", 1 },
|
{ SAMPLE_U8, SPA_AUDIO_FORMAT_U8P, "u8ne", 1 },
|
||||||
{ SAMPLE_S16NE, SPA_AUDIO_FORMAT_S16P, "s16ne", 2 },
|
{ SAMPLE_S16NE, SPA_AUDIO_FORMAT_S16P, "s16ne", 2 },
|
||||||
{ SAMPLE_S24_32NE, SPA_AUDIO_FORMAT_S24_32P, "s24-32ne", 4 },
|
{ SAMPLE_S24_32NE, SPA_AUDIO_FORMAT_S24_32P, "s24-32ne", 4 },
|
||||||
|
|
|
||||||
|
|
@ -49,7 +49,7 @@ struct pw_filter;
|
||||||
|
|
||||||
/** \enum pw_filter_state The state of a filter \memberof pw_filter */
|
/** \enum pw_filter_state The state of a filter \memberof pw_filter */
|
||||||
enum pw_filter_state {
|
enum pw_filter_state {
|
||||||
PW_FILTER_STATE_ERROR = -1, /**< the strean is in error */
|
PW_FILTER_STATE_ERROR = -1, /**< the stream is in error */
|
||||||
PW_FILTER_STATE_UNCONNECTED = 0, /**< unconnected */
|
PW_FILTER_STATE_UNCONNECTED = 0, /**< unconnected */
|
||||||
PW_FILTER_STATE_CONNECTING = 1, /**< connection is in progress */
|
PW_FILTER_STATE_CONNECTING = 1, /**< connection is in progress */
|
||||||
PW_FILTER_STATE_PAUSED = 2, /**< filter is connected and paused */
|
PW_FILTER_STATE_PAUSED = 2, /**< filter is connected and paused */
|
||||||
|
|
|
||||||
|
|
@ -111,7 +111,7 @@ struct pw_impl_client_events {
|
||||||
/** Create a new client. This is mainly used by protocols. */
|
/** Create a new client. This is mainly used by protocols. */
|
||||||
struct pw_impl_client *
|
struct pw_impl_client *
|
||||||
pw_context_create_client(struct pw_impl_core *core, /**< the core object */
|
pw_context_create_client(struct pw_impl_core *core, /**< the core object */
|
||||||
struct pw_protocol *prototol, /**< the client protocol */
|
struct pw_protocol *protocol, /**< the client protocol */
|
||||||
struct pw_properties *properties, /**< client properties */
|
struct pw_properties *properties, /**< client properties */
|
||||||
size_t user_data_size /**< extra user data size */);
|
size_t user_data_size /**< extra user data size */);
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -69,7 +69,7 @@ struct pw_impl_module_events {
|
||||||
void (*initialized) (void *data);
|
void (*initialized) (void *data);
|
||||||
|
|
||||||
/** The module is registered. This is a good time to register
|
/** The module is registered. This is a good time to register
|
||||||
* objectes created from the module. */
|
* objects created from the module. */
|
||||||
void (*registered) (void *data);
|
void (*registered) (void *data);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -660,7 +660,7 @@ struct pw_impl_node {
|
||||||
|
|
||||||
struct spa_fraction latency; /**< requested latency */
|
struct spa_fraction latency; /**< requested latency */
|
||||||
uint32_t quantum_size; /**< desired quantum */
|
uint32_t quantum_size; /**< desired quantum */
|
||||||
struct spa_fraction max_latency; /**< miximum latency */
|
struct spa_fraction max_latency; /**< maximum latency */
|
||||||
uint32_t max_quantum_size; /**< max supported quantum */
|
uint32_t max_quantum_size; /**< max supported quantum */
|
||||||
struct spa_source source; /**< source to remotely trigger this node */
|
struct spa_source source; /**< source to remotely trigger this node */
|
||||||
struct pw_memblock *activation;
|
struct pw_memblock *activation;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue