Skip to content

Commit b0b1672

Browse files
committed
Renamed from DuplexSlaveI2s to I2sSlaveDuplex.
To align with GpioBasic.
1 parent b5c520b commit b0b1672

6 files changed

Lines changed: 57 additions & 57 deletions

File tree

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ These classes are provided in this version.
1313
| ::rpp_driver::[SdkWrapper](doc/sdkwrapper.md) | Wrapper class of Pico SDK |
1414
| ::rpp_driver::[GpioBasic](doc/gpiobasic.md) | Basic GPIO controller |
1515
| ::rpp_driver::[I2cMaster](doc/i2cmaster.md) | I2C Master controller |
16-
| ::rpp_driver::[DuplexSlaveI2s](doc/duplexslavei2s.md) | Polling based PIO I2S driver |
16+
| ::rpp_driver::[I2sSlaveDuplex](doc/duplexslavei2s.md) | Polling based PIO I2S driver |
1717
| ::rpp_driver::[Adau1361](doc/adau1361.md) | Audio CODEC driver |
1818

1919

doc/duplexslavei2s.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# ::rpp_driver::DuplexSlaveI2s class
1+
# ::rpp_driver::I2sSlaveDuplex class
22
This is an experimental project for the Raspberry Pi Pico I2S implementation. This project targets :
33
- Supports Duplex I2S in Slave mode.
44
- Only 32bit data on I2S is supported.

