Added basic usb capabilities
This commit is contained in:
		
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,8 +1,8 @@
 | 
			
		||||
NAME=ginput
 | 
			
		||||
CC=gcc
 | 
			
		||||
CAMBALACHE=cambalache
 | 
			
		||||
CFLAGS=$(shell pkg-config --cflags gtk4 libadwaita-1) -O3 -I src
 | 
			
		||||
LDFLAGS=$(shell pkg-config --libs gtk4 libadwaita-1)
 | 
			
		||||
CFLAGS=$(shell pkg-config --cflags gtk4 libadwaita-1 libusb-1.0) -O3 -I src
 | 
			
		||||
LDFLAGS=$(shell pkg-config --libs gtk4 libadwaita-1 libusb-1.0)
 | 
			
		||||
BUILD_DIR=build
 | 
			
		||||
 | 
			
		||||
CMB := $(wildcard ui/*.cmb)
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										28
									
								
								src/device/usb/usb.c
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										28
									
								
								src/device/usb/usb.c
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,28 @@
 | 
			
		||||
#include <libusb.h>
 | 
			
		||||
#include <stdio.h>
 | 
			
		||||
#include <stdlib.h>
 | 
			
		||||
 | 
			
		||||
void usb_init()
 | 
			
		||||
{
 | 
			
		||||
    // List all usb devices obtaining 'vendor:product'
 | 
			
		||||
    // Call corresponding driver if it exists, so 
 | 
			
		||||
    // that we get a peripheral handle
 | 
			
		||||
    if(libusb_init(NULL))
 | 
			
		||||
    {
 | 
			
		||||
        fprintf(stderr, "Error: Could not initialize libusb\n");
 | 
			
		||||
        return;
 | 
			
		||||
    }
 | 
			
		||||
 | 
			
		||||
    libusb_device** list;
 | 
			
		||||
    ssize_t device_count = libusb_get_device_list(NULL, &list);
 | 
			
		||||
    if(device_count <= 0) return;
 | 
			
		||||
 | 
			
		||||
    for(ssize_t i = 0; i < device_count; i++)
 | 
			
		||||
    {
 | 
			
		||||
        libusb_device* current = list[i];
 | 
			
		||||
        struct libusb_device_descriptor desc;
 | 
			
		||||
        libusb_get_device_descriptor(current, &desc);
 | 
			
		||||
 | 
			
		||||
        printf("Found usb device %04x:%04x\n", desc.idVendor, desc.idProduct);
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
							
								
								
									
										6
									
								
								src/device/usb/usb.h
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										6
									
								
								src/device/usb/usb.h
									
									
									
									
									
										Normal file
									
								
							@@ -0,0 +1,6 @@
 | 
			
		||||
#ifndef USB_H
 | 
			
		||||
#define USB_H
 | 
			
		||||
 | 
			
		||||
void usb_init();
 | 
			
		||||
 | 
			
		||||
#endif
 | 
			
		||||
@@ -1,7 +1,10 @@
 | 
			
		||||
#include "ui/ginput-application.h"
 | 
			
		||||
#include "device/usb/usb.h"
 | 
			
		||||
 | 
			
		||||
int main(gint argc, gchar** argv)
 | 
			
		||||
{
 | 
			
		||||
	usb_init();
 | 
			
		||||
 | 
			
		||||
	AdwApplication* application = ginput_application_new();
 | 
			
		||||
	return g_application_run(G_APPLICATION(application), argc, argv);
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user