contactar a xmanuel para consulta

Post Reply
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

contactar a xmanuel para consulta

Post by carlos vargas »

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


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



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


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: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Post by carlos vargas »

un poco de avance, creo que ya tengo el objeto en la parte c.

Code: Select all | Expand


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
cnavarro
Posts: 6555
Joined: Wed Feb 15, 2012 8:25 pm
Location: España
Been thanked: 3 times

Re: contactar a xmanuel para consulta

Post by cnavarro »

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
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Post by carlos vargas »

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)
xmanuel
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: contactar a xmanuel para consulta

Post by xmanuel »

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

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
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Post by carlos vargas »

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

Re: contactar a xmanuel para consulta

Post by carlos vargas »

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)
xmanuel
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: contactar a xmanuel para consulta

Post by xmanuel »

Dime tu correo y te escribo :roll:
______________________________________________________________________________
Sevilla - Andalucía
User avatar
carlos vargas
Posts: 1721
Joined: Tue Oct 11, 2005 5:01 pm
Location: Nicaragua

Re: contactar a xmanuel para consulta

Post by carlos vargas »

karlos.vargas at gmail dot com
Salu2
Carlos Vargas
Desde Managua, Nicaragua (CA)
xmanuel
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: contactar a xmanuel para consulta

Post by xmanuel »

Ya te he escrito
______________________________________________________________________________
Sevilla - Andalucía
jbrita
Posts: 506
Joined: Mon Jan 16, 2006 3:42 pm

Re: contactar a xmanuel para consulta

Post by jbrita »

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

saludos
xmanuel
Posts: 763
Joined: Sun Jun 15, 2008 7:47 pm
Location: Sevilla
Contact:

Re: contactar a xmanuel para consulta

Post by xmanuel »

Dime por aquí!!!
______________________________________________________________________________
Sevilla - Andalucía
jbrita
Posts: 506
Joined: Mon Jan 16, 2006 3:42 pm

Re: contactar a xmanuel para consulta

Post by jbrita »

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
Post Reply