A modern Music Player Daemon based on Rockbox open source high quality audio player
libadwaita audio rust zig deno mpris rockbox mpd
at master 63 lines 2.7 kB view raw
1/*************************************************************************** 2 * __________ __ ___. 3 * Open \______ \ ____ ____ | | _\_ |__ _______ ___ 4 * Source | _// _ \_/ ___\| |/ /| __ \ / _ \ \/ / 5 * Jukebox | | ( <_> ) \___| < | \_\ ( <_> > < < 6 * Firmware |____|_ /\____/ \___ >__|_ \|___ /\____/__/\_ \ 7 * \/ \/ \/ \/ \/ 8 * 9 * Samsung YP-R1 runtime USB cable detection 10 * 11 * Copyright (C) 2013 Lorenzo Miori 12 * 13 * This program is free software; you can redistribute it and/or 14 * modify it under the terms of the GNU General Public License 15 * as published by the Free Software Foundation; either version 2 16 * of the License, or (at your option) any later version. 17 * 18 * This software is distributed on an "AS IS" basis, WITHOUT WARRANTY OF ANY 19 * KIND, either express or implied. 20 * 21 ****************************************************************************/ 22 23#include <sys/ioctl.h> 24#include <fcntl.h> 25#include <unistd.h> 26 27#define IOCTL_PMU_MAGIC 'A' 28 29#define E_IOCTL_PMU_GET_BATT_LVL 0 30#define E_IOCTL_PMU_GET_CHG_STATUS 1 31#define E_IOCTL_PMU_IS_EXT_PWR 2 32#define E_IOCTL_PMU_STOP_CHG 3 33#define E_IOCTL_PMU_START_CHG 4 34#define E_IOCTL_PMU_IS_EXT_PWR_OVP 5 35#define E_IOCTL_PMU_LCD_DIM_CTRL 6 36#define E_IOCTL_PMU_CORE_CTL_HIGH 7 37#define E_IOCTL_PMU_CORE_CTL_LOW 8 38#define E_IOCTL_PMU_TSP_USB_PWR_OFF 9 39 40#define IOCTL_PMU_GET_BATT_LVL _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_GET_BATT_LVL) 41#define IOCTL_PMU_GET_CHG_STATUS _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_GET_CHG_STATUS) 42#define IOCTL_PMU_IS_EXT_PWR _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_IS_EXT_PWR) 43#define IOCTL_PMU_STOP_CHG _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_STOP_CHG) 44#define IOCTL_PMU_START_CHG _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_START_CHG) 45#define IOCTL_PMU_IS_EXT_PWR_OVP _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_IS_EXT_PWR_OVP) 46#define IOCTL_PMU_LCD_DIM_CTRL _IOW(IOCTL_PMU_MAGIC, E_IOCTL_PMU_LCD_DIM_CTRL, int) 47#define IOCTL_PMU_CORE_CTL_HIGH _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_CORE_CTL_HIGH) 48#define IOCTL_PMU_CORE_CTL_LOW _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_CORE_CTL_LOW) 49#define IOCTL_PMU_TSP_USB_PWR_OFF _IO(IOCTL_PMU_MAGIC, E_IOCTL_PMU_TSP_USB_PWR_OFF) 50 51/* 52 * This is a very simple program that runs on device. 53 * It returns error code either 0 when (power/usb) cable 54 * is not connected or >= 1 if connected. 55 */ 56int main(void) 57{ 58 int state = -1; 59 int dev = open("/dev/r1Pmu", O_RDONLY); 60 state = ioctl(dev, IOCTL_PMU_IS_EXT_PWR); 61 close(dev); 62 return state; 63}