gm_g15 - Garrysmod G15 Interface (Realtime)

[release]
Logitech g15 Garrysmod interface DLL

Download:
http://www.tezzanator.net/download/click.php?id=5 (839KB - Zip)
(Includes the DLL, An extended DLL, BMP-to-Lua and source code and docs for everything!)
Function Overview: http://tezzanator.net/downloads/Lua/docs/gm_g15/

Just want to use your G15 without developing?
Robert (Trebor on FP) is my partner on this project and has created a VERY awesome widget system for you to use!
Thread: http://forums.facepunchstudios.com/showthread.php?t=422348
[/release]
[release]
Requirments
A Logitech G15
Garrysmod
A shred of intelligence
Logitech LCD Manager:

http://img216.imageshack.us/img216/6379/lcdmankh8.png

Screenshots:

http://tezzanator.net/images/gm_g15_1.JPG

Pictures from lemming77:

http://img221.imageshack.us/img221/3089/dscf0262ee2.jpg

http://img229.imageshack.us/img229/543/awesometv4.jpg

BMP-to-Lua:

http://img177.imageshack.us/img177/3331/bmptoluawh2.jpg

[/release]
This DLL provides a Coder-friendly interface to the logitech g15 LCD, It also supports the software emulator provided by logitech to test scripts.

Usage (There’s samples in the zip, This is a basic text example):
[lua]
local client = LocalPlayer()

require(“g15”)

–bEmulator: False
– SET TO TRUE IF YOU ARE TESING ON AN EMULATOR
g15.createLCD(false, “Gmod: Basic health sample”)

– Health Text
– ID: 1
– Scrolling: False
– Size: 1 -> Small
– Alignment: 1 -> Left
– Width: 120 Pixels
– Lines: 1
g15.addtext( 1, false, 1, 1, 120, 1 )

– ID: 1
– X: 0
– Y: 0
g15.settextorigin( 1, 0, 0 )

function onThink()
if !client:Alive() then return end

– We are modifying the text we created at ID 1
g15.settexttext( 1, "Health: " … client:Health() … “%” )

– Update the LCD to show the changes
g15.updateLCD()
end

hook.Add( “Think”, “updater”, onThink )
[/lua]
The buttons can also be polled!:
[lua]
local client = LocalPlayer()
require(“g15”)

g15.createLCD(false, “Gmod: Button input sample”)

function onThink()
if !client:Alive() then return end

if (g15.isbuttonpressed(0)) then
client:ConCommand(“say I pressed button 1 on my g15!”)
end

– Update the LCD
g15.updateLCD()
end
hook.Add( “Think”, “updater”, onThink )
[/lua]

Credits:
Tezzanator92 - The script/coding
Robert - Ideas, Lua help and various usefullness; And volunteering his g15 for testing! (I don’t own one), And his great work on the widget manager.

Lua King’ed. Gmod stats on my G15! :smiley:

Nice tezz!

(too bad i don’t have a G15… :argh:)

Is there a max amount of IDs you can have? I don’t know how the G15 works, so is there a max amount of lines that can be displayed?

By default You can have:
64 texts
64 pbars
128 boxs
128 pxs

(The Id system is part of my DLL)

But you can recompile changing the size of the arrays for more (Though this may suck resources), I think these are decent values, 64 Pieces of text :wink:
The screen on the g15 is 160x43, So whatever you can fit on that (Also supports pages)

The DLL also supports the Hardware buttons through lua (See samples)


I Accidently uploaded my Debug DLL. So if it doesn't work; REDOWNLOAD. Sorry, My bad :D

Just saying to hold on and take care of your G15’s, they discontinued it and replaced it with this “new” G15 instead of calling it the G16 or something.

I’m sure some people would like it, but I myself don’t like the color orange or the lack of G keys, lets hope mines won’t break.

http://www.logitech.com/index.cfm/keyboards/keyboard/devices/3498&cl=us,en

Edit:

And the new Windows Vista Winkey! And the lack of that switch that disables it! :argh:

Edit:

Oh god do you think it’s possible to ever have a wiremod output that outputs to the G15 using this? It would be so awesome to have all my information such as airspeed, damage status, etc displayed on it.

Entirly possible, Just use the DLL In an entity client side. It’s up to developers to what they do, Practicly everything is possible! :slight_smile:

Infact i might code it, We will see!

That’s very cool, but I’m left with one question that makes me feel stupid… How do you install it?

This is for developers, But the DLL goes in the usual Lua/Includes/Modules folder.

The samples can be put in Lua/Autorun/Client (Only put one sample in at a time, They are seperate scripts.

Hope it helps :wink:

Thanks. :slight_smile:

Edit:

There seems to be a problem… I’ve tried a couple of your examples, and tried making my own script for it, but all of them crash the game with a “memory could not be read” error. Any idea what could be wrong?

They are working for me :S.

Can you answer me these things so i can narrow it down? :slight_smile: :
Have you got the Logtech LCD manager software installed and running?

http://img216.imageshack.us/img216/6379/lcdmankh8.png

Are you using a real or emulated G15?

Did you get the version after I reuplaoded when I accidently uploaded my debug one (A few posts back)?

No… I thought you meant that program on the disc that comes with the G15 that always runs in the background. :downs: Best give that a shot now. Yes, I have a real G15. Yes, I’ve got the non-debug version you uploaded.

Edit:

Works beautifully now, thanks. :slight_smile:

Good, Had me scared there a sec; Thought i’d buggered it all up :v:

That is the G15 Keyboard, the one with the 18 G keys is the G15 Gaming keyboard.

Very nice work, I’m gonna have to play around with this more tomorrow. :smiley:

Edit:

I don’t see a G15 Gaming Keyboard

Nice, Mind if i scale it down and put it on the OP?

Oh, awesomeness.

Gold star for you my friend, as regards from my G15!

That’s fine by me. :slight_smile:

Should have something much better soon though… :smiley:

Well, now the DLL to interface the G15 with GMod is out, I’m sure that someone who’s eager to release something will make an all-singing, all-dancing G15 Applet for Gmod. It’d be cool for Zombie Survival!

Damn you pixel limit. :frowning:

Well, I’m sure swapping some of the pixels in the G logo for squares will help. :slight_smile: