mirror of
				https://gitlab.freedesktop.org/pulseaudio/pulseaudio.git
				synced 2025-11-03 09:01:50 -05:00 
			
		
		
		
	bluetooth: Add transport hooks into pa_bluetooth_hook_t
Add the transport-handling hooks to the centralized list of hooks in pa_bluetooth_hook_t. These are intended to replace the now deprecated transport-specific hook list in pa_bluetooth_transport_hook_t.
This commit is contained in:
		
							parent
							
								
									439745505a
								
							
						
					
					
						commit
						f035ffe3c0
					
				
					 2 changed files with 12 additions and 0 deletions
				
			
		| 
						 | 
					@ -204,6 +204,8 @@ static void device_free(pa_bluetooth_device *d) {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        d->transports[i] = NULL;
 | 
					        d->transports[i] = NULL;
 | 
				
			||||||
        pa_hashmap_remove(d->discovery->transports, t->path);
 | 
					        pa_hashmap_remove(d->discovery->transports, t->path);
 | 
				
			||||||
 | 
					        t->state = PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED;
 | 
				
			||||||
 | 
					        pa_hook_fire(&d->discovery->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED], t);
 | 
				
			||||||
        pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_REMOVED], NULL);
 | 
					        pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_REMOVED], NULL);
 | 
				
			||||||
        transport_free(t);
 | 
					        transport_free(t);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					@ -504,6 +506,7 @@ static int parse_audio_property(pa_bluetooth_device *d, const char *interface, D
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            if (pa_streq(key, "State")) {
 | 
					            if (pa_streq(key, "State")) {
 | 
				
			||||||
                pa_bt_audio_state_t state = pa_bt_audio_state_from_string(value);
 | 
					                pa_bt_audio_state_t state = pa_bt_audio_state_from_string(value);
 | 
				
			||||||
 | 
					                pa_bluetooth_transport_state_t old_state;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                pa_log_debug("Device %s interface %s property 'State' changed to value '%s'", d->path, interface, value);
 | 
					                pa_log_debug("Device %s interface %s property 'State' changed to value '%s'", d->path, interface, value);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -522,7 +525,11 @@ static int parse_audio_property(pa_bluetooth_device *d, const char *interface, D
 | 
				
			||||||
                if (!transport)
 | 
					                if (!transport)
 | 
				
			||||||
                    break;
 | 
					                    break;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                old_state = transport->state;
 | 
				
			||||||
                transport->state = pa_bt_audio_state_to_transport_state(state);
 | 
					                transport->state = pa_bt_audio_state_to_transport_state(state);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					                if (transport->state != old_state)
 | 
				
			||||||
 | 
					                    pa_hook_fire(&d->discovery->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED], transport);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
            break;
 | 
					            break;
 | 
				
			||||||
| 
						 | 
					@ -815,6 +822,7 @@ static int pa_bluetooth_transport_parse_property(pa_bluetooth_transport *t, DBus
 | 
				
			||||||
            if (pa_streq(key, "NREC") && t->nrec != value) {
 | 
					            if (pa_streq(key, "NREC") && t->nrec != value) {
 | 
				
			||||||
                t->nrec = value;
 | 
					                t->nrec = value;
 | 
				
			||||||
                pa_log_debug("Transport %s: Property 'NREC' changed to %s.", t->path, t->nrec ? "True" : "False");
 | 
					                pa_log_debug("Transport %s: Property 'NREC' changed to %s.", t->path, t->nrec ? "True" : "False");
 | 
				
			||||||
 | 
					                pa_hook_fire(&t->device->discovery->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_NREC_CHANGED], t);
 | 
				
			||||||
                pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_NREC_CHANGED], NULL);
 | 
					                pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_NREC_CHANGED], NULL);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1251,6 +1259,8 @@ static DBusMessage *endpoint_clear_configuration(DBusConnection *c, DBusMessage
 | 
				
			||||||
        pa_log_debug("Clearing transport %s profile %d", t->path, t->profile);
 | 
					        pa_log_debug("Clearing transport %s profile %d", t->path, t->profile);
 | 
				
			||||||
        t->device->transports[t->profile] = NULL;
 | 
					        t->device->transports[t->profile] = NULL;
 | 
				
			||||||
        pa_hashmap_remove(y->transports, t->path);
 | 
					        pa_hashmap_remove(y->transports, t->path);
 | 
				
			||||||
 | 
					        t->state = PA_BLUETOOTH_TRANSPORT_STATE_DISCONNECTED;
 | 
				
			||||||
 | 
					        pa_hook_fire(&y->hooks[PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED], t);
 | 
				
			||||||
        pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_REMOVED], NULL);
 | 
					        pa_hook_fire(&t->hooks[PA_BLUETOOTH_TRANSPORT_HOOK_REMOVED], NULL);
 | 
				
			||||||
        transport_free(t);
 | 
					        transport_free(t);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -74,6 +74,8 @@ struct pa_bluetooth_hook_uuid_data {
 | 
				
			||||||
typedef enum pa_bluetooth_hook {
 | 
					typedef enum pa_bluetooth_hook {
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED, /* Call data: pa_bluetooth_device */
 | 
					    PA_BLUETOOTH_HOOK_DEVICE_CONNECTION_CHANGED, /* Call data: pa_bluetooth_device */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_DEVICE_UUID_ADDED, /* Call data: pa_bluetooth_hook_uuid_data */
 | 
					    PA_BLUETOOTH_HOOK_DEVICE_UUID_ADDED, /* Call data: pa_bluetooth_hook_uuid_data */
 | 
				
			||||||
 | 
					    PA_BLUETOOTH_HOOK_TRANSPORT_STATE_CHANGED, /* Call data: pa_bluetooth_transport */
 | 
				
			||||||
 | 
					    PA_BLUETOOTH_HOOK_TRANSPORT_NREC_CHANGED, /* Call data: pa_bluetooth_transport */
 | 
				
			||||||
    PA_BLUETOOTH_HOOK_MAX
 | 
					    PA_BLUETOOTH_HOOK_MAX
 | 
				
			||||||
} pa_bluetooth_hook_t;
 | 
					} pa_bluetooth_hook_t;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue