Skip to content

Commit 1e82631

Browse files
committed
various fixes
1 parent 558bcb6 commit 1e82631

File tree

4 files changed

+37
-31
lines changed

4 files changed

+37
-31
lines changed

src/include/sndx/audio/al/context.hpp

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -115,6 +115,11 @@ namespace sndx::audio {
115115
return m_buffers.at(id);
116116
}
117117

118+
[[nodiscard]]
119+
const ABO& getBuffer(const IdT& id) const {
120+
return m_buffers.at(id);
121+
}
122+
118123
// make sure you unbind the buffer from all sources!
119124
bool deleteBuffer(const IdT& id) {
120125
return bool(m_buffers.erase(id));

src/include/sndx/audio/al/source.hpp

Lines changed: 23 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -102,28 +102,29 @@ namespace sndx::audio {
102102
}
103103

104104
template <typename T> [[nodiscard]]
105-
T getParam(ALenum) const = delete;
106-
107-
template <> [[nodiscard]]
108-
float getParam(ALenum param) const {
109-
float out;
110-
alGetSourcef(m_id, param, &out);
111-
return out;
112-
}
113-
114-
template <> [[nodiscard]]
115-
glm::vec3 getParam(ALenum param) const {
116-
glm::vec3 out;
117-
alGetSource3f(m_id, param, &out.x, &out.y, &out.z);
118-
return out;
119-
}
120-
121-
template <> [[nodiscard]]
122-
int getParam(ALenum param) const {
123-
int out;
124-
alGetSourcei(m_id, param, &out);
125-
return out;
126-
}
105+
T getParam(ALenum param) const {
106+
static_assert(
107+
std::is_same_v<T, float> ||
108+
std::is_same_v<T, glm::vec2> ||
109+
std::is_same_v<T, int>
110+
);
111+
112+
if constexpr (std::is_same_v<T, float>) {
113+
float out;
114+
alGetSourcef(m_id, param, &out);
115+
return out;
116+
}
117+
else if constexpr (std::is_same_v<T, glm::vec3>) {
118+
glm::vec3 out;
119+
alGetSource3f(m_id, param, &out.x, &out.y, &out.z);
120+
return out;
121+
}
122+
else if constexpr (std::is_same_v<T, int>) {
123+
int out;
124+
alGetSourcei(m_id, param, &out);
125+
return out;
126+
}
127+
};
127128

128129
const ALsource& setPos(glm::vec3 pos) const {
129130
setParam(AL_POSITION, pos);

src/include/sndx/render/gl/vbo.hpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ namespace sndx::render {
1919
template <typename T>
2020
using is_GLnormalized = std::bool_constant <
2121
requires (T) {
22-
std::same_as<typename T::normalized, std::bool_constant<true>>;
22+
requires std::same_as<typename T::normalized, std::bool_constant<true>>;
2323
} > ;
2424

2525
template <typename T>

src/include/sndx/utility/stringmanip.hpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -62,8 +62,8 @@ namespace sndx::utility {
6262
}
6363

6464
template <class CharT = char> [[nodiscard]]
65-
constexpr sv<CharT> splitFirst(const Str<CharT>& str, CharT delim, sv<CharT> strips = defaultStrip<char>) {
66-
return stripFirst(sv<CharT>(str), delim, strips);
65+
constexpr std::pair<sv<char>, sv<char>> splitFirst(const Str<CharT>& str, CharT delim, sv<CharT> strips = defaultStrip<char>) {
66+
return splitFirst(sv<CharT>(str), delim, strips);
6767
}
6868

6969
constexpr std::pair<sv<char>, sv<char>> splitFirst(std::nullptr_t, char, sv<char> = defaultStrip<char>) = delete;
@@ -75,7 +75,7 @@ namespace sndx::utility {
7575

7676

7777
template <class Chr = char> [[nodiscard]]
78-
std::vector<sv<Chr>> splitStrip(sv<Chr> str, Chr delim, sv<Chr> strips = sv<Chr>{ " \t\r" }) {
78+
inline std::vector<sv<Chr>> splitStrip(sv<Chr> str, Chr delim, sv<Chr> strips = sv<Chr>{ " \t\r" }) {
7979
std::vector<sv<Chr>> out{};
8080
str = strip(str, strips);
8181
if (str == "") return out;
@@ -99,20 +99,20 @@ namespace sndx::utility {
9999
}
100100

101101
template <class Chr = char> [[nodiscard]]
102-
auto splitStrip(Str<Chr> str, Chr delim, sv<Chr> strips = sv<Chr>{ " \t\r" }) {
102+
inline auto splitStrip(Str<Chr> str, Chr delim, sv<Chr> strips = sv<Chr>{ " \t\r" }) {
103103
return splitStrip(sv<Chr>{str}, delim, strips);
104104
}
105105

106106
inline std::vector<sv<char>> splitStrip(std::nullptr_t, char, sv<char> = defaultStrip<char>) = delete;
107107

108108
[[nodiscard]]
109-
auto splitStrip(const char* str, char delim, sv<char> strips = defaultStrip<char>) noexcept {
109+
inline auto splitStrip(const char* str, char delim, sv<char> strips = defaultStrip<char>) noexcept {
110110
return splitStrip(sv<char>{str}, delim, strips);
111111
}
112112

113113

114114
template <typename CharT = char> [[nodiscard]]
115-
Str<CharT> parseEscaped(sv<CharT> str) {
115+
inline Str<CharT> parseEscaped(sv<CharT> str) {
116116
Str<CharT> out{};
117117
out.reserve(str.size());
118118

@@ -167,11 +167,11 @@ namespace sndx::utility {
167167
}
168168

169169
template <typename CharT = char> [[nodiscard]]
170-
Str<CharT> parseEscaped(const Str<CharT>& str) {
170+
inline Str<CharT> parseEscaped(const Str<CharT>& str) {
171171
return parseEscaped(sv<CharT>{str});
172172
}
173173

174-
std::string parseEscaped(std::nullptr_t) = delete;
174+
inline std::string parseEscaped(std::nullptr_t) = delete;
175175

176176
[[nodiscard]]
177177
inline auto parseEscaped(const char* str) noexcept {

0 commit comments

Comments
 (0)