Added basic usb capabilities
This commit is contained in:
		
							
								
								
									
										4
									
								
								Makefile
									
									
									
									
									
								
							
							
						
						
									
										4
									
								
								Makefile
									
									
									
									
									
								
							@@ -1,8 +1,8 @@
 | 
				
			|||||||
NAME=ginput
 | 
					NAME=ginput
 | 
				
			||||||
CC=gcc
 | 
					CC=gcc
 | 
				
			||||||
CAMBALACHE=cambalache
 | 
					CAMBALACHE=cambalache
 | 
				
			||||||
CFLAGS=$(shell pkg-config --cflags gtk4 libadwaita-1) -O3 -I src
 | 
					CFLAGS=$(shell pkg-config --cflags gtk4 libadwaita-1 libusb-1.0) -O3 -I src
 | 
				
			||||||
LDFLAGS=$(shell pkg-config --libs gtk4 libadwaita-1)
 | 
					LDFLAGS=$(shell pkg-config --libs gtk4 libadwaita-1 libusb-1.0)
 | 
				
			||||||
BUILD_DIR=build
 | 
					BUILD_DIR=build
 | 
				
			||||||
 | 
					
 | 
				
			||||||
CMB := $(wildcard ui/*.cmb)
 | 
					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 "ui/ginput-application.h"
 | 
				
			||||||
 | 
					#include "device/usb/usb.h"
 | 
				
			||||||
 | 
					
 | 
				
			||||||
int main(gint argc, gchar** argv)
 | 
					int main(gint argc, gchar** argv)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
 | 
						usb_init();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	AdwApplication* application = ginput_application_new();
 | 
						AdwApplication* application = ginput_application_new();
 | 
				
			||||||
	return g_application_run(G_APPLICATION(application), argc, argv);
 | 
						return g_application_run(G_APPLICATION(application), argc, argv);
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 
 | 
				
			|||||||
		Reference in New Issue
	
	Block a user