src/i2s/duplexslavei2s.cpp

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -10,35 +10,35 @@ extern "C" {
1010
static pio_program_t duplex_slave_i2s_program;
1111
#endif // __has_include(<hardware/pio.h>)
1212

13-
rpp_driver::DuplexSlaveI2s::DuplexSlaveI2s(::rpp_driver::SdkWrapper &sdk,
13+
rpp_driver::I2sSlaveDuplex::I2sSlaveDuplex(::rpp_driver::SdkWrapper &sdk,
1414
PIO pio, uint pin_base)
1515
: sdk_(sdk),
1616
pio_(pio),
1717
sm_(sdk_.pio_claim_unused_sm(
1818
pio_, true)), // true mean required. assert if no room.
1919
pin_base_(pin_base) {}
2020

21-
rpp_driver::DuplexSlaveI2s::DuplexSlaveI2s(::rpp_driver::SdkWrapper &sdk,
21+
rpp_driver::I2sSlaveDuplex::I2sSlaveDuplex(::rpp_driver::SdkWrapper &sdk,
2222
PIO pio, uint32_t sm, uint pin_base)
2323
: sdk_(sdk), pio_(pio), sm_(sm), pin_base_(pin_base) {
2424
sdk_.pio_sm_claim(pio_, sm_);
2525
}
2626

27-
rpp_driver::DuplexSlaveI2s::~DuplexSlaveI2s() {
27+
rpp_driver::I2sSlaveDuplex::~I2sSlaveDuplex() {
2828
sdk_.pio_sm_unclaim(pio_, sm_);
2929
}
3030

31-
uint32_t rpp_driver::DuplexSlaveI2s::GetStateMachine() { return sm_; }
31+
uint32_t rpp_driver::I2sSlaveDuplex::GetStateMachine() { return sm_; }
3232

33-
int32_t rpp_driver::DuplexSlaveI2s::GetFifoBlocking() {
33+
int32_t rpp_driver::I2sSlaveDuplex::GetFifoBlocking() {
3434
return sdk_.pio_sm_get_blocking(pio_, sm_);
3535
}
3636

37-
void rpp_driver::DuplexSlaveI2s::PutFifoBlocking(int32_t value) {
37+
void rpp_driver::I2sSlaveDuplex::PutFifoBlocking(int32_t value) {
3838
sdk_.pio_sm_put_blocking(pio_, sm_, value);
3939
}
4040

41-
void rpp_driver::DuplexSlaveI2s::Start() {
41+
void rpp_driver::I2sSlaveDuplex::Start() {
4242
// Assign these pins for PIO by GPIO mux.
4343
sdk_.pio_gpio_init(pio_, pin_base_);
4444
sdk_.pio_gpio_init(pio_, pin_base_ + 1);
@@ -122,7 +122,7 @@ void rpp_driver::DuplexSlaveI2s::Start() {
122122
sdk_.pio_sm_set_enabled(pio_, sm_, true);
123123
}
124124

125-
void rpp_driver::DuplexSlaveI2s::Stop() {
125+
void rpp_driver::I2sSlaveDuplex::Stop() {
126126
// Stop state machine.
127127
sdk_.pio_sm_set_enabled(pio_, sm_, false);
128128
// Clean up FIFO for the next processing.

src/i2s/duplexslavei2s.hpp

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -47,15 +47,15 @@ namespace rpp_driver {
4747
* This class assumes polling based data transfer instead of interrupt / DMA
4848
* based data transfer.
4949
*/
50-
class DuplexSlaveI2s {
50+
class I2sSlaveDuplex {
5151
private:
5252
::rpp_driver::SdkWrapper &sdk_;
5353
PIO pio_;
5454
const uint32_t sm_; // State machine ( 0..3 )
5555
const uint pin_base_; // first GPIO pin number of the I2S signal.
5656

5757
public:
58-
DuplexSlaveI2s(/* args */) = delete;
58+
I2sSlaveDuplex(/* args */) = delete;
5959
/**
6060
* @brief Construct a new Duplex Slave I 2 S object
6161
*
@@ -67,7 +67,7 @@ class DuplexSlaveI2s {
6767
* Internally, the state machine will be allocate from the unused one.
6868
*
6969
*/
70-
DuplexSlaveI2s(::rpp_driver::SdkWrapper &sdk, PIO pio, uint pin_base);
70+
I2sSlaveDuplex(::rpp_driver::SdkWrapper &sdk, PIO pio, uint pin_base);
7171
/**
7272
* @brief Construct a new Duplex Slave I 2 S object
7373
*
@@ -77,13 +77,13 @@ class DuplexSlaveI2s {
7777
* @param pin_base The GPIO pin number of SDOUT signal.
7878
* @details
7979
*/
80-
DuplexSlaveI2s(::rpp_driver::SdkWrapper &sdk, PIO pio, uint32_t sm,
80+
I2sSlaveDuplex(::rpp_driver::SdkWrapper &sdk, PIO pio, uint32_t sm,
8181
uint pin_base);
8282

8383
/**
8484
* @brief Stop the state machine and make FIFO empty.
8585
*/
86-
~DuplexSlaveI2s();
86+
~I2sSlaveDuplex();
8787

8888
/**
8989
* @brief Initialize the I2S port, and run.
@@ -132,7 +132,7 @@ class DuplexSlaveI2s {
132132

133133
#if __has_include(<gmock/gmock.h>)
134134

135-
class MockDuplexSlaveI2s : public DuplexSlaveI2s {
135+
class MockI2sSlaveDuplex : public I2sSlaveDuplex {
136136
public:
137137
MOCK_METHOD0(GetStateMachine, uint32_t(void));
138138
MOCK_METHOD0(Start, void(void));

test/test_duplexslavei2s.cpp

Lines changed: 29 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -6,25 +6,25 @@
66
#include "duplexslavei2s.hpp"
77
#include "sdkwrapper.hpp"
88

9-
class DuplexSlaveI2sTest : public ::testing::Test {
9+
class I2sSlaveDuplexTest : public ::testing::Test {
1010
protected:
1111
std::random_device rng;
1212
::rpp_driver::MockSdkWrapper sdk_;
1313
PIO pio_ = rng();
1414
uint32_t sm_ = rng();
1515
uint pin_base_ = rng();
16-
::rpp_driver::DuplexSlaveI2s *i2s_;
16+
::rpp_driver::I2sSlaveDuplex *i2s_;
1717
};
1818

1919
// Test 4 parameters constructor.
20-
TEST_F(DuplexSlaveI2sTest, Constructor4) {
20+
TEST_F(I2sSlaveDuplexTest, Constructor4) {
2121
using ::testing::_;
2222
using ::testing::Return;
2323

2424
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
2525
EXPECT_CALL(sdk_, pio_claim_unused_sm(_, _)).Times(0);
2626

27-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
27+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
2828

2929
// must be matched with Externally given SM.
3030
EXPECT_EQ(sm_, i2s_->GetStateMachine());
@@ -34,18 +34,18 @@ TEST_F(DuplexSlaveI2sTest, Constructor4) {
3434

3535
delete (i2s_);
3636

37-
} // TEST_F(DuplexSlaveI2sTest, Constructor4)
37+
} // TEST_F(I2sSlaveDuplexTest, Constructor4)
3838

3939
// Test 3 parameters constructor.
40-
TEST_F(DuplexSlaveI2sTest, Constructor3) {
40+
TEST_F(I2sSlaveDuplexTest, Constructor3) {
4141
std::random_device rng;
4242
using ::testing::_;
4343
using ::testing::Return;
4444
const uint ret_val = rng();
4545

4646
EXPECT_CALL(sdk_, pio_claim_unused_sm(pio_, true)).WillOnce(Return(ret_val));
4747

48-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, pin_base_);
48+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, pin_base_);
4949

5050
// must be matched with Internally Registered SM.
5151
EXPECT_EQ(ret_val, i2s_->GetStateMachine());
@@ -54,10 +54,10 @@ TEST_F(DuplexSlaveI2sTest, Constructor3) {
5454

5555
delete (i2s_);
5656

57-
} // TEST_F(DuplexSlaveI2sTest, Constructor3)
57+
} // TEST_F(I2sSlaveDuplexTest, Constructor3)
5858

5959
// Test Destructor
60-
TEST_F(DuplexSlaveI2sTest, Destructor) {
60+
TEST_F(I2sSlaveDuplexTest, Destructor) {
6161
std::random_device rng;
6262
using ::testing::_;
6363
using ::testing::Return;
@@ -66,16 +66,16 @@ TEST_F(DuplexSlaveI2sTest, Destructor) {
6666
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
6767
EXPECT_CALL(sdk_, pio_claim_unused_sm(_, _)).Times(0);
6868

69-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
69+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
7070

7171
EXPECT_CALL(sdk_, pio_sm_unclaim(pio_, sm_));
7272

7373
delete (i2s_);
7474

75-
} // TEST_F(DuplexSlaveI2sTest, Destructor)
75+
} // TEST_F(I2sSlaveDuplexTest, Destructor)
7676

7777
// Test Destructor with stopped state machine
78-
TEST_F(DuplexSlaveI2sTest, Destructor_stopped) {
78+
TEST_F(I2sSlaveDuplexTest, Destructor_stopped) {
7979
std::random_device rng;
8080
using ::testing::_;
8181
using ::testing::InSequence;
@@ -85,7 +85,7 @@ TEST_F(DuplexSlaveI2sTest, Destructor_stopped) {
8585
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
8686
EXPECT_CALL(sdk_, pio_claim_unused_sm(_, _)).Times(0);
8787

88-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
88+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
8989

9090
{
9191
InSequence dummy;
@@ -100,9 +100,9 @@ TEST_F(DuplexSlaveI2sTest, Destructor_stopped) {
100100
}
101101
delete (i2s_);
102102

103-
} // TEST_F(DuplexSlaveI2sTest, Destructor_stopped)
103+
} // TEST_F(I2sSlaveDuplexTest, Destructor_stopped)
104104

105-
TEST_F(DuplexSlaveI2sTest, Stop) {
105+
TEST_F(I2sSlaveDuplexTest, Stop) {
106106
std::random_device rng;
107107
using ::testing::_;
108108
using ::testing::Return;
@@ -111,7 +111,7 @@ TEST_F(DuplexSlaveI2sTest, Stop) {
111111
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
112112
EXPECT_CALL(sdk_, pio_claim_unused_sm(_, _)).Times(0);
113113

114-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
114+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
115115

116116
EXPECT_CALL(sdk_, pio_sm_set_enabled(pio_, sm_, false));
117117
EXPECT_CALL(sdk_, pio_sm_clear_fifos(pio_, sm_));
@@ -124,17 +124,17 @@ TEST_F(DuplexSlaveI2sTest, Stop) {
124124

125125
delete (i2s_);
126126

127-
} // TEST_F(DuplexSlaveI2sTest, Stop)
127+
} // TEST_F(I2sSlaveDuplexTest, Stop)
128128

129-
TEST_F(DuplexSlaveI2sTest, GetStateMachine) {
129+
TEST_F(I2sSlaveDuplexTest, GetStateMachine) {
130130
std::random_device rng;
131131
using ::testing::_;
132132
using ::testing::Return;
133133

134134
// We can ignore these call in constructor.
135135
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
136136

137-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
137+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
138138

139139
// Must match the given state machine from constructor explicitly.
140140
EXPECT_EQ(i2s_->GetStateMachine(), sm_);
@@ -144,9 +144,9 @@ TEST_F(DuplexSlaveI2sTest, GetStateMachine) {
144144

145145
delete (i2s_);
146146

147-
} // TEST_F(DuplexSlaveI2sTest, GetStateMachine)
147+
} // TEST_F(I2sSlaveDuplexTest, GetStateMachine)
148148

149-
TEST_F(DuplexSlaveI2sTest, Start) {
149+
TEST_F(I2sSlaveDuplexTest, Start) {
150150
using ::testing::_;
151151
using ::testing::InSequence;
152152
using ::testing::Return;
@@ -157,7 +157,7 @@ TEST_F(DuplexSlaveI2sTest, Start) {
157157
// We can ignore these call in constructor.
158158
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
159159

160-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
160+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
161161

162162
{
163163
InSequence dummy;
@@ -210,9 +210,9 @@ TEST_F(DuplexSlaveI2sTest, Start) {
210210

211211
delete (i2s_);
212212

213-
} // TEST_F(DuplexSlaveI2sTest, Start)
213+
} // TEST_F(I2sSlaveDuplexTest, Start)
214214

215-
TEST_F(DuplexSlaveI2sTest, GetFifoBlocking) {
215+
TEST_F(I2sSlaveDuplexTest, GetFifoBlocking) {
216216
std::random_device rng;
217217
int32_t ret_val = rng();
218218
using ::testing::_;
@@ -221,7 +221,7 @@ TEST_F(DuplexSlaveI2sTest, GetFifoBlocking) {
221221
// We can ignore these call in constructor.
222222
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
223223

224-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
224+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
225225

226226
EXPECT_CALL(sdk_, pio_sm_get_blocking(pio_, sm_)).WillOnce(Return(ret_val));
227227

@@ -233,9 +233,9 @@ TEST_F(DuplexSlaveI2sTest, GetFifoBlocking) {
233233

234234
delete (i2s_);
235235

236-
} // TEST_F(DuplexSlaveI2sTest, GetFifoBlocking)
236+
} // TEST_F(I2sSlaveDuplexTest, GetFifoBlocking)
237237

238-
TEST_F(DuplexSlaveI2sTest, PutFifoBlocking) {
238+
TEST_F(I2sSlaveDuplexTest, PutFifoBlocking) {
239239
std::random_device rng;
240240
int32_t value = rng();
241241
using ::testing::_;
@@ -244,7 +244,7 @@ TEST_F(DuplexSlaveI2sTest, PutFifoBlocking) {
244244
// We can ignore these call in constructor.
245245
EXPECT_CALL(sdk_, pio_sm_claim(pio_, sm_));
246246

247-
i2s_ = new ::rpp_driver::DuplexSlaveI2s(sdk_, pio_, sm_, pin_base_);
247+
i2s_ = new ::rpp_driver::I2sSlaveDuplex(sdk_, pio_, sm_, pin_base_);
248248

249249
EXPECT_CALL(sdk_, pio_sm_put_blocking(pio_, sm_, value));
250250

@@ -256,4 +256,4 @@ TEST_F(DuplexSlaveI2sTest, PutFifoBlocking) {
256256

257257
delete (i2s_);
258258

259-
} // TEST_F(DuplexSlaveI2sTest, PutFifoBlocking)
259+
} // TEST_F(I2sSlaveDuplexTest, PutFifoBlocking)

test/todo/test_duplexslavei2s.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -1,46 +1,46 @@
1-
# test_DuplexSlaveI2s TDD
2-
- [x] Implement DuplexSlaveI2s::PutFifoBlocking().
3-
- [x] Create Test case DuplexSlaveI2s.PUtFIFOBlocking() to fail.
1+
# test_I2sSlaveDuplex TDD
2+
- [x] Implement I2sSlaveDuplex::PutFifoBlocking().
3+
- [x] Create Test case I2sSlaveDuplex.PUtFIFOBlocking() to fail.
44
- [x] Make it success.
55
- [x] Remove the duplication.
66

7-
- [x] Implement DuplexSlaveI2s::GetFifoBlocking().
8-
- [x] Create Test case DuplexSlaveI2s.GetFifoBlocking() to fail.
7+
- [x] Implement I2sSlaveDuplex::GetFifoBlocking().
8+
- [x] Create Test case I2sSlaveDuplex.GetFifoBlocking() to fail.
99
- [x] Make it success.
1010
- [x] Remove the duplication.
1111

1212

13-
- [x] Implement DuplexSlaveI2s::GetStateMachine().
13+
- [x] Implement I2sSlaveDuplex::GetStateMachine().
1414
- [x] Create Test case SdkWrapper.GetStateMachine() to fail.
1515
- [x] Make it success.
1616
- [x] Remove the duplication.
1717

18-
- [x] Implement DuplexSlaveI2s::Start().
18+
- [x] Implement I2sSlaveDuplex::Start().
1919
- [x] Create Test case SdkWrapper.Start() to fail.
2020
- [x] Make it success.
2121
- [x] Remove the duplication.
2222

23-
- [x] Implement DuplexSlaveI2s::Stop().
23+
- [x] Implement I2sSlaveDuplex::Stop().
2424
- [x] Create Test case SdkWrapper.Stop() to fail.
2525
- [x] Make it success.
2626
- [x] Remove the duplication.
2727

28-
- [x] Implement DuplexSlaveI2s::Constructor3().
28+
- [x] Implement I2sSlaveDuplex::Constructor3().
2929
- [x] Create Test case SdkWrapper.Constructor3() to fail.
3030
- [x] Make it success.
3131
- [x] Remove the duplication.
3232

33-
- [4] Implement DuplexSlaveI2s::Constructor4().
33+
- [4] Implement I2sSlaveDuplex::Constructor4().
3434
- [x] Create Test case SdkWrapper.Constructor4() to fail.
3535
- [x] Make it success.
3636
- [x] Remove the duplication.
3737

38-
- [x] Implement DuplexSlaveI2s::Destructor().
38+
- [x] Implement I2sSlaveDuplex::Destructor().
3939
- [x] Create Test case SdkWrapper.Destructor() to fail.
4040
- [x] Make it success.
4141
- [x] Remove the duplication.
4242

43-
- [x] Implement DuplexSlaveI2s::Destructor_stopped().
43+
- [x] Implement I2sSlaveDuplex::Destructor_stopped().
4444
- [x] Create Test case SdkWrapper.Destructor_stopped() to fail.
4545
- [x] Make it success.
4646
- [x] Remove the duplication.

0 commit comments

Comments
 (0)