VERSION 1.0 CLASS
BEGIN
  MultiUse = -1  'True
END
Attribute VB_Name = "ClassInterfazGamePad"
Attribute VB_GlobalNameSpace = False
Attribute VB_Creatable = True
Attribute VB_PredeclaredId = False
Attribute VB_Exposed = True
Option Explicit
Option Compare Binary

Public Function GetOnline(ByVal Console As Byte, ByVal GamePad As Byte) As Boolean

' Debe devolver si el GamePad está conectado y listo para jugar o no.
' Si no se implementa detección, devolver siempre TRUE.
' (esto afectará al estado "Conexión" en la consola del CyberControl).

GetOnline = True

End Function

Public Sub SetDetectionAlarm(ByVal Console As Byte, ByVal GamePad As Byte, ByVal Active As Boolean)

' El servidor le ordena activar o desactivar la detección anti-robo de un GamePad específico.

End Sub

Public Function GetAlarm(ByVal Console As Byte, ByVal GamePad As Byte) As Boolean

' El servidor pregunta su una alarma está o no sonando.

' Debe devolver TRUE si el buzzer (chicharra) antirrobo de un GamePad específico está sonando.
' Si no se implementa devolver siempre FALSE.
' NOTA: La chicharra antirrobo debe sonar autónomamente siempre que se detecte que se ha retirado el GamePad y SU DETECCIÓN esté HABILITADA.
' También debe sonar si la consola/equipo asociada/o ha sido desconectada/o sin escepción.

GetAlarm = False

End Function

Public Sub SendStringDisplay(ByVal Console As Byte, ByVal GamePad As Byte, ByVal Mensaje As String)

' El servidor le envia texto a mostrar en un display asociado a un GamePad.
' La información enviada, puede ser: por ejemplo; el tiempo que lleva consumiendo, o el tiempo restante, etc.
' Si no se implementa, no hacer nada.
' El mensaje recibido tiene una longitud máxima de 128 caracteres.

End Sub

Public Sub SetStatus(ByVal Console As Byte, ByVal GamePad As Byte, ByVal Status As Long)

' ***********************************************************************
' * El servidor informa al driver el estado de un GamePad dado.         *
' *                                                                     *
' * Status                                                              *
' * ------                                                              *
' * bit 0 = 1, GamePad habilitado.                                      *
' *         0, GamePad no habilitado.                                   *
' * bit 1 = 1, GamePad en pre-habilitación.                             *
' *         0, nada.                                                    *
' *                                                                     *
' * se deduce convinaciones posibles en orden de aparición:             *
' * para bits 1 y 0                                                     *
' *       00 = deshabilitado.                                           *
' *       10 = pre-habilitación.                                        *
' *       01 = habilitado.                                              *
' *       00 = deshabilitado.                                           *
' *                                                                     *
' * NOTA: El modo pre-habilitación debe entenderse como que el servidor *
' * está esperando recibir el status ONLINE mediante la función         *
' * GetOnline, es la instancia entre que el operador/gerente envía la   *
' * orden de habilitación, y el cliente vá y enchufa el GamePad, la     *
' * la función GetOnline devuelve TRUE y el servidor empieza a contar   *
' * el tiempo pasando a modo habilitado. Esta instancia debe ser        *
' * aprovechada por el hardware para ir prendiendo la consola, TV, etc, *
' * y así dotar a su hardware de un sistema de ahorro de energía, ya que*
' * cuando todos los GamePads estén deshabilitados, y pase un tiempo    *
' * a los efectos anti-cíclicos se debería apagar la consola y TV.      *
' *                                                                     *
' * Otros datos de menor importancia                                    *
' * --------------------------------                                    *
' * bit 3 = 1 El GamePad tiene reserva inmediata específica.            *
' *       = 0 No tiene reserva inmediata específica.                    *
' * bit 5 = 1 Se está usando una cuenta asociada al consumo.            *
' *       = 0 El consumo se pagó o pagará desde la caja.                *
' ***********************************************************************

End Sub

Public Function GetAction(ByVal Console As Byte, ByVal GamePad As Byte, Param1 As String, Param2 As String) As Byte

