contactar a xmanuel para consulta

contactar a xmanuel para consulta

Postby carlos vargas » Wed Mar 24, 2021 1:21 am

Hola, buenas,
Deseo poder contactar a xmanuel, ya que deseo hacerle unas preguntas, con relación a objetos en el api de C.
creo que talvez tenga la experiencia o por donde van los tiros.

a grandes rasgos la consulta es esta:

en una clase que he realizado llamada TVLC la cual estoy haciendo para manejar un player con el VLC, me es necesarao manejar Eventos,
vlc tiene una función en c para crear un manejador de eventos, lo caules se disparan por ejemplo cuando se hace Play, Stop, End, Mute, etc.
Code: Select all  Expand view

METHOD New( hWnd ) CLASS TVLC
    ::hWnd := hWnd
    ::hVLC := myvlc_new()
    IF !Empty( ::hVLC )
        ::hMediaPlayer := myvlc_media_player_new( ::hVLC )
        IF !Empty( ::hWnd ) .and. !Empty( ::hMediaPlayer )
            ::hEventManager := myvlc_media_player_event_manager( ::hMediaPlayer )
            IF !empty( ::hEventManager )
                myvlc_media_player_event_attach( ::hEventManager, QSelf() ) //aca envio el objeto a c
            ENDIF
 


en c
Code: Select all  Expand view


HB_FUNC( MYVLC_MEDIA_PLAYER_EVENT_MANAGER )
{
    libvlc_media_player_t *hMediaPlayer = (libvlc_media_player_t *) hb_parptr( 1 );
    if( hMediaPlayer )
    {
        libvlc_event_manager_t * hEventManager;
        hEventManager = libvlc_media_player_event_manager( hMediaPlayer );
        hb_retptr( (void *) hEventManager );
    }
}

/*---------------------------------------------------------------------------------------------*/

HB_FUNC( MYVLC_MEDIA_PLAYER_EVENT_ATTACH )
{
    libvlc_event_manager_t *hEventManager = (libvlc_event_manager_t *) hb_parptr( 1 );
    //PHB_ITEM pSelf = ACA NECESITO RECIVIR EL OBJETO SELF DE TVLC
       
    if( hEventManager )
    {
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerPlaying        , vlc_mycallback, pSelf ); //ACA ENVIARLO A LA FUNCION CALLBACK
        /*
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerMediaChanged   , vlc_mycallback, NULL );
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerOpening        , vlc_mycallback, NULL );
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerPlaying        , vlc_mycallback, NULL );
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerPaused         , vlc_mycallback, NULL );
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerStopped        , vlc_mycallback, NULL );
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerEndReached     , vlc_mycallback, NULL );
        libvlc_event_attach( hEventManager, libvlc_MediaPlayerPositionChanged, vlc_mycallback, NULL );
        */

    }
}
 

Code: Select all  Expand view

void vlc_mycallback( const libvlc_event_t *event, void *param )
{
    switch ( event->type )
    {
        case libvlc_MediaPlayerMediaChanged:
            OutStr("--------------->MEDIA CHANGED");
            break;
        case libvlc_MediaPlayerNothingSpecial:
            OutStr("--------------->NOTHING");
            break;
        case libvlc_MediaPlayerOpening:
            OutStr("--------------->OPENING");
            break;
        case libvlc_MediaPlayerPlaying:
//ACA EJECUTAR UN METODO DEL OBJETO VLC
            OutStr("--------------->PLAYING");
            break;
        case libvlc_MediaPlayerPaused:
            OutStr("--------------->PAUSED");
            break;
        case libvlc_MediaPlayerStopped:
            OutStr("--------------->STOPPED");
            break;
        case libvlc_MediaPlayerEndReached:
            OutStr("--------------->END REACH");
            break;
        case libvlc_MediaPlayerTimeChanged:
            OutStr("--------------->TIME CHANGED");
            break;
        case libvlc_MediaPlayerPositionChanged:
            OutStr("--------------->POSITION CHANGED");
            break;
        case libvlc_MediaPlayerMuted:
            OutStr("--------------->MUTED");
            break;
        case libvlc_MediaPlayerUnmuted:
            OutStr("--------------->UNMUTED");
            break;
        case libvlc_MediaPlayerAudioVolume:
            OutStr("--------------->VOLUME");
            break;
    }
}
 
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Postby carlos vargas » Wed Mar 24, 2021 1:48 am

