IsoChronous code is already in place in poseidon.library BUT transfers are not queued to be later rerouted in the host driver code (needs to be written for each host OCHI UCHI EHCI etc). There seems to be 2 types of isoc transfers that can be used by Poseidon. One is just the normal isoc transfer and the other is realtime implementation of isoc transfer. Setting up the isoc transfer pipe might differ on those two and the driver code might be different as well.
For isoc transfer there needs to be a scheduler that makes sure no isoc transfers are dropped (in or out) and that they happen at the right time. It all gets difficult as the device making use of the isoc transfer may be at any point on the device tree. One needs to calculate the USB bandwidth etc. and base the scheduler on that and other factors.
Poseidon controls the driver and device tree and it provides an API to communicate with the USB devices. Poseidon really doesn't care much about what sort of transfer pipe is opened or used, it only provides the means to do so and forwards the iorequests to the correct driver. Poseidon code is the higher level code for USB communication and drivers are of course the lower level one.
EHCI USB 2.0The USB-IF insisted on only one implementation of EHCI but it creates 4 virtual hcd to cover USB1.1 support. The virtual HCD on Intel and VIA EHCI controllers are UHCI. All other vendors use virtual OHCI controllers. Hardware EHCI USB2.0 ended in most chipsets in 2014/5 and is now virtual through most newer USB3.0 chipsets
Controllers have mostly decided that the left analog joystick is keyboard equivalent of WASD and right joystick is your mouse. You also have 2 bumpers above the triggers. Shoot could be right trigger (so it doesn't involve taking your thumb off the right joystick). Face buttons for reloading or jump or other non-critical functions. Crank up the sensitivity and practice.
The primary axes are either the Control Pad or the left stick. Buttons come in a rough order: face buttons, then shoulder buttons, then Select and Start, then buttons under sticks, and finally Control Pad directions if not assigned to a hat. But the order and number of buttons within a category are unpredictable, as is which button the user expects to use for each action.
Just plug in your digital/analogue joystick or gamepad into USB port. The device will be handled by Poseidon USB stack. Poseidon is the USB stack with Trident adding a GUI (graphical user interface) prefs.
By default a connected USB joystick emulates Amiga digital joystick. To change this behaviour so that the joystick is presented as analogue you need to use Trident preferences application (System:Prefs/Trident).
Open Trident and go to Devices on the left hand side (mouse click once on it). Select your controller from the list to the right and then click on Settings button below. This will open a new window. On the "General" tab find the "Lowlevel Library Joypad Emulation" section near the bottom. Find ports which are set to "Merge with USB" or "Override with USB" and change them to "Analogue Hack".
Please note that analogue joystick support is an extension of original Amiga functionality, thus an Amiga application must be explicitly written to use it. AROS SDL library uses this functionality, thus all SDL applications that use joystick, can use the analogue joystick feature.
The low level library supports up to four ports. Port 0 is usually used by the mouse, port 1 is the standard port for joysticks/joypads. By default a connected USB joystick is present in Port 1. To change its location to Port 0 you need to use Trident preferences.
Open Trident and go to Devices window. Select your controller from the list and then click on Settings button. This will open a new window. On the "General" tab find the "Lowlevel Library Joypad Emulation" section. Port 1 should be set as either "Merge with USB" or "Override with USB". Change this setting to "Don't touch". Change Port 0 setting to "Merge with USB".
Go to "Actions" tab. In the "Reports and collection" select first entry named "Joystick". in the "Usage items" select "X axis". Go to "Performed actions" area. On the left there will be a list of triggers. Each of them should have (port1) in their params. Click on the first trigger and using buttons to the right of the list change port1 into port 0. Repeat this for all triggers and for all items on "Usage items" list.
With Poseidon it is possible to make the joystick simulate the keyboard pressings. This might enable using joystick for playing games which only have keyboard support. This feature is configured in Trident preferences.
Open Trident and go to Devices window. Select your controller from the list and then click on Settings button. This will open a new window. Go to "Actions" tab. On the right top window select X axis. On the left bottom list select an entry "Digital Joystick, Push left(port 1)". On the panel to the right change "Digital joystick" into "Raw Key". A list of keys will be displayed. Select key you wish to send. Repeat the same procedure for "Digital Joystick, Release left (port 1)" option but this time check "Send key up even instead of key down". Open shell and move your joystick to the left - your selected letter should appear in the shell.
Qualifier keys are *special*. You don't only need to create the actual keypress but also modify the qualifiers.Go to the keyboard panel and find the windows menu key by enabling key tracking and pressing the windows menu key. Then assign the right amiga key to it.
Go to the actions panel and find the right amiga key (it's called "Keyboard right GUI"). Remember the actions stored there, best write them down in exact order. Then delete them.Find the windows menu item and add the missing qualifier action. Be sure the parameters are exactly the same and the order is right.
Set them to Raw, then assign an up and down button for each character, etc.when you change the settings to RAW so you can assign keyboard strokes. it will always say, KEYDOWN or what ever on the left, it never provides and option for key release.
The problem still remains though that if I try to assign the Directional Pad (Hat) to Arrow Keys, that things will get screwed up and you either can not move with the directional PAD (HAT), or movements are assigned to the Left Analog, and do not work as they should, it's as if the right and down arrow keys are ALWAYS On, regardless of the fact that I did indeed assign a Key release command to each input.
Open Trident Prefs and click on the Devices option in the left hand window. Click with the mouse once on your gamepad choice on the right hand side and again on the Settings button below. In the new window, select the General TAB and half way down on the right there is an "Open Now" button in the section "HID output control window". Clicking on that button opens another window (HID Control) with sliders for the two rumble engines inside the controllers and you can test if they work. Sometimes clicking that button does nothing, other times it will open the window and say nothing is detected. The leftmost two sliders do nothing, the third one has a large rumble effect, and the fourth one has a small rumble effect.
There is a standard in HID for tablets possibly mouse type. If the tablet is HID conforming in that sense, it should work. Aiptek does a fairly good job at this. The other competitor, Wacom, didn't pay too much attention to this and simply adapted their legacy serial protocol into HID in a very awkward way. Older Wacom tablets have worked with the special support in the HID class, but not the more recent ones.
Tablet has a squared lines of wires which induce a current into the pen which is then detected by the metal grid in the tablet pad. Tablets report pressure (and tilt on expensive models) and are absolute pointing devices (put the pen at the top left and the mouse pointer will go to the top left of the screen). Graphic drawing area, what keys, report rate, resolution lpi lpmm, accuracy, pressure levels (may come from the app), origin position,
Wacom tablets use electromagnetic resonance technology. Since the tablet provides power to the pen through resonant inductive coupling, no power is required for the pointing device. As a result, no batteries are inside the pen (or the accompanying puck), making them lighter and slimmer.
In addition, the pen communicates information such as pen tip pressure, side-switch status, tip vs. eraser orientation and ID number (to differentiate between different pens, mice, etc.). For example, applying more or less pressure to the tip of the pen changes the value of the pen's timing circuit capacitor. This signal change can be communicated in an analog or digital method. An analog implementation modulates the phase angle of the resonant frequency, while a digital method is communicated to a modulator that distributes the information digitally. The tablet forwards this and other relevant tool information in packets, up to 200 times per second, to the computer.
other method that some units support is a special serial cable that actually emits raw RS232 NMEA. These usually take 10->30 volts input, can run the unit, and have full voltage I/O for RS232 (not like spanner mode, which effectively turns the unit into a USB->Serial adapter inside the case).
As the only printer driver that AROS supports natively is Postscript, our focus is on applications that generally output postscript formatted data for printing purposes and since the general Joe Public finds postscript capable printer very expensive, postscript interpreters (eg ghostscript) have been developed aas a cheaper option which sit in between postscript data streams and non postscript (HP PCL?) printers.
It checks if in RAM: exists a outputfile (Cinnamon can export to PS postscript) then it sends this via copytopar to the printer. There was only support for parport (parallel) but Terminillis added support for USB and ethernet. A big issue with using ghostscript for drivers is that data has to originate as postscript (.PS) file.
7fc3f7cf58