' *******************************************************************************************************
' * El servidor pregunta si hay novedades (eventos).                                                    *
' *                                                                                                     *
' * Devolver la acción que el cliente ha realizado. El servidor usará esta función                      *
' * cada 2 segundos para preguntar al hardware de control que novedades (eventos)                       *
' * hay.                                                                                                *
' *                                                                                                     *
' * Toda acción debe ser informada una sola vez.                                                        *
' *                                                                                                     *
' * 0 = Ninguna acción.                                                                                 *
' *                                                                                                     *
' * 1 = Login, Param1 = User, Param2 = Password.                                                        *
' *     El usuario se identifica (abre su cuenta) para controlar un GamePad.                            *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *>2 = Info , Param1 = "TC", Param2 = Tiempo, Param3 = Costo, Param4 = "P","F","U".                    *
' *>2 = Info , Param1 = "BN", Param2 = NombreBono, Param3 = Costo, Param4 = Tiempo, Param5 = "P","F","U"*
' *>0 = Ok   , Param1 = UserName.                                                                       *
' *>1 = Error, Param1 = Mensaje de error.                                                               *
' *                                                                                                     *
' * 2 = Logout                                                                                          *
' *     El usuario retira su identificación para controlar el GamePad.                                  *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *>2 = Info , Param1 = "TC", Param2 = Tiempo, Param3 = Costo, Param4 = "P","F","U".                    *
' *>2 = Info , Param1 = "BN", Param2 = NombreBono, Param3 = Costo, Param4 = Tiempo, Param5 = "P","F","U"*
' *>0 = Ok   .                                                                                          *
' *>1 = Error, Param1 = Mensaje de error.                                                               *
' *                                                                                                     *
' * 3 = MoneyIn, Param1 = Ammount money.                                                                *
' *     El usuario introdujo dinero en el monedero del hardware de control.                             *
' *>3 = Money, Param1 = suma de dinero que se aceptó.                                                   *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *                                                                                                     *
' * 4 = FreeTime.                                                                                       *
' *     El usuario pidió habilitar el GamePad por tiempo libre pagadero desde su cuenta.                *
' *>0 = Ok   .                                                                                          *
' *>1 = Error, Param1 = Mensaje de error.                                                               *
' *                                                                                                     *
' * 5 = SavedTime, Param1 = Tiempo.                                                                     *
' *     El usuario pidió habilitar consumiendo minutos guardados. Si no se indica tiempo, se usa todo.  *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *>0 = Ok   .                                                                                          *
' *>1 = Error, Param1 = Mensaje de error.                                                               *
' *                                                                                                     *
' * 6 = BuyTime, Param1 = Tiempo.                                                                       *
' *     El usuario pidió comprar tiempo prepago. Si no se indica tiempo, se compra todo lo posible.     *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *>0 = Ok   .                                                                                          *
' *>1 = Error, Param1 = Mensaje de error.                                                               *
' *                                                                                                     *
' * 7 = AbortTime.                                                                                      *
' *     El usuario pide abortar el tiempo a consumir en curso. Si es una cuenta, se guarda en forma de  *
' *     minutos guardados, si es habilitado desde caja, solo si es un tiempo despreciable permitirá     *
' *     abortarlo.                                                                                      *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *>0 = Ok   .                                                                                          *
' *>1 = Error, Param1 = Mensaje de error.                                                               *
' *                                                                                                     *
' * 8 = GetBalance.                                                                                     *
' *     El usuario pregunta su saldo, sea monedero o cuenta según corresponda.                          *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *                                                                                                     *
' * 9 = GetBonusList.                                                                                   *
' *     El usuario pide conocer la lista de bonos aplicable al cliente actual.                          *
' *>2 = Info , Param1 = "BN", Param2 = NombreBono, Param3 = Costo, Param4 = Tiempo, Param5 = "P","F","U"*
' *                                                                                                     *
' * 10= BuyBonus, Param1 = NombreBono.                                                                  *
' *>2 = Info , Param1 = "MT", Param2 = Saldo, Param3 = Minutos guardados.                               *
' *>0 = Ok   .                                                                                          *
' *>1 = Error, Param1 = Mensaje de error.                                                               *
' *                                                                                                     *
' * 11= GetFeesTable.                                                                                   *
' *     Pregunta lista tarifaria.                                                                       *
' *>2 = Info , Param1 = "TC", Param2 = Tiempo, Param3 = Costo, Param4 = "P","F","U".                    *
' *                                                                                                     *
' *******************************************************************************************************

' // Si no se implementa devolver acción CERO. //
GetAction = 0

End Function

Public Sub SendOkError(ByVal Console As Byte, ByVal GamePad As Byte, ByVal Error As Byte, ByVal Param1 As String, ByVal Param2 As String, ByVal Param3 As String, ByVal Param4 As String, ByVal Param5 As String)

' *******************************************************************************************************
' * El servidor informa el resultado de la operación anterior.                                          *
' *                                                                                                     *
' * Error = 0 Ok, la operación fue exitosa, en parámetros puede que haya datos.                         *
' *               Param1,Param2,Param3,Param4,Param5.                                                   *
' *       = 1 Error, Param1 = Mensaje de error.                                                         *
' *       = 2 Info , Param1 = "$$" tipo de datos, en parámetros restantes puede que haya datos.         *
' *               Param2,Param3,Param4,Param5.                                                          *
' *       = 3 Money, Param1 = Cantidad de dinero que el servidor ha acusado como aceptado que fue       *
' *               introducido en el monedero.                                                           *
' *                                                                                                     *
' *******************************************************************************************************

End Sub
