mirror of
				https://gitlab.freedesktop.org/pipewire/pipewire.git
				synced 2025-11-03 09:01:54 -05:00 
			
		
		
		
	alsa: fix monitor strings
This commit is contained in:
		
							parent
							
								
									78b7da608f
								
							
						
					
					
						commit
						ca2d35ca30
					
				
					 1 changed files with 10 additions and 8 deletions
				
			
		| 
						 | 
					@ -291,6 +291,7 @@ static int open_card(struct impl *this, struct card *card)
 | 
				
			||||||
		return 0;
 | 
							return 0;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	snprintf(card->name, 16, "hw:%d", card->id);
 | 
						snprintf(card->name, 16, "hw:%d", card->id);
 | 
				
			||||||
 | 
						spa_log_info(this->log, "open card %s", card->name);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if ((err = snd_ctl_open(&card->ctl_hndl, card->name, 0)) < 0) {
 | 
						if ((err = snd_ctl_open(&card->ctl_hndl, card->name, 0)) < 0) {
 | 
				
			||||||
		spa_log_error(this->log, "can't open control for card %s: %s",
 | 
							spa_log_error(this->log, "can't open control for card %s: %s",
 | 
				
			||||||
| 
						 | 
					@ -303,11 +304,12 @@ static int open_card(struct impl *this, struct card *card)
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static void close_card(struct card *card)
 | 
					static void close_card(struct impl *this, struct card *card)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	if (card->ctl_hndl == NULL)
 | 
						if (card->ctl_hndl == NULL)
 | 
				
			||||||
		return;
 | 
							return;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
						spa_log_info(this->log, "close card %s", card->name);
 | 
				
			||||||
	udev_device_unref(card->dev);
 | 
						udev_device_unref(card->dev);
 | 
				
			||||||
	snd_ctl_close(card->ctl_hndl);
 | 
						snd_ctl_close(card->ctl_hndl);
 | 
				
			||||||
	card->ctl_hndl = NULL;
 | 
						card->ctl_hndl = NULL;
 | 
				
			||||||
| 
						 | 
					@ -401,8 +403,8 @@ static void impl_on_fd_events(struct spa_source *source)
 | 
				
			||||||
				event = spa_pod_builder_object(&b, SPA_TYPE_EVENT_Monitor, type, 0);
 | 
									event = spa_pod_builder_object(&b, SPA_TYPE_EVENT_Monitor, type, 0);
 | 
				
			||||||
				spa_pod_builder_object(&b,
 | 
									spa_pod_builder_object(&b,
 | 
				
			||||||
					SPA_TYPE_OBJECT_MonitorItem, 0,
 | 
										SPA_TYPE_OBJECT_MonitorItem, 0,
 | 
				
			||||||
					SPA_MONITOR_ITEM_id,      SPA_POD_Stringv(id),
 | 
										SPA_MONITOR_ITEM_id,      &SPA_POD_Stringv(id),
 | 
				
			||||||
					SPA_MONITOR_ITEM_name,    SPA_POD_Stringv(id),
 | 
										SPA_MONITOR_ITEM_name,    &SPA_POD_Stringv(id),
 | 
				
			||||||
					0);
 | 
										0);
 | 
				
			||||||
				this->callbacks->event(this->callbacks_data, event);
 | 
									this->callbacks->event(this->callbacks_data, event);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -411,8 +413,8 @@ static void impl_on_fd_events(struct spa_source *source)
 | 
				
			||||||
				event = spa_pod_builder_object(&b, SPA_TYPE_EVENT_Monitor, type, 0);
 | 
									event = spa_pod_builder_object(&b, SPA_TYPE_EVENT_Monitor, type, 0);
 | 
				
			||||||
				spa_pod_builder_object(&b,
 | 
									spa_pod_builder_object(&b,
 | 
				
			||||||
					SPA_TYPE_OBJECT_MonitorItem, 0,
 | 
										SPA_TYPE_OBJECT_MonitorItem, 0,
 | 
				
			||||||
					SPA_MONITOR_ITEM_id,      SPA_POD_Stringv(id),
 | 
										SPA_MONITOR_ITEM_id,      &SPA_POD_Stringv(id),
 | 
				
			||||||
					SPA_MONITOR_ITEM_name,    SPA_POD_Stringv(id),
 | 
										SPA_MONITOR_ITEM_name,    &SPA_POD_Stringv(id),
 | 
				
			||||||
					0);
 | 
										0);
 | 
				
			||||||
				this->callbacks->event(this->callbacks_data, event);
 | 
									this->callbacks->event(this->callbacks_data, event);
 | 
				
			||||||
			}
 | 
								}
 | 
				
			||||||
| 
						 | 
					@ -435,7 +437,7 @@ static void impl_on_fd_events(struct spa_source *source)
 | 
				
			||||||
			this->callbacks->event(this->callbacks_data, event);
 | 
								this->callbacks->event(this->callbacks_data, event);
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	close_card(card);
 | 
						close_card(this, card);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static int
 | 
					static int
 | 
				
			||||||
| 
						 | 
					@ -538,7 +540,7 @@ static int impl_monitor_enum_items(struct spa_monitor *monitor,
 | 
				
			||||||
		card = &this->cards[this->card_idx];
 | 
							card = &this->cards[this->card_idx];
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	if (get_next_device(this, card, item, builder) < 0) {
 | 
						if (get_next_device(this, card, item, builder) < 0) {
 | 
				
			||||||
		close_card(card);
 | 
							close_card(this, card);
 | 
				
			||||||
		goto next;
 | 
							goto next;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -578,7 +580,7 @@ static int impl_clear(struct spa_handle *handle)
 | 
				
			||||||
	int i;
 | 
						int i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	for (i = 0; i < MAX_CARDS; i++)
 | 
						for (i = 0; i < MAX_CARDS; i++)
 | 
				
			||||||
		close_card(&this->cards[i]);
 | 
							close_card(this, &this->cards[i]);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if (this->enumerate)
 | 
					        if (this->enumerate)
 | 
				
			||||||
                udev_enumerate_unref(this->enumerate);
 | 
					                udev_enumerate_unref(this->enumerate);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue