亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? bonjour.c

?? uclinux 下的vlc播放器源代碼
?? C
字號:
/***************************************************************************** * bonjour.c ***************************************************************************** * Copyright (C) 2005 the VideoLAN team * $Id: bonjour.c 14187 2006-02-07 16:37:40Z courmisch $ * * Authors: Jon Lech Johansen <jon@nanocrew.net> * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program; if not, write to the Free Software * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston MA 02110-1301, USA. *****************************************************************************//***************************************************************************** * Preamble *****************************************************************************/#include <stdlib.h>#include <vlc/vlc.h>#ifdef HAVE_AVAHI_CLIENT#include <vlc/intf.h>#include <vlc/sout.h>#include <avahi-client/client.h>#ifdef HAVE_AVAHI_06# include <avahi-client/publish.h># include <avahi-client/lookup.h>#endif#include <avahi-common/alternative.h>#include <avahi-common/simple-watch.h>#include <avahi-common/malloc.h>#include <avahi-common/error.h>/***************************************************************************** * Structures *****************************************************************************/typedef struct poll_thread_t{    VLC_COMMON_MEMBERS    AvahiSimplePoll     *simple_poll;} poll_thread_t;typedef struct bonjour_t{    vlc_object_t        *p_log;    poll_thread_t       *poll_thread;    AvahiSimplePoll     *simple_poll;    AvahiEntryGroup     *group;    AvahiClient         *client;    char                *psz_stype;    char                *psz_name;    int                 i_port;    char                *psz_txt;} bonjour_t;/***************************************************************************** * Prototypes *****************************************************************************/static int create_service( bonjour_t * );/***************************************************************************** * entry_group_callback *****************************************************************************/static void entry_group_callback( AvahiEntryGroup *g,                                  AvahiEntryGroupState state,                                  void *userdata ){    bonjour_t *p_sys = (bonjour_t *)userdata;    if( state == AVAHI_ENTRY_GROUP_ESTABLISHED )    {        msg_Dbg( p_sys->p_log, "service '%s' successfully established",                 p_sys->psz_name );    }    else if( state == AVAHI_ENTRY_GROUP_COLLISION )    {        char *n;        n = avahi_alternative_service_name( p_sys->psz_name );        avahi_free( p_sys->psz_name );        p_sys->psz_name = n;        create_service( p_sys );    }}/***************************************************************************** * create_service *****************************************************************************/static int create_service( bonjour_t *p_sys ){    int error;    if( p_sys->group == NULL )    {        p_sys->group = avahi_entry_group_new( p_sys->client,                                              entry_group_callback,                                              p_sys );        if( p_sys->group == NULL )        {            msg_Err( p_sys->p_log, "failed to create avahi entry group: %s",                     avahi_strerror( avahi_client_errno( p_sys->client ) ) );            return VLC_EGENERIC;        }    }    error = avahi_entry_group_add_service( p_sys->group, AVAHI_IF_UNSPEC,#ifdef HAVE_AVAHI_06                                           AVAHI_PROTO_UNSPEC, 0, p_sys->psz_name,#else                                           AVAHI_PROTO_UNSPEC, p_sys->psz_name,#endif                                           p_sys->psz_stype, NULL, NULL,                                           p_sys->i_port,                                           p_sys->psz_txt, NULL );    if( error < 0 )    {        msg_Err( p_sys->p_log, "failed to add %s service: %s",                 p_sys->psz_stype, avahi_strerror( error ) );        return VLC_EGENERIC;    }    error = avahi_entry_group_commit( p_sys->group );    if( error < 0 )    {        msg_Err( p_sys->p_log, "failed to commit entry group: %s",                 avahi_strerror( error ) );        return VLC_EGENERIC;    }    return VLC_SUCCESS;}/***************************************************************************** * client_callback *****************************************************************************/static void client_callback( AvahiClient *c,                             AvahiClientState state,                             void * userdata ){    bonjour_t *p_sys = (bonjour_t *)userdata;    if( state == AVAHI_CLIENT_S_RUNNING )    {        p_sys->client = c;        create_service( p_sys );    }    else if( state == AVAHI_CLIENT_S_COLLISION )    {        if( p_sys->group != NULL )            avahi_entry_group_reset( p_sys->group );    }#ifdef HAVE_AVAHI_06    else if( state == AVAHI_CLIENT_FAILURE &&              (avahi_client_errno(c) == AVAHI_ERR_DISCONNECTED) )#else    else if( state == AVAHI_CLIENT_DISCONNECTED )#endif    {        msg_Err( p_sys->p_log, "avahi client disconnected" );        avahi_simple_poll_quit( p_sys->simple_poll );    }}/***************************************************************************** * poll_iterate_thread *****************************************************************************/static void poll_iterate_thread( poll_thread_t *p_pt ){    vlc_thread_ready( p_pt );    while( !p_pt->b_die )        if( avahi_simple_poll_iterate( p_pt->simple_poll, 100 ) != 0 )            break;}/***************************************************************************** * bonjour_start_service *****************************************************************************/void *bonjour_start_service( vlc_object_t *p_log, char *psz_stype,                            char *psz_name, int i_port, char *psz_txt ){    int err;    bonjour_t *p_sys;    p_sys = (bonjour_t *)malloc( sizeof(*p_sys) );    if( p_sys == NULL )    {        msg_Err( p_log, "out of memory" );        return NULL;    }    memset( p_sys, 0, sizeof(*p_sys) );    p_sys->p_log = p_log;    p_sys->i_port = i_port;    p_sys->psz_name = avahi_strdup( psz_name );    p_sys->psz_stype = avahi_strdup( psz_stype );    if( p_sys->psz_name == NULL || p_sys->psz_stype == NULL )    {        msg_Err( p_sys->p_log, "out of memory" );        goto error;    }    if( psz_txt != NULL )    {        p_sys->psz_txt = avahi_strdup( psz_txt );        if( p_sys->psz_txt == NULL )        {            msg_Err( p_sys->p_log, "out of memory" );            goto error;        }    }    p_sys->simple_poll = avahi_simple_poll_new();    if( p_sys->simple_poll == NULL )    {        msg_Err( p_sys->p_log, "failed to create avahi simple pool" );        goto error;    }    p_sys->client = avahi_client_new( avahi_simple_poll_get(p_sys->simple_poll),#ifdef HAVE_AVAHI_06                                      0,#endif                                      client_callback, p_sys, &err );    if( p_sys->client == NULL )    {        msg_Err( p_sys->p_log, "failed to create avahi client: %s",                 avahi_strerror( err ) );        goto error;    }    p_sys->poll_thread = vlc_object_create( p_sys->p_log,                                            sizeof(poll_thread_t) );    if( p_sys->poll_thread == NULL )    {        msg_Err( p_sys->p_log, "out of memory" );        goto error;    }    p_sys->poll_thread->simple_poll = p_sys->simple_poll;    if( vlc_thread_create( p_sys->poll_thread, "Avahi Poll Iterate Thread",                           poll_iterate_thread,                           VLC_THREAD_PRIORITY_HIGHEST, VLC_FALSE ) )    {        msg_Err( p_sys->p_log, "failed to create poll iterate thread" );        goto error;    }    return (void *)p_sys;error:    if( p_sys->poll_thread != NULL )        vlc_object_destroy( p_sys->poll_thread );    if( p_sys->client != NULL )        avahi_client_free( p_sys->client );    if( p_sys->simple_poll != NULL )        avahi_simple_poll_free( p_sys->simple_poll );    if( p_sys->psz_stype != NULL )        avahi_free( p_sys->psz_stype );    if( p_sys->psz_name != NULL )        avahi_free( p_sys->psz_name );    if( p_sys->psz_txt != NULL )        avahi_free( p_sys->psz_txt );    free( (void *)p_sys );    return NULL;}/***************************************************************************** * bonjour_stop_service *****************************************************************************/void bonjour_stop_service( void *_p_sys ){    bonjour_t *p_sys = (bonjour_t *)_p_sys;    if( p_sys->poll_thread->b_thread )    {        p_sys->poll_thread->b_die = 1;        vlc_thread_join( p_sys->poll_thread );    }    vlc_object_destroy( p_sys->poll_thread );    if( p_sys->group != NULL )        avahi_entry_group_free( p_sys->group );    avahi_client_free( p_sys->client );    avahi_simple_poll_free( p_sys->simple_poll );    if( p_sys->psz_name != NULL )        avahi_free( p_sys->psz_name );    if( p_sys->psz_txt != NULL )        avahi_free( p_sys->psz_txt );    avahi_free( p_sys->psz_stype );    free( _p_sys );}#endif /* HAVE_AVAHI_CLIENT */

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
97久久精品人人澡人人爽| 久久国产生活片100| 日本一区二区电影| 久久久久久久久久美女| 26uuu亚洲综合色欧美| 久久欧美中文字幕| 久久久久久久久伊人| 中文字幕成人av| 亚洲三级免费电影| 樱花草国产18久久久久| 亚洲国产精品久久久久婷婷884 | 麻豆精品一二三| 日本视频中文字幕一区二区三区| 日日噜噜夜夜狠狠视频欧美人| 亚洲18色成人| 久久超碰97人人做人人爱| 国模少妇一区二区三区| 成人午夜视频在线观看| 99精品国产视频| 欧美日韩久久一区二区| 91精品午夜视频| 久久久久久久久久久久久久久99 | 久久精品视频一区| 国产精品色哟哟| 亚洲人123区| 日韩成人免费电影| 国产精品主播直播| 在线观看区一区二| 日韩欧美资源站| 国产精品国产自产拍高清av| 亚洲已满18点击进入久久| 美女高潮久久久| eeuss鲁片一区二区三区| 在线观看视频91| 国产日韩av一区| 一区二区在线免费观看| 精品一区二区三区视频在线观看 | 蜜臀av性久久久久蜜臀aⅴ| 国产高清精品网站| 欧美日韩在线播| 国产色91在线| 秋霞电影一区二区| 91在线免费视频观看| 精品处破学生在线二十三| 最新国产の精品合集bt伙计| 免费人成精品欧美精品| 99精品1区2区| 久久亚洲一级片| 日本特黄久久久高潮| gogo大胆日本视频一区| 337p粉嫩大胆色噜噜噜噜亚洲| 亚洲激情中文1区| 国产精品99久久久久久久女警 | 91啪亚洲精品| 久久久久久久久伊人| 午夜在线电影亚洲一区| 91在线云播放| 国产精品三级av| 韩国在线一区二区| 91麻豆精品国产91久久久资源速度 | 国内精品国产三级国产a久久| 在线观看免费视频综合| 亚洲天堂2014| eeuss影院一区二区三区| 国产欧美一区二区精品忘忧草 | 国产乱色国产精品免费视频| 欧美男同性恋视频网站| 亚洲午夜一区二区三区| 欧美最猛性xxxxx直播| 亚洲欧美激情在线| 91在线看国产| 亚洲伦理在线精品| 色噜噜狠狠一区二区三区果冻| 亚洲欧洲精品一区二区精品久久久 | 久久激情五月婷婷| 欧美一二三区在线观看| 免费观看成人av| 日韩视频123| 韩日精品视频一区| 久久亚洲免费视频| 国产91精品入口| 国产精品国产三级国产aⅴ原创| 成人免费毛片a| 亚洲欧洲av在线| 欧美亚州韩日在线看免费版国语版| 亚洲视频1区2区| 欧美三区在线观看| 免费人成网站在线观看欧美高清| 欧美r级在线观看| 国产精品白丝jk黑袜喷水| 欧美高清在线精品一区| 成人精品视频一区| 尤物av一区二区| 日韩欧美一区在线观看| 国产精品一区二区果冻传媒| 中文字幕精品在线不卡| 一本大道久久a久久综合| 亚洲成a人在线观看| 欧美tk—视频vk| 99综合影院在线| 三级影片在线观看欧美日韩一区二区| 欧美一级淫片007| 国产高清不卡一区二区| 亚洲精品免费在线播放| 日韩欧美一级二级三级久久久| 国产成人一区在线| 一区二区三区中文字幕| 日韩免费在线观看| 91麻豆产精品久久久久久 | 国产乱码一区二区三区| 亚洲欧美日韩精品久久久久| 6080日韩午夜伦伦午夜伦| 国产不卡视频一区| 亚洲狠狠爱一区二区三区| 久久色在线视频| 欧美视频在线观看一区二区| 黑人精品欧美一区二区蜜桃| 伊人一区二区三区| 国产亚洲一区二区三区在线观看| 欧美在线观看禁18| 高清成人在线观看| 美国av一区二区| 五月婷婷激情综合网| 国产精品国产自产拍在线| 欧美va亚洲va香蕉在线| 欧美色图在线观看| 99久久国产综合色|国产精品| 久久99久久99小草精品免视看| 亚洲欧美偷拍另类a∨色屁股| 精品国产伦一区二区三区观看方式 | 一区二区在线观看视频在线观看| 欧美一级高清片| 在线亚洲一区观看| 国产ts人妖一区二区| 美女尤物国产一区| 亚洲成人精品在线观看| 亚洲免费在线观看视频| 国产婷婷色一区二区三区在线| 欧美蜜桃一区二区三区| 日本韩国欧美一区二区三区| 国产精品一区二区三区四区 | 极品美女销魂一区二区三区| 亚洲成人一区二区| 日韩美女视频19| 亚洲国产精品高清| 国产日产欧美一区二区视频| 欧美一卡二卡三卡| 欧美放荡的少妇| 91精品福利在线| 91精品福利视频| 欧美丝袜第三区| 欧美日韩在线播| 欧美精品v国产精品v日韩精品| 日本久久精品电影| 欧美中文字幕不卡| 欧美日韩一区小说| 欧美久久久一区| 日韩一区二区在线观看视频| 91精品国产综合久久久久久漫画| 欧美日韩国产中文| 欧美一区二区三区电影| 精品少妇一区二区三区在线视频| 欧美一区二区三区视频在线| 日韩欧美专区在线| 久久久久久久久久久久久久久99 | 亚洲人成在线观看一区二区| 亚洲欧洲性图库| 亚洲综合一区二区| 首页欧美精品中文字幕| 美国毛片一区二区| 高清日韩电视剧大全免费| 一本色道综合亚洲| 精品视频在线免费看| 91精品国产欧美一区二区成人 | 91在线观看美女| eeuss鲁片一区二区三区在线看| 91视频www| 欧美一级一级性生活免费录像| 久久久亚洲精品石原莉奈| 欧美激情中文不卡| 亚洲福利一二三区| 国产一区二区精品在线观看| av在线综合网| 日韩一区二区三区四区五区六区| 亚洲精品在线免费播放| 国产精品免费av| 日本vs亚洲vs韩国一区三区二区| 国产一区二区看久久| 在线视频欧美区| 国产三级精品三级| 午夜精品国产更新| 国产成人午夜99999| 欧美男人的天堂一二区| 欧美高清在线精品一区| 午夜视频一区二区| www.激情成人| 日韩欧美国产综合一区| 一区二区三区日韩欧美| 国产高清不卡二三区| 欧美一区二区三区爱爱|