int main (int argc, const char **argv) { VCHIQ_INSTANCE_T vchiq_instance; int success = -1; char response[ 128 ]; if (!is_filed_running()) { printf("vcfiled not running\n"); exit(-1); } vcos_init(); vcos_set_args(argc, argv); if (vchiq_initialise(&vchiq_instance) != VCHIQ_SUCCESS) { printf("* failed to open vchiq instance\n"); return -1; } // initialise the OS abstraction layer os_init(); vcos_log("vchi_initialise"); success = vchi_initialise( &global_initialise_instance); assert(success == 0); vchiq_instance = (VCHIQ_INSTANCE_T)global_initialise_instance; global_connection = vchi_create_connection(single_get_func_table(), vchi_mphi_message_driver_func_table()); vcos_log("vchi_connect"); vchi_connect(&global_connection, 1, global_initialise_instance); vc_vchi_gencmd_init (global_initialise_instance, &global_connection, 1); vc_vchi_dispmanx_init (global_initialise_instance, &global_connection, 1); vc_vchi_tv_init (global_initialise_instance, &global_connection, 1); vc_vchi_cec_init (global_initialise_instance, &global_connection, 1); vc_vchi_bufman_init (global_initialise_instance, &global_connection, 1); if ( success == 0 ) { success = vc_gencmd( response, sizeof(response), "set_vll_dir /sd/vlls" ); vcos_assert( success == 0 ); } vcos_log("VMCS services initialized."); message_queue_init (); host_app_message_handler (PLATFORM_MSG_INIT, 0, 0); dispatch_messages (); vcos_deinit (); return 0; }
void bcm_host_init(void) { VCHIQ_INSTANCE_T vchiq_instance; static int initted; int success = -1; char response[ 128 ]; if (initted) return; initted = 1; vcos_init(); if (vchiq_initialise(&vchiq_instance) != VCHIQ_SUCCESS) { printf("* failed to open vchiq instance\n"); exit(-1); } vcos_log("vchi_initialise"); success = vchi_initialise( &global_initialise_instance); vcos_assert(success == 0); vchiq_instance = (VCHIQ_INSTANCE_T)global_initialise_instance; global_connection = vchi_create_connection(single_get_func_table(), vchi_mphi_message_driver_func_table()); vcos_log("vchi_connect"); vchi_connect(&global_connection, 1, global_initialise_instance); vc_vchi_gencmd_init (global_initialise_instance, &global_connection, 1); vc_vchi_dispmanx_init (global_initialise_instance, &global_connection, 1); vc_vchi_tv_init (global_initialise_instance, &global_connection, 1); vc_vchi_cec_init (global_initialise_instance, &global_connection, 1); //vc_vchi_bufman_init (global_initialise_instance, &global_connection, 1); if ( success == 0 ) { success = vc_gencmd( response, sizeof(response), "set_vll_dir /sd/vlls" ); vcos_assert( success == 0 ); } }
int main(int argc, char **argv) { int res = 0; CURLcode curlerr; VCHI_INSTANCE_T vchiq_instance; VCHI_CONNECTION_T *vchi_connection; CEC_AllDevices_T logical_address; uint16_t physical_address; /* Make sure logs are written to disk */ setlinebuf(stdout); setlinebuf(stderr); if (argc > 2) { printf("usage: %s [port]\n", argv[0]); return -1; } if (argc == 2) { port = atoi(argv[1]); } curlerr = curl_global_init(CURL_GLOBAL_NOTHING); if ( curlerr ) { printf("failed to init curl error=%d \"%s\"\n", curlerr, curl_easy_strerror(curlerr)); return -1; } res = vchi_initialise(&vchiq_instance); if ( res != VCHIQ_SUCCESS ) { printf("failed to open vchiq instance\n"); return -1; } res = vchi_connect( NULL, 0, vchiq_instance ); if ( res != 0 ) { printf( "VCHI connection failed\n" ); return -1; } vc_vchi_cec_init(vchiq_instance, &vchi_connection, 1); if ( res != 0 ) { printf( "VCHI CEC connection failed\n" ); return -1; } vc_cec_register_callback(((CECSERVICE_CALLBACK_T) cec_callback), NULL); #if 0 vc_cec_register_all(); #endif vc_cec_get_logical_address(&logical_address); printf("logical_address: 0x%x\n", logical_address); vc_cec_set_vendor_id(CEC_VENDOR_ID_BROADCOM); vc_cec_set_osd_name("XBMC"); vc_cec_get_physical_address(&physical_address); printf("physical_address: 0x%x\n", physical_address); vc_cec_send_ActiveSource(physical_address, 0); while (1) { might_be_dimmed = 1; sleep(10); } vchi_exit(); curl_global_cleanup(); return 0; }