|
|
| version 1.7, 2011/01/15 18:43:13 | version 1.10, 2012/01/23 04:43:14 |
|---|---|
| Line 1 | Line 1 |
| /*- | /*- |
| * Copyright (c) 2004 NONAKA Kimihiro <aw9k-nnk@asahi-net.or.jp>, | * Copyright (C) 2004 NONAKA Kimihiro <nonakap@gmail.com> |
| * All rights reserved. | * All rights reserved. |
| * | * |
| * Redistribution and use in source and binary forms, with or without | * Redistribution and use in source and binary forms, with or without |
| Line 11 | Line 11 |
| * notice, this list of conditions and the following disclaimer in the | * notice, this list of conditions and the following disclaimer in the |
| * documentation and/or other materials provided with the distribution. | * documentation and/or other materials provided with the distribution. |
| * | * |
| * THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND | * THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR |
| * ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE | * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES |
| * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE | * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. |
| * ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE | * IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, |
| * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL | * INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT |
| * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS | * NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, |
| * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) | * DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY |
| * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT | * THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT |
| * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY | * (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF |
| * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF | * THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. |
| * SUCH DAMAGE. | |
| */ | */ |
| #include "compiler.h" | #include "compiler.h" |
| Line 36 static struct { | Line 35 static struct { |
| void *hdl; | void *hdl; |
| BOOL inited; | BOOL inited; |
| const joymng_devinfo_t **devlist; | joymng_devinfo_t **devlist; |
| BYTE pad1btn[NELEMENTS(np2oscfg.JOY1BTN)]; | BYTE pad1btn[NELEMENTS(np2oscfg.JOY1BTN)]; |
| REG8 flag; | REG8 flag; |
| Line 55 typedef struct { | Line 54 typedef struct { |
| BYTE button[JOY_NBUTTON]; | BYTE button[JOY_NBUTTON]; |
| } JOYINFO_T; | } JOYINFO_T; |
| static const joymng_devinfo_t **joydrv_initialize(void); | static joymng_devinfo_t **joydrv_initialize(void); |
| static void joydrv_terminate(void); | static void joydrv_terminate(void); |
| static void *joydrv_open(const char *dev); | static void *joydrv_open(const char *dev); |
| static void joydrv_close(void *hdl); | static void joydrv_close(void *hdl); |
| Line 107 joymng_deinitialize(void) | Line 106 joymng_deinitialize(void) |
| np2oscfg.JOYPAD1 &= 1; | np2oscfg.JOYPAD1 &= 1; |
| } | } |
| const joymng_devinfo_t ** | joymng_devinfo_t ** |
| joymng_get_devinfo_list(void) | joymng_get_devinfo_list(void) |
| { | { |
| Line 169 typedef struct { | Line 168 typedef struct { |
| SDL_Joystick *joyhdl; | SDL_Joystick *joyhdl; |
| } joydrv_sdl_hdl_t; | } joydrv_sdl_hdl_t; |
| const joymng_devinfo_t ** | static joymng_devinfo_t ** |
| joydrv_initialize(void) | joydrv_initialize(void) |
| { | { |
| char str[32]; | char str[32]; |
| Line 208 joydrv_initialize(void) | Line 207 joydrv_initialize(void) |
| shdl->joyhdl = NULL; | shdl->joyhdl = NULL; |
| n++; | n++; |
| } | } |
| devlist[n] = NULL; | |
| return (const joymng_devinfo_t **)devlist; | return devlist; |
| sdl_err: | sdl_err: |
| if (devlist) { | if (devlist) { |
| Line 226 sdl_err: | Line 226 sdl_err: |
| return NULL; | return NULL; |
| } | } |
| void | static void |
| joydrv_terminate(void) | joydrv_terminate(void) |
| { | { |
| SDL_QuitSubSystem(SDL_INIT_JOYSTICK); | SDL_QuitSubSystem(SDL_INIT_JOYSTICK); |
| } | } |
| void * | static void * |
| joydrv_open(const char *dvname) | joydrv_open(const char *dvname) |
| { | { |
| joydrv_sdl_hdl_t *shdl = NULL; | joydrv_sdl_hdl_t *shdl = NULL; |
| Line 329 sdl_err: | Line 329 sdl_err: |
| return NULL; | return NULL; |
| } | } |
| void | static void |
| joydrv_close(void *hdl) | joydrv_close(void *hdl) |
| { | { |
| joydrv_sdl_hdl_t *shdl = (joydrv_sdl_hdl_t *)hdl; | joydrv_sdl_hdl_t *shdl = (joydrv_sdl_hdl_t *)hdl; |
| Line 346 joydrv_close(void *hdl) | Line 346 joydrv_close(void *hdl) |
| _MFREE(shdl); | _MFREE(shdl); |
| } | } |
| BOOL | static BOOL |
| joydrv_getstat(void *hdl, JOYINFO_T *ji) | joydrv_getstat(void *hdl, JOYINFO_T *ji) |
| { | { |
| joydrv_sdl_hdl_t *shdl = (joydrv_sdl_hdl_t *)hdl; | joydrv_sdl_hdl_t *shdl = (joydrv_sdl_hdl_t *)hdl; |