LMMS
Loading...
Searching...
No Matches
juce_UMPUtils.h
Go to the documentation of this file.
1/*
2 ==============================================================================
3
4 This file is part of the JUCE library.
5 Copyright (c) 2022 - Raw Material Software Limited
6
7 JUCE is an open source library subject to commercial or open-source
8 licensing.
9
10 The code included in this file is provided under the terms of the ISC license
11 http://www.isc.org/downloads/software-support-policy/isc-license. Permission
12 To use, copy, modify, and/or distribute this software for any purpose with or
13 without fee is hereby granted provided that the above copyright notice and
14 this permission notice appear in all copies.
15
16 JUCE IS PROVIDED "AS IS" WITHOUT ANY WARRANTY, AND ALL WARRANTIES, WHETHER
17 EXPRESSED OR IMPLIED, INCLUDING MERCHANTABILITY AND FITNESS FOR PURPOSE, ARE
18 DISCLAIMED.
19
20 ==============================================================================
21*/
22
23#ifndef DOXYGEN
24
25namespace juce
26{
28{
29
35struct Utils
36{
39 {
40 return uint32_t (a << 0x18 | b << 0x10 | c << 0x08 | d << 0x00);
41 }
42
49 static uint32_t getNumWordsForMessageType (uint32_t);
50
54 template <size_t Index>
55 struct U4
56 {
57 static constexpr uint32_t shift = (uint32_t) 0x1c - Index * 4;
58
59 static constexpr uint32_t set (uint32_t word, uint8_t value)
60 {
61 return (word & ~((uint32_t) 0xf << shift)) | (uint32_t) ((value & 0xf) << shift);
62 }
63
64 static constexpr uint8_t get (uint32_t word)
65 {
66 return (uint8_t) ((word >> shift) & 0xf);
67 }
68 };
69
73 template <size_t Index>
74 struct U8
75 {
76 static constexpr uint32_t shift = (uint32_t) 0x18 - Index * 8;
77
78 static constexpr uint32_t set (uint32_t word, uint8_t value)
79 {
80 return (word & ~((uint32_t) 0xff << shift)) | (uint32_t) (value << shift);
81 }
82
83 static constexpr uint8_t get (uint32_t word)
84 {
85 return (uint8_t) ((word >> shift) & 0xff);
86 }
87 };
88
92 template <size_t Index>
93 struct U16
94 {
95 static constexpr uint32_t shift = (uint32_t) 0x10 - Index * 16;
96
97 static constexpr uint32_t set (uint32_t word, uint16_t value)
98 {
99 return (word & ~((uint32_t) 0xffff << shift)) | (uint32_t) (value << shift);
100 }
101
102 static constexpr uint16_t get (uint32_t word)
103 {
104 return (uint16_t) ((word >> shift) & 0xffff);
105 }
106 };
107
108 static constexpr uint8_t getMessageType (uint32_t w) noexcept { return U4<0>::get (w); }
109 static constexpr uint8_t getGroup (uint32_t w) noexcept { return U4<1>::get (w); }
110 static constexpr uint8_t getStatus (uint32_t w) noexcept { return U4<2>::get (w); }
111 static constexpr uint8_t getChannel (uint32_t w) noexcept { return U4<3>::get (w); }
112};
113
114}
115}
116
117#endif
uint8_t a
Definition Spc_Cpu.h:141
UINT_D64 w
Definition inflate.c:942
unsigned d
Definition inflate.c:940
static PuglViewHint int value
Definition pugl.h:1708
unsigned short uint16_t
Definition mid.cpp:99
unsigned int uint32_t
Definition mid.cpp:100
unsigned char uint8_t
Definition mid.cpp:98
Definition juce_UMP_test.cpp:26
Definition carla_juce.cpp:31
short word
Definition private.h:22
Definition juce_UMPUtils.h:94
static constexpr uint32_t shift
Definition juce_UMPUtils.h:95
static constexpr uint16_t get(uint32_t word)
Definition juce_UMPUtils.h:102
static constexpr uint32_t set(uint32_t word, uint16_t value)
Definition juce_UMPUtils.h:97
Definition juce_UMPUtils.h:56
static constexpr uint32_t shift
Definition juce_UMPUtils.h:57
static constexpr uint32_t set(uint32_t word, uint8_t value)
Definition juce_UMPUtils.h:59
static constexpr uint8_t get(uint32_t word)
Definition juce_UMPUtils.h:64
Definition juce_UMPUtils.h:75
static constexpr uint32_t shift
Definition juce_UMPUtils.h:76
static constexpr uint8_t get(uint32_t word)
Definition juce_UMPUtils.h:83
static constexpr uint32_t set(uint32_t word, uint8_t value)
Definition juce_UMPUtils.h:78
Definition juce_UMPUtils.h:36
static constexpr uint8_t getStatus(uint32_t w) noexcept
Definition juce_UMPUtils.h:110
static constexpr uint32_t bytesToWord(uint8_t a, uint8_t b, uint8_t c, uint8_t d)
Definition juce_UMPUtils.h:38
static constexpr uint8_t getGroup(uint32_t w) noexcept
Definition juce_UMPUtils.h:109
static constexpr uint8_t getChannel(uint32_t w) noexcept
Definition juce_UMPUtils.h:111
static constexpr uint8_t getMessageType(uint32_t w) noexcept
Definition juce_UMPUtils.h:108
return c
Definition crypt.c:175
b
Definition crypt.c:628