Skip to content

Commit

Permalink
Use a more consistent style throughout codebase
Browse files Browse the repository at this point in the history
  • Loading branch information
hax0kartik committed May 14, 2024
1 parent 64a81bc commit 2a52eed
Show file tree
Hide file tree
Showing 48 changed files with 3,121 additions and 2,972 deletions.
12 changes: 12 additions & 0 deletions .astylerc
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
--align-reference=none
--convert-tabs
--break-blocks
--break-one-line-headers
--unpad-paren
--indent-switches
--indent=spaces=4
--pad-header
--pad-oper
--pad-comma
--style=java
--suffix=none
100 changes: 49 additions & 51 deletions source/Accelerometer.cpp
Original file line number Diff line number Diff line change
@@ -1,115 +1,113 @@
#include "Accelerometer.hpp"
#include "mcuhid.hpp"

void Accelerometer::Initialize()
{
void Accelerometer::Initialize() {
AccelerometerCalibration calib;
if(!m_initialized)
{

if (!m_initialized) {
cfguInit();
Result ret = CFG_GetConfigInfoBlk4(0xC, 0x40003u, &calib);
cfguExit();
if(ret != 0) *(u32*)0x123456 = ret;

if (ret != 0)
*(u32*)0x123456 = ret;

m_calib.scalex = calib.offsetx;
m_calib.offsetx = calib.scalex;
m_calib.scaley = calib.offsety;
m_calib.offsety = calib.scaley;
m_calib.scalez = calib.offsetz;
m_calib.offsetz = calib.scalez;

svcCreateEvent(&m_event, RESET_ONESHOT);
if(R_FAILED(mcuHidGetAccelerometerEventHandle(&m_irqevent))) svcBreak(USERBREAK_ASSERT);

if (R_FAILED(mcuHidGetAccelerometerEventHandle(&m_irqevent)))
svcBreak(USERBREAK_ASSERT);

m_initialized = 1;
}
}

void Accelerometer::EnableOrDisableInterrupt(u8 explicitenable)
{
if(explicitenable != -1)
{
mcuHidEnableAccelerometerInterrupt(explicitenable);
void Accelerometer::EnableOrDisableInterrupt(u8 explicitenable) {
if (explicitenable != -1) {
mcuHidEnableAccelerometerInterrupt(explicitenable);
return;
}
else if(m_refcount <= 0)

else if (m_refcount <= 0)
mcuHidEnableAccelerometerInterrupt(0); // disable
else
mcuHidEnableAccelerometerInterrupt(1); // enable
}

void Accelerometer::EnableAndIncreementRef()
{
if(!m_refcount)
void Accelerometer::EnableAndIncreementRef() {
if (!m_refcount)
mcuHidEnableAccelerometerInterrupt(1); // enable

++m_refcount;
}

void Accelerometer::DisableAndDecreementRef()
{
void Accelerometer::DisableAndDecreementRef() {
--m_refcount;
if(!m_refcount)

if (!m_refcount)
mcuHidEnableAccelerometerInterrupt(0); // disable
}

void Accelerometer::SetAccelerometerStatus(u8 enable)
{
void Accelerometer::SetAccelerometerStatus(u8 enable) {
mcuHidEnableAccelerometer(enable);
}

void Accelerometer::CalibrateVals(AccelerometerEntry *raw, AccelerometerEntry *final)
{
void Accelerometer::CalibrateVals(AccelerometerEntry *raw, AccelerometerEntry *final) {
int16_t tmpx = ((raw->x - m_calib.offsetx) << 10) / (2 * m_calib.scalex);
final->x = tmpx;
if ( tmpx >= -930 )
{
if ( tmpx > 930 )

if (tmpx >= -930) {
if (tmpx > 930)
tmpx = 930;
}
else
{
} else {
tmpx = -930;
}

final->x = tmpx;

int16_t tmpy = ((raw->y - m_calib.offsety) << 10) / (2 * m_calib.scaley);
final->y = tmpy;
if ( tmpy >= -930 )
{
if ( tmpy > 930 )

if (tmpy >= -930) {
if (tmpy > 930)
tmpy = 930;
}
else
{
} else {
tmpy = -930;
}

final->y = tmpy;

int16_t tmpz = ((raw->z - m_calib.offsetz) << 10) / (2 * m_calib.scalez);
final->z = tmpz;
if ( tmpz >= -930 )
{
if ( tmpz > 930 )

if (tmpz >= -930) {
if (tmpz > 930)
tmpz = 930;
}
else
{
} else {
tmpz = -930;
}

final->z = tmpz;

}
void Accelerometer::Sampling()
{

void Accelerometer::Sampling() {
AccelerometerEntry rawvals;
if(m_refcount > 0)
{

if (m_refcount > 0) {
uint32_t reason;
Result ret = mcuHidGetEventReason(&reason);
if(R_SUCCEEDED(ret) && (reason & 0x1000) != 0)
{

if (R_SUCCEEDED(ret) && (reason & 0x1000) != 0) {
ret = mcuHidReadAccelerometerValues(&rawvals);
if(R_SUCCEEDED(ret))
{

if (R_SUCCEEDED(ret)) {
AccelerometerEntry calibvals;
AccelerometerEntry finalvals;
CalibrateVals(&rawvals, &calibvals);
Expand Down
51 changes: 29 additions & 22 deletions source/Accelerometer.hpp
Original file line number Diff line number Diff line change
@@ -1,8 +1,7 @@
#pragma once
#include "AccelerometerRing.hpp"

struct AccelerometerCalibration
{
struct AccelerometerCalibration {
int16_t scalex;
int16_t offsetx;
int16_t scaley;
Expand All @@ -11,24 +10,32 @@ struct AccelerometerCalibration
int16_t offsetz;
};

class Accelerometer
{
public:
void Initialize();
void Sampling();
void SetAccelerometerRing(AccelerometerRing *ring) { m_ring = ring; };
Handle *GetEvent() { return &m_event; };
Handle *GetIntrEvent() { return &m_irqevent; };
void EnableOrDisableInterrupt(u8 explicitdisable = -1);
void SetAccelerometerStatus(u8 enable);
void EnableAndIncreementRef();
void DisableAndDecreementRef();
void CalibrateVals(AccelerometerEntry *raw, AccelerometerEntry *final);
private:
AccelerometerRing *m_ring = nullptr;
AccelerometerCalibration m_calib;
Handle m_event;
Handle m_irqevent;
uint8_t m_initialized = 0;
int32_t m_refcount = 0;
class Accelerometer {
public:
void Initialize();
void Sampling();
void SetAccelerometerRing(AccelerometerRing *ring) {
m_ring = ring;
};

Handle *GetEvent() {
return &m_event;
};

Handle *GetIntrEvent() {
return &m_irqevent;
};

void EnableOrDisableInterrupt(u8 explicitdisable = -1);
void SetAccelerometerStatus(u8 enable);
void EnableAndIncreementRef();
void DisableAndDecreementRef();
void CalibrateVals(AccelerometerEntry *raw, AccelerometerEntry *final);
private:
AccelerometerRing *m_ring = nullptr;
AccelerometerCalibration m_calib;
Handle m_event;
Handle m_irqevent;
uint8_t m_initialized = 0;
int32_t m_refcount = 0;
};
12 changes: 7 additions & 5 deletions source/AccelerometerRing.cpp
Original file line number Diff line number Diff line change
@@ -1,19 +1,21 @@
#include "AccelerometerRing.hpp"

void AccelerometerRing::WriteToRing(AccelerometerEntry entry)
{
void AccelerometerRing::WriteToRing(AccelerometerEntry entry) {
uint32_t index = m_updatedindex;
if(index == 7)

if (index == 7)
index = 0;
else
index++;

ExclusiveWrite((u16*)&m_entries[index].x, entry.x);
ExclusiveWrite((u16*)&m_entries[index].y, entry.y);
ExclusiveWrite((u16*)&m_entries[index].z, entry.z);
if(index == 0) // When index is 0 we need to update tickcount
{

if (index == 0) { // When index is 0 we need to update tickcount
m_oldtickcount = m_tickcount;
m_tickcount = svcGetSystemTick();
}

ExclusiveWrite(&m_updatedindex, index);
}
54 changes: 26 additions & 28 deletions source/AccelerometerRing.hpp
Original file line number Diff line number Diff line change
Expand Up @@ -2,41 +2,39 @@
#include <3ds.h>
#include "exclusive_rw.hpp"

struct AccelerometerEntry
{
struct AccelerometerEntry {
int16_t x;
int16_t y;
int16_t z;
};

static_assert(sizeof(AccelerometerEntry) == 6, "Size of AccelerometerEntry is invalid");

class AccelerometerRing
{
public:
AccelerometerRing(){
Reset();
};
class AccelerometerRing {
public:
AccelerometerRing() {
Reset();
};

void Reset()
{
m_tickcount = -1;
m_oldtickcount = -1;
m_updatedindex = -1;
};
void Reset() {
m_tickcount = -1;
m_oldtickcount = -1;
m_updatedindex = -1;
};

void SetRaw(AccelerometerEntry entry) {
ExclusiveWrite((u16*)&m_rawentry.x, entry.x);
ExclusiveWrite((u16*)&m_rawentry.y, entry.y);
ExclusiveWrite((u16*)&m_rawentry.z, entry.z);
}
void SetRaw(AccelerometerEntry entry) {
ExclusiveWrite((u16*)&m_rawentry.x, entry.x);
ExclusiveWrite((u16*)&m_rawentry.y, entry.y);
ExclusiveWrite((u16*)&m_rawentry.z, entry.z);
}

void WriteToRing(AccelerometerEntry entry);
private:
int64_t m_tickcount = 0;
int64_t m_oldtickcount = 0;
int32_t m_updatedindex = 0;
uint32_t padding;
AccelerometerEntry m_rawentry;
uint16_t padding2;
AccelerometerEntry m_entries[8];
void WriteToRing(AccelerometerEntry entry);
private:
int64_t m_tickcount = 0;
int64_t m_oldtickcount = 0;
int32_t m_updatedindex = 0;
uint32_t padding;
AccelerometerEntry m_rawentry;
uint16_t padding2;
AccelerometerEntry m_entries[8];
};
Loading

0 comments on commit 2a52eed

Please sign in to comment.