Skip to content

Commit a2484a9

Browse files
committed
alsa: mark it unavailable if /dev/snd/seq is not there
1 parent e271e33 commit a2484a9

File tree

2 files changed

+12
-2
lines changed

2 files changed

+12
-2
lines changed

include/libremidi/backends/alsa_seq.hpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,8 @@
1616
#include <libremidi/backends/alsa_seq/midi_out.hpp>
1717
#include <libremidi/backends/alsa_seq/observer.hpp>
1818

19+
#include <unistd.h>
20+
1921
#include <string_view>
2022

2123
namespace libremidi::alsa_seq
@@ -37,7 +39,10 @@ struct backend
3739
static inline bool available() noexcept
3840
{
3941
static const libasound& snd = libasound::instance();
40-
return snd.available && snd.seq.available;
42+
if (!snd.available || !snd.seq.available)
43+
return false;
44+
45+
return ::access("/dev/snd/seq", F_OK) == 0;
4146
}
4247
};
4348

include/libremidi/backends/alsa_seq_ump.hpp

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@
55
#include <libremidi/backends/alsa_seq_ump/config.hpp>
66
#include <libremidi/backends/alsa_seq_ump/midi_out.hpp>
77

8+
#include <unistd.h>
9+
810
#include <string_view>
911

1012
namespace libremidi
@@ -58,7 +60,10 @@ struct backend
5860
static inline bool available() noexcept
5961
{
6062
static const libasound& snd = libasound::instance();
61-
return snd.available && snd.seq.available && snd.seq.ump.available && snd.ump.available;
63+
if (!snd.available || !snd.seq.available || !snd.seq.ump.available || !snd.ump.available)
64+
return false;
65+
66+
return ::access("/dev/snd/seq", F_OK) == 0;
6267
}
6368
};
6469
}

0 commit comments

Comments
 (0)