un poco de avance, creo que ya tengo el objeto en la parte c.
Code: Select all  Expand view

HB_FUNC( MYVLC_MEDIA_PLAYER_EVENT_ATTACH )
{
    libvlc_event_manager_t *hEventManager = (libvlc_event_manager_t *) hb_parptr( 1 );
    PHB_ITEM pItem = hb_param( 2, HB_IT_ANY );
   
    if( pItem )
    {
        HB_USHORT usClass = hb_objGetClass( pItem );       
        //HB_SYMBOL_UNUSED( usClass );
        DimeC( (char *) hb_objGetClsName( pItem ) ); //ME RETORNA TVLC :-)
        DimeN( usClass );
        if( hb_objHasMsg(pItem,"BONPLAY") )
        {
            DimeC("TIENE BONPLAY");
        }

    ....
 

Necesito saber como ejecutar el block ::bOnPlay :-(
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Postby cnavarro » Wed Mar 24, 2021 6:11 am

Intenta con hb_evalBlock
Cristobal Navarro
Hay dos tipos de personas: las que te hacen perder el tiempo y las que te hacen perder la noción del tiempo
El secreto de la felicidad no está en hacer lo que te gusta, sino en que te guste lo que haces
User avatar
cnavarro
 
Posts: 6541
Joined: Wed Feb 15, 2012 8:25 pm
Location: España

Re: contactar a xmanuel para consulta

Postby carlos vargas » Wed Mar 24, 2021 2:55 pm

Lo que necesito saber ahora es como ejecutar el block ::bOnPlay de la clase desde C.
Osea identificar la data del metodo y hacer un evalblock().
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Postby xmanuel » Fri Mar 26, 2021 1:25 pm

Hola Carlos perdona por el retraso.
Dale las gracias a Felix que me ha avisado de tu mensaje:

Tienes que usar la funcion:
Code: Select all  Expand view
extern HB_EXPORT PHB_ITEM hb_objSendMsg( PHB_ITEM pObj, const char *sMsg, HB_ULONG ulArg, ... );


Como puedes observa le tienes que pasar en el primer parámetro el objeto, luego el nombre del método como cadena, el numero de parámetros, y por ultimo los parámetros (son item capturados hb_param() por ejemplo)
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 762
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: contactar a xmanuel para consulta

Postby carlos vargas » Fri Mar 26, 2021 5:17 pm

gracias...
procesando ...
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Postby carlos vargas » Fri Mar 26, 2021 5:18 pm

Manuel tienes algun contacto? si no es mucha molestia, tengo una consulta...
referente a el api, una duda que me gustaria explicar con mas detalle...

Mil Gracias...
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Postby xmanuel » Fri Mar 26, 2021 7:05 pm

Dime tu correo y te escribo :roll:
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 762
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: contactar a xmanuel para consulta

Postby carlos vargas » Fri Mar 26, 2021 7:36 pm

karlos.vargas at gmail dot com
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
User avatar
carlos vargas
 
Posts: 1720
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Postby xmanuel » Fri Mar 26, 2021 7:41 pm

Ya te he escrito
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 762
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: contactar a xmanuel para consulta

Postby jbrita » Thu Oct 12, 2023 11:04 pm

saludos. igual necesito hacer una consulta xmanuel
mi email jbricenotapia@gmail.com

saludos
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm

Re: contactar a xmanuel para consulta

Postby xmanuel » Fri Oct 13, 2023 8:51 pm

Dime por aquí!!!
______________________________________________________________________________
Sevilla - Andalucía
xmanuel
 
Posts: 762
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla

Re: contactar a xmanuel para consulta

Postby jbrita » Sun Oct 15, 2023 9:17 pm

Buenas Tarde manuel es posible desarrollar un wrapper largo para el api en C para
https://www.transbankdevelopers.cl/refe ... sintegrado

Esto es para trabajar con tarjetas de credito o debito en chile conectada la maquina a una computadora

Saludos
jbrita
 
Posts: 502
Joined: Mon Jan 16, 2006 3:42 pm


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 50 guests