Example #1
0
File: NSM.C Project: imv/non
void
set_nsm_callbacks ( nsm_client_t *nsm )
{
    nsm_set_open_callback( nsm, command_open, 0 );
    nsm_set_save_callback( nsm, command_save, 0 );
    nsm_set_broadcast_callback( nsm, command_broadcast, 0 );
    nsm_set_session_is_loaded_callback( nsm, command_session_is_loaded, 0 );
}
Example #2
0
void start_program(int argc, char **argv){

  QApplication app(argc, argv);

  {


    // nsm
    {
      const char *nsm_url = getenv( "NSM_URL" );
      if ( nsm_url )                                        
        {                                                     
          g_nsm = nsm_new();                                  
          
          printf("NSM: %p\n",g_nsm);

          nsm_set_open_callback( g_nsm, rc_nsm_open, 0 );     
          nsm_set_save_callback( g_nsm, rc_nsm_save, 0 );     
          
          if ( 0 == nsm_init( g_nsm, nsm_url ) )              
            {                                                
              signal(SIGTERM, rc_nsm_signalHanlder);
              nsm_send_announce( g_nsm, "Radium Compressor", "", argv[0] ); 
              g_nsm_timer.setInterval(50);
              g_nsm_timer.start();
              
            }                                                 
          else                                              
            {                                                 
              nsm_free( g_nsm );                              
              g_nsm = 0;                                      
            }                                                 
        }                                                     
    }

    if(g_nsm == NULL){
      if (g_compressor == NULL)
        g_compressor = COMPRESSOR_create(0);
      g_compressor_editor = create_compressor_editor(NULL, g_compressor);
      g_compressor_editor->show();
    }

    app.exec();

    if(g_compressor_editor != NULL)
      delete_compressor_editor(g_compressor_editor);
  }
}
Example #3
0
void NsmClient::createInitialClient()
{
	/*
	 * Make first contact with NSM server.
	 */

	nsm_client_t* nsm = 0;

	H2Core::Preferences *pPref = H2Core::Preferences::get_instance();
	QString H2ProcessName = pPref->getH2ProcessName();
	QByteArray byteArray = H2ProcessName.toLatin1();

	const char *nsm_url = getenv( "NSM_URL" );

	if ( nsm_url )
	{
		nsm = nsm_new();

		if ( nsm )
		{
			nsm_set_open_callback( nsm, nsm_open_cb, (void*) 0 );
			nsm_set_save_callback( nsm, nsm_save_cb, (void*) 0 );

			if ( nsm_init( nsm, nsm_url ) == 0 )
			{
				nsm_send_announce( nsm, "Hydrogen", "", byteArray.data() );
				nsm_check_wait( nsm, 10000 );

				if(pthread_create(&m_NsmThread, NULL, nsm_processEvent, nsm)) {
					___ERRORLOG("Error creating NSM thread\n	");
					return;
				}

			}
			else
			{
				___ERRORLOG("failed, freeing NSM client");
				nsm_free( nsm );
				nsm = 0;
			}
		}
	}
	else
	{
		___WARNINGLOG("No NSM URL available: no NSM management\n");
	}
}