Add hidpp20 WirelessDeviceStatus feature
This commit is contained in:
		@@ -57,6 +57,7 @@ add_executable(logid
 | 
				
			|||||||
        backend/hidpp20/features/ReprogControls.cpp
 | 
					        backend/hidpp20/features/ReprogControls.cpp
 | 
				
			||||||
        backend/hidpp20/features/HiresScroll.cpp
 | 
					        backend/hidpp20/features/HiresScroll.cpp
 | 
				
			||||||
        backend/hidpp20/features/ChangeHost.cpp
 | 
					        backend/hidpp20/features/ChangeHost.cpp
 | 
				
			||||||
 | 
					        backend/hidpp20/features/WirelessDeviceStatus.cpp
 | 
				
			||||||
        backend/dj/Report.cpp
 | 
					        backend/dj/Report.cpp
 | 
				
			||||||
        util/mutex_queue.h
 | 
					        util/mutex_queue.h
 | 
				
			||||||
        util/workqueue.cpp
 | 
					        util/workqueue.cpp
 | 
				
			||||||
 
 | 
				
			|||||||
							
								
								
									
										37
									
								
								src/logid/backend/hidpp20/features/WirelessDeviceStatus.cpp
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										37
									
								
								src/logid/backend/hidpp20/features/WirelessDeviceStatus.cpp
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,37 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright 2019-2020 PixlOne
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#include <cassert>
 | 
				
			||||||
 | 
					#include "WirelessDeviceStatus.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					using namespace logid::backend::hidpp20;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WirelessDeviceStatus::WirelessDeviceStatus(Device* dev) : Feature(dev, ID)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					WirelessDeviceStatus::Status WirelessDeviceStatus::statusBroadcastEvent(
 | 
				
			||||||
 | 
					        const hidpp::Report &report)
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    assert(report.function() == StatusBroadcast);
 | 
				
			||||||
 | 
					    Status status = {};
 | 
				
			||||||
 | 
					    auto params = report.paramBegin();
 | 
				
			||||||
 | 
					    status.reconnection = params[0];
 | 
				
			||||||
 | 
					    status.reconfNeeded = params[1];
 | 
				
			||||||
 | 
					    status.powerSwitch = params[2];
 | 
				
			||||||
 | 
					    return status;
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
							
								
								
									
										52
									
								
								src/logid/backend/hidpp20/features/WirelessDeviceStatus.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										52
									
								
								src/logid/backend/hidpp20/features/WirelessDeviceStatus.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,52 @@
 | 
				
			|||||||
 | 
					/*
 | 
				
			||||||
 | 
					 * Copyright 2019-2020 PixlOne
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is free software: you can redistribute it and/or modify
 | 
				
			||||||
 | 
					 * it under the terms of the GNU General Public License as published by
 | 
				
			||||||
 | 
					 * the Free Software Foundation, either version 3 of the License, or
 | 
				
			||||||
 | 
					 * (at your option) any later version.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * This program is distributed in the hope that it will be useful,
 | 
				
			||||||
 | 
					 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 | 
				
			||||||
 | 
					 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 | 
				
			||||||
 | 
					 * GNU General Public License for more details.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 * You should have received a copy of the GNU General Public License
 | 
				
			||||||
 | 
					 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 | 
				
			||||||
 | 
					 *
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					#ifndef LOGID_BACKEND_HIDPP20_FEATURE_WIRELESSDEVICESTATUS_H
 | 
				
			||||||
 | 
					#define LOGID_BACKEND_HIDPP20_FEATURE_WIRELESSDEVICESTATUS_H
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#include "../Feature.h"
 | 
				
			||||||
 | 
					#include "../feature_defs.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					namespace logid {
 | 
				
			||||||
 | 
					namespace backend {
 | 
				
			||||||
 | 
					namespace hidpp20
 | 
				
			||||||
 | 
					{
 | 
				
			||||||
 | 
					    class WirelessDeviceStatus : public Feature
 | 
				
			||||||
 | 
					    {
 | 
				
			||||||
 | 
					    public:
 | 
				
			||||||
 | 
					        static constexpr uint16_t ID = FeatureID::WIRELESS_DEVICE_STATUS;
 | 
				
			||||||
 | 
					        virtual uint16_t getID() { return ID; }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        WirelessDeviceStatus(Device* dev);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        enum Event : uint8_t
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            StatusBroadcast = 0
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        struct Status
 | 
				
			||||||
 | 
					        {
 | 
				
			||||||
 | 
					            bool reconnection;
 | 
				
			||||||
 | 
					            bool reconfNeeded;
 | 
				
			||||||
 | 
					            bool powerSwitch;
 | 
				
			||||||
 | 
					        };
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        static Status statusBroadcastEvent(const hidpp::Report &report);
 | 
				
			||||||
 | 
					    };
 | 
				
			||||||
 | 
					}}}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					#endif //LOGID_BACKEND_HIDPP20_FEATURE_WIRELESSDEVICESTATUS_H
 | 
				
			||||||
		Reference in New Issue
	
	Block a user