Exemplo n.º 1
0
int main(int argc, char** argv)
{

	//check the correct usage
	if (argc != 3){
		printf("Usage: %s <port> <filename>\n", argv[0]);
		exit(1);
	}

	/*
	 * initialize the mp3channel library, you can modify the parameters of
	 * setMP3Params:
	 * 	1st - maximum queue size
	 * 	2nd - 0 for no congestion / 1 activates random traffic
	 * 	3rd - packet transmission delay
	 * 	4th - probability of packet loss (value between 0 and 1)
	 * 	5th - probability of corrupting one byte of a packet that was not dropped
	 *
	 *	DO NOT use this function anywhere else in your code, or your score will be 0
	 */
	mp3_init();
	setMP3Params(1000, 0, 10000, 0.0, 0.0);

	// Run start the client
	run_receiver(argv[1], argv[2]);

	// Once the client has received the file, print stats on the client side and exit
	printMP3Statistics();

	return 0;
}
Exemplo n.º 2
0
int main(void) {
	//allow everything to settle/boot/etc
	//(mainly the mp3 chip takes a while to boot up)
	_delay_ms(2000);

	servo_init();
	keypad_init();
	display_init();
	thermistor_init();
	ssr_init();
	init_timers();
	mp3_init();

	tea_off();

	PMIC.CTRL |= PMIC_MEDLVLEN_bm | PMIC_LOLVLEN_bm | PMIC_HILVLEN_bm;
	sei();

	//another 100 for things to settle
	_delay_ms(100);

	//welcome
	mp3_play(10);

	while (1) {
		char key;
		if ((key = keypad_getc()))
			handle_key(key);
	}
}
Exemplo n.º 3
0
void MP3Encoder::AttachedToTrack()
{
	if (!m_buffer) m_buffer = (char *)malloc(m_chunkSize);
	mpeg1waveformat header;
	header.wFormatTag = WAVE_FORMAT_MPEG;
	header.nChannels = m_format.channel_count;
	header.nSamplesPerSec = (int32)m_format.frame_rate;
	header.nAvgBytesPerSec = (int32)(128000.0/8);
	header.nBlockAlign = 1;
	header.wBitsPerSample = 0;
	header.cbSize = 22;
	header.fwHeadLayer = MPEG_LAYER3;
	header.dwHeadBitrate = (int32)128000.0;
	header.fwHeadMode = (m_format.channel_count != 1) ? MPEG_STEREO : MPEG_SINGLECHANNEL;
	header.fwHeadModeExt = 0;
	//	We might want to allow for settable emphasis?
	header.wHeadEmphasis = MPEG_EMPHASIS_NONE;
	//	We might want to add protection here (CRC)
	header.fwHeadFlags = MPEG_COPYRIGHT | MPEG_ORIGINALHOME | MPEG_ID_MPEG1;
	header.dwPTSLow = 0;
	header.dwPTSHigh = 0;

	AddTrackInfo(0, (const char*)&header, sizeof(header));

	(void)mp3_init(m_format.channel_count != 1, m_format.frame_rate, 128000.0, &m_cookie);
}
Exemplo n.º 4
0
bool get_metadata(char *file, MetaData *m)
{
   ID3v1           id31(NULL);
   ID3v2           id3(NULL);
   string          url("file://");
   FILE           *source;
   unsigned char   buffer[4096];
   int             bytes;
   mp3_info        mcontext;

   source = fopen(file, "rb");
   if (source == NULL)
      return false;

   mp3_init(&mcontext);

   fseek(source, 0, SEEK_SET);
   for(;;)
   {
       bytes = fread(buffer, 1, 4096, source);
       if (bytes <= 0)
       {
          break;
       }
       mp3_update(&mcontext, buffer, bytes);
   }   
   mp3_final(&mcontext);

   if (mcontext.duration > 0)
      m->SetTime(mcontext.duration);

   url += string(file);
   id31.ReadMetaData(url.c_str(), m);
   return id3.ReadMetaData(url.c_str(), m);
}
Exemplo n.º 5
0
Arquivo: main.c Projeto: jonny91/alice
void main()
{
	sys_init();
//	INIT_COM();

	uart_init();
	mp3_init();

		play_mp3(0,1);
	while(1)
	{
		p05 = 1;
	}
}
Exemplo n.º 6
0
int main(int argc, char **argv)
{
    fd_set read_fd_set;

    struct timeval tv;
    tv.tv_sec = 0;
    tv.tv_usec = 0;

    int input_fd = serial_init("/dev/tty.usbserial-A4013GAY", 9600);

    // int input_fd = STDIN_FILENO;

    // -- Initialize -- //
    ao_initialize();

    sin_init();
    mp3_init("hey.mp3", "ho.mp3");

    write(input_fd, "s", 1);

    for (;;) {
        
        FD_ZERO(&read_fd_set);
        FD_SET(input_fd, &read_fd_set);

        if (select(FD_SETSIZE, &read_fd_set, NULL, NULL, &tv) < 0) {
            perror("select");
            exit(1);
        }
        if (FD_ISSET(input_fd, &read_fd_set)) {
            handleInput(input_fd);
        }

        switch (global_mode) {
            case SQUARE_WAVE_MODE:
            case SAWTOOTH_WAV_MODE:
            case MP3_MODE:
                mp3_play();
                break;
            case SIN_WAVE_MODE:
            default:
                sin_play();
                break;
        }
    }

    ao_shutdown();

    return 0;
}
Exemplo n.º 7
0
/**
 * Play a MP3 file.
 * If the channel is playing, it's stopped before.
 * The file is automatically closed if no error is reported.
 * \param channel Channel to use.
 * \param file File to play.
 * \param loop If loop the playing.
 */
adv_error mixer_play_file_mp3(unsigned channel, adv_fz* file, adv_bool loop)
{
	mixer_channel_abort(channel);

	mixer_channel_alloc(channel, mixer_mp3_file, loop);

	mixer_map[channel].file = file;
	mixer_map[channel].start = fztell(file);
	mixer_map[channel].end = fzsize(file);
	mixer_map[channel].pos = mixer_map[channel].start;

	mp3_init(&mixer_map[channel].mp3);

	return 0;
}
Exemplo n.º 8
0
Arquivo: main.c Projeto: kismit/MP3
int main()
{
    mp3_init();
    
    pthread_create(&thread,NULL,player,0);
    pthread_mutex_init(&player_mutex,NULL);
    pthread_cond_init(&player_ready,NULL);
    
    ctrl_loop();//¼àÌý°´¼ü
    
    pthread_mutex_destroy(&player_mutex);
    pthread_cond_destroy(&player_ready);
    
    return 0;
}
Exemplo n.º 9
0
void player_init(void)
{
  dac_init();
	wav_init(buf, sizeof(buf));
	mp3_init(buf, sizeof(buf));
	aac_init(buf, sizeof(buf));
	
  songlist_build(&songlist);
  songlist_sort(&songlist);
  
  for (int i = 0; i < songlist.size; i++)
  {
    read_song_info_for_song(&(songlist.list[i]), &songinfo);
    iprintf("%s\n", songinfo.artist);
  }
}
Exemplo n.º 10
0
static int mp3_open (mp3_s *mp3, char *filename)
{
  int ret;
  struct stat filestat;

  mp3_init (mp3);
  if ((mp3->file = fopen (filename, "r")) <= 0) {
    printf ("Problem opening file \'%s\'\n", filename);
    return -1;
  }
  fstat (fileno (mp3->file), &filestat);
  while ((ret = mp3_decode_frame (mp3)) == DECODE_CONT)
    ; //nothing
  mp3->total_time = (filestat.st_size * 8.0) / mp3->frame.header.bitrate;

  return ret;
}
Exemplo n.º 11
0
int _init_decoder(audio_decoder_p decoder, void *dec_ext)
{
	priv_data_p priv = (priv_data_p) decoder->priv_data;
	assert(priv != NULL);

	// Init private data
	priv->mCurrentPos = 0;
	priv->mFixedHeader = 0;
	memset(&(priv->pcm), 0, sizeof(pcm_data_t));

	switch (decoder->audio_type) {
	case AUDIO_TYPE_MP3: {
		int ret = mp3_init(decoder, dec_ext);
		RETURN_VAL_IF_FAIL((ret == AUDIO_DECODER_OK), ret);
		break;
	}

	case AUDIO_TYPE_AAC: {
		int ret = aac_init(decoder, dec_ext);
		RETURN_VAL_IF_FAIL((ret == AUDIO_DECODER_OK), ret);
		break;
	}

#ifdef CONFIG_CODEC_LIBOPUS
	case AUDIO_TYPE_OPUS: {
		int ret = opus_init(decoder, dec_ext);
		RETURN_VAL_IF_FAIL((ret == AUDIO_DECODER_OK), ret);
		break;
	}
#endif

	default:
		// Maybe do not need to init, return success.
		return AUDIO_DECODER_OK;
	}

	return AUDIO_DECODER_OK;
}
Exemplo n.º 12
0
static void init(void)
{
    int rc;
    bool mounted = false;
#if CONFIG_CHARGING && (CONFIG_CPU == SH7034)
    /* if nobody initialized ATA before, I consider this a cold start */
    bool coldstart = (PACR2 & 0x4000) != 0; /* starting from Flash */
#endif

    system_init();
    kernel_init();

#ifdef HAVE_ADJUSTABLE_CPU_FREQ
    set_cpu_frequency(CPUFREQ_NORMAL);
#ifdef CPU_COLDFIRE
    coldfire_set_pllcr_audio_bits(DEFAULT_PLLCR_AUDIO_BITS);
#endif
    cpu_boost(true);
#endif
    
    buffer_init();

    settings_reset();

    i2c_init();
    
    power_init();

    enable_irq();
#ifdef CPU_ARM
    enable_fiq();
#endif
    /* current_tick should be ticking by now */
    CHART("ticking");

    lcd_init();
#ifdef HAVE_REMOTE_LCD
    lcd_remote_init();
#endif
    font_init();

    CHART(">show_logo");
    show_logo();
    CHART("<show_logo");
    lang_init(core_language_builtin, language_strings, 
              LANG_LAST_INDEX_IN_ARRAY);

#ifdef DEBUG
    debug_init();
#else
#ifdef HAVE_SERIAL
    serial_setup();
#endif
#endif

#if CONFIG_RTC
    rtc_init();
#endif
#ifdef HAVE_RTC_RAM
    CHART(">settings_load(RTC)");
    settings_load(SETTINGS_RTC); /* early load parts of global_settings */
    CHART("<settings_load(RTC)");
#endif

    adc_init();

    usb_init();
#if CONFIG_USBOTG == USBOTG_ISP1362
    isp1362_init();
#elif CONFIG_USBOTG == USBOTG_M5636
    m5636_init();
#endif

    backlight_init();

    button_init();

    powermgmt_init();

#if CONFIG_TUNER
    radio_init();
#endif

    /* Keep the order of this 3 (viewportmanager handles statusbars)
     * Must be done before any code uses the multi-screen API */
    CHART(">gui_syncstatusbar_init");
    gui_syncstatusbar_init(&statusbars);
    CHART("<gui_syncstatusbar_init");
    CHART(">sb_skin_init");
    sb_skin_init();
    CHART("<sb_skin_init");
    CHART(">gui_sync_wps_init");
    gui_sync_wps_init();
    CHART("<gui_sync_wps_init");
    CHART(">viewportmanager_init");
    viewportmanager_init();
    CHART("<viewportmanager_init");

#if CONFIG_CHARGING && (CONFIG_CPU == SH7034)
    /* charger_inserted() can't be used here because power_thread()
       hasn't checked power_input_status() yet */
    if (coldstart && (power_input_status() & POWER_INPUT_MAIN_CHARGER)
        && !global_settings.car_adapter_mode
#ifdef ATA_POWER_PLAYERSTYLE
        && !ide_powered() /* relies on probing result from bootloader */
#endif
        )
    {
        rc = charging_screen(); /* display a "charging" screen */
        if (rc == 1)            /* charger removed */
            power_off();
        /* "On" pressed or USB connected: proceed */
        show_logo();  /* again, to provide better visual feedback */
    }
#endif

    CHART(">storage_init");
    rc = storage_init();
    CHART("<storage_init");
    if(rc)
    {
#ifdef HAVE_LCD_BITMAP
        lcd_clear_display();
        lcd_putsf(0, 1, "ATA error: %d", rc);
        lcd_puts(0, 3, "Press ON to debug");
        lcd_update();
        while(!(button_get(true) & BUTTON_REL)); /*DO NOT CHANGE TO ACTION SYSTEM */
        dbg_ports();
#endif
        panicf("ata: %d", rc);
    }

#ifdef HAVE_EEPROM_SETTINGS
    CHART(">eeprom_settings_init");
    eeprom_settings_init();
    CHART("<eeprom_settings_init");
#endif

#ifndef HAVE_USBSTACK
    usb_start_monitoring();
    while (usb_detect() == USB_INSERTED)
    {
#ifdef HAVE_EEPROM_SETTINGS
        firmware_settings.disk_clean = false;
#endif
        /* enter USB mode early, before trying to mount */
        if (button_get_w_tmo(HZ/10) == SYS_USB_CONNECTED)
#if (CONFIG_STORAGE & STORAGE_MMC)
            if (!mmc_touched() ||
                (mmc_remove_request() == SYS_HOTSWAP_EXTRACTED))
#endif
            {
                gui_usb_screen_run();
                mounted = true; /* mounting done @ end of USB mode */
            }
#ifdef HAVE_USB_POWER
        if (usb_powered())      /* avoid deadlock */
            break;
#endif
    }
#endif

    if (!mounted)
    {
        CHART(">disk_mount_all");
        rc = disk_mount_all();
        CHART("<disk_mount_all");
        if (rc<=0)
        {
            lcd_clear_display();
            lcd_puts(0, 0, "No partition");
            lcd_puts(0, 1, "found.");
#ifdef HAVE_LCD_BITMAP
            lcd_puts(0, 2, "Insert USB cable");
            lcd_puts(0, 3, "and fix it.");
#endif
            lcd_update();

            while(button_get(true) != SYS_USB_CONNECTED) {};
            gui_usb_screen_run();
            system_reboot();
        }
    }

#if defined(SETTINGS_RESET) || (CONFIG_KEYPAD == IPOD_4G_PAD) || \
    (CONFIG_KEYPAD == IRIVER_H10_PAD)
#ifdef SETTINGS_RESET
    /* Reset settings if holding the reset button. (Rec on Archos,
       A on Gigabeat) */
    if ((button_status() & SETTINGS_RESET) == SETTINGS_RESET)
#else
    /* Reset settings if the hold button is turned on */
    if (button_hold())
#endif
    {
        splash(HZ*2, str(LANG_RESET_DONE_CLEAR));
        settings_reset();
    }
    else
#endif
    {
        CHART(">settings_load(ALL)");
        settings_load(SETTINGS_ALL);
        CHART("<settings_load(ALL)");
    }

    CHART(">init_dircache(true)");
    rc = init_dircache(true);
    CHART("<init_dircache(true)");
    if (rc < 0)
    {
#ifdef HAVE_TAGCACHE
        remove(TAGCACHE_STATEFILE);
#endif
    }

    CHART(">settings_apply(true)");
    settings_apply(true);        
    CHART("<settings_apply(true)");
    CHART(">init_dircache(false)");
    init_dircache(false);
    CHART("<init_dircache(false)");
#ifdef HAVE_TAGCACHE
    CHART(">init_tagcache");
    init_tagcache();
    CHART("<init_tagcache");
#endif

#ifdef HAVE_EEPROM_SETTINGS
    if (firmware_settings.initialized)
    {
        /* In case we crash. */
        firmware_settings.disk_clean = false;
        CHART(">eeprom_settings_store");
        eeprom_settings_store();
        CHART("<eeprom_settings_store");
    }
#endif
    playlist_init();
    tree_mem_init();
    filetype_init();
    scrobbler_init();
#if CONFIG_CODEC == SWCODEC
    tdspeed_init();
#endif /* CONFIG_CODEC == SWCODEC */

#if CONFIG_CODEC != SWCODEC
    /* No buffer allocation (see buffer.c) may take place after the call to
       audio_init() since the mpeg thread takes the rest of the buffer space */
    mp3_init( global_settings.volume,
              global_settings.bass,
              global_settings.treble,
              global_settings.balance,
              global_settings.loudness,
              global_settings.avc,
              global_settings.channel_config,
              global_settings.stereo_width,
              global_settings.mdb_strength,
              global_settings.mdb_harmonics,
              global_settings.mdb_center,
              global_settings.mdb_shape,
              global_settings.mdb_enable,
              global_settings.superbass);

     /* audio_init must to know the size of voice buffer so init voice first */
    talk_init();
#endif /* CONFIG_CODEC != SWCODEC */

    CHART(">audio_init");
    audio_init();
    CHART("<audio_init");

#if (CONFIG_CODEC == SWCODEC) && defined(HAVE_RECORDING) && !defined(SIMULATOR)
    pcm_rec_init();
#endif

    /* runtime database has to be initialized after audio_init() */
    cpu_boost(false);

#if CONFIG_CHARGING
    car_adapter_mode_init();
#endif
#ifdef IPOD_ACCESSORY_PROTOCOL
    iap_setup(global_settings.serial_bitrate);
#endif
#ifdef HAVE_ACCESSORY_SUPPLY
    accessory_supply_set(global_settings.accessory_supply);
#endif
#ifdef HAVE_LINEOUT_POWEROFF
    lineout_set(global_settings.lineout_active);
#endif
#ifdef HAVE_HOTSWAP_STORAGE_AS_MAIN
    CHART("<check_bootfile(false)");
    check_bootfile(false); /* remember write time and filesize */
    CHART(">check_bootfile(false)");
#endif
    CHART("<settings_apply_skins");
    settings_apply_skins();
    CHART(">settings_apply_skins");
}
Exemplo n.º 13
0
int main(void)
{
  // schrittmotoren initialisieren, also die DDRs richtig setzen
  sm_init(0);
  sm_init(1);
  sm_init(2);
  
  // DDR fuer knopf und mp3-player setzen
  BUTTON_DDR  &= ~(1 << BUTTON);
  BUTTON_PORT |=  (1 << BUTTON);
  LED_DDR     |=  (1 << LED);
  mp3_init();

  // die aufgabenliste initialisieren...
  tasklist_init();

  // ...und mit aufgaben fuellen: 
  // (motor, startzeit, schritte, geschwindigkeit, drehrichtung)
  
  /* Alle 0,5ms wird ein Interrupt generiert. D.h. die maximale Geschwindigkeit
   * betraegt /einen/ (Schritt nur bei GND-Flanke! 2x toggeln = 1 Schritt)
   * Schritt in einer Milisekunde, also 1000 Schritte pro Sekunde. 
   *
   * Schritt = 0,9°
   *
   * Schritte pro Sekunde  = 1000 / Geschwindigkeit        [1/s]
   * Winkelgeschwindigkeit = 1000 / Geschwindigkeit * 0,9° [°/s]
   */

  // 2112 * 124/1000 = 262s (Schritte * Sekunden/Schritt = Sekunden)
  //tasklist_add(0,  2*SECONDS, 4224*STEPS, 124, CCW); // putzfrau (262s lang)
  //tasklist_add(1,  2*SECONDS, 4224*STEPS, 124, CCW); // putzfrau (262s lang)
  //tasklist_add(2,  2*SECONDS, 4224*STEPS, 124, CCW); // putzfrau (262s lang)

  tasklist_add(0,   2*SECONDS, 4224*STEPS, 124,  CW); // putzfrau (262s lang)

  tasklist_add(1,  50*SECONDS,  267*STEPS, 180, CCW); // patient vorwaerts
//  tasklist_add(1, 263*SECONDS,  257*STEPS, 180,  CW); // patient rueckwaerts

  tasklist_add(2,  70*SECONDS, 80*STEPS,   116, CW); // arzt
  tasklist_add(2,  94*SECONDS, 80*STEPS,   116, CW); // pfleger
  tasklist_add(2, 126*SECONDS, 80*STEPS,   116, CW); // therapeuth
  tasklist_add(2, 163*SECONDS, 80*STEPS,   116, CW); // sozialdienst
  tasklist_add(2, 208*SECONDS, 78*STEPS,   116, CW); // lehrer

  // mp3-player einschalten
  mp3_power();

  // syncen
  start(1);

  while(1)
  {
    // wenn das modell gerade nichts tut (also kein lock gesetzt; lock = 0),
    // dann koennen wir testen, ob die taste gedrueckt wurde. wenn dies der
    // fall ist, koennen wir mit dem durchlauf anfangen (start()). start()
    // kuemmert sich auch um den lock (lock = 1)
    if(lock == 0)
    {
      if(!bit_is_set (BUTTON_PIN, BUTTON))
        start(0);
    }
    else
    {
      if(sync_m1 && (adc_read(M1_LICHTSCHRANKE_CHANNEL) > 700))
        sync_m1 = 0;
    
      if(sync_m2 && (adc_read(M2_LICHTSCHRANKE_CHANNEL) > 800))
        sync_m2 = 0;
    }
  }

  return 0;
}
Exemplo n.º 14
0
Arquivo: main.c Projeto: jonny91/alice
void main()
{
	sys_init();
	INIT_COM();
	uart_init();
	mp3_init();

	delay_ms(1000);
	play_mp3(0,6);

	while(1)
	{
		if((INPUT_22 == 0)&&(is_stop_bgm == 0))
		{
			delay_ms(50);
			if((INPUT_22 == 0)&&(is_stop_bgm == 0))
			{
				is_stop_bgm = 1;
				play_mp3(0,7);	//打断  空音频
			}
		}
		if(step == 0)
		{
			if( (step1_0 == 0) && (INPUT_40 == 0))
			{
				delay_ms(50);
				if( (step1_0 == 0) && (INPUT_40 == 0))
				{
					step1_0 = 1;
					play_mp3(0,1);	 //扇子
				}
			}

			if( (step1_1 == 0) && (INPUT_20 == 0))
			{
				delay_ms(50);
				if( (step1_1 == 0) && (INPUT_20 == 0))
				{
					step1_1 = 1;
					play_mp3(0,2);	   //手套
				}
			}
			
			if((step1_1 == 1)&&(step1_0 == 1)) //都放对了
			{
					OUTPUT_24 = 0; //电磁锁断电
			}

			if((step1_1 == 1)&&(step1_0 == 1) && (isPlayStep1_3_MUSIC == 0) && (step1_2 == 0) )
			{
				isPlayStep1_3_MUSIC = 1;
				delay_ms(5000);
				play_mp3(0,3); //接电线提示
			}

			if((step1_2 == 0)&&(INPUT_21 == 0))
			{
				delay_ms(50);
				if((step1_2 == 0)&&(INPUT_21 == 0))
				{
					step1_2 = 1;   //接电线完成
					isPlayStep1_3_MUSIC = 1;
				}
			}

			if((step1_0 == 1)&&(step1_1 == 1)&&(step1_2==1))
			{
				OUTPUT_43 = 0;
				delay_ms(6000);
				play_mp3(0,4); //接电线完成	+ 信箱提示
				step = 1;
			}
		}
		
		//信封
		if(step == 1)
		{
			if(INPUT_44 == 0)
			{
				message[0] = 1;
			}
			if(INPUT_45 == 0)
			{
				message[1] = 1;
			}
			if(INPUT_01 == 0)
			{
				message[2] = 1;
			}
			if(INPUT_02 == 0)
			{
				message[3] = 1;
			}


			if((message[0]==1)&&(message[1]==1)&&(message[2]==1)&&(message[3]==1))
			{
				 step = 2;		 //信封完成
				 OUTPUT_17 = 0;
				 play_mp3(0,5);	//全部摆对信封 + 玫瑰提示
				 OUTPUT_23 = 0;
			}
		} 
	} 
}
Exemplo n.º 15
0
int music_init(void)
{
	pspTime tm;

	cache_init();

	xrRtcGetCurrentClockLocalTime(&tm);
	srand(tm.microseconds);
	xr_lock_init(&music_l);

#ifdef ENABLE_MPC
	mpc_init();
#endif

#ifdef ENABLE_WAV
	wav_init();
#endif

#ifdef ENABLE_TTA
	tta_init();
#endif

#ifdef ENABLE_APE
	ape_init();
#endif

#ifdef ENABLE_MP3
	mp3_init();
#endif

#ifdef ENABLE_FLAC
	flac_init();
#endif

#ifdef ENABLE_OGG
	ogg_init();
#endif

#ifdef ENABLE_WMA
	wmadrv_init();
#endif

#ifdef ENABLE_WAVPACK
	wv_init();
#endif

#ifdef ENABLE_AT3
	at3_init();
#endif

#ifdef ENABLE_M4A
	m4a_init();
#endif

#ifdef ENABLE_AAC
	aac_init();
#endif

#ifdef ENABLE_AA3
	aa3_init();
#endif

	memset(&g_list, 0, sizeof(g_list));
	g_list.first_time = true;
	g_shuffle.first_time = true;
	stack_init(&played);
	g_music_thread = xrKernelCreateThread("Music Thread",
										  music_thread, 0x12, 0x10000, 0, NULL);

	if (g_music_thread < 0) {
		return -EBUSY;
	}

	xrKernelStartThread(g_music_thread, 0, 0);

	return 0;
}
Exemplo n.º 16
0
static void init(void)
{
    kernel_init();
    buffer_init();
    enable_irq();
    lcd_init();
#ifdef HAVE_REMOTE_LCD
    lcd_remote_init();
#endif
    font_init();
    show_logo();
    button_init();
    backlight_init();
    sim_tasks_init();
    lang_init(core_language_builtin, language_strings, 
              LANG_LAST_INDEX_IN_ARRAY);
#ifdef DEBUG
    debug_init();
#endif
    /* Keep the order of this 3 (viewportmanager handles statusbars)
     * Must be done before any code uses the multi-screen API */
    gui_syncstatusbar_init(&statusbars);
    gui_sync_wps_init();
    sb_skin_init();
    viewportmanager_init();

    storage_init();
    settings_reset();
    settings_load(SETTINGS_ALL);
    settings_apply(true);
    init_dircache(true);
    init_dircache(false);
#ifdef HAVE_TAGCACHE
    init_tagcache();
#endif
    sleep(HZ/2);
    tree_mem_init();
    filetype_init();
    playlist_init();

#if CONFIG_CODEC != SWCODEC
    mp3_init( global_settings.volume,
              global_settings.bass,
              global_settings.treble,
              global_settings.balance,
              global_settings.loudness,
              global_settings.avc,
              global_settings.channel_config,
              global_settings.stereo_width,
              global_settings.mdb_strength,
              global_settings.mdb_harmonics,
              global_settings.mdb_center,
              global_settings.mdb_shape,
              global_settings.mdb_enable,
              global_settings.superbass);

    /* audio_init must to know the size of voice buffer so init voice first */
    talk_init();
#endif /* CONFIG_CODEC != SWCODEC */

    scrobbler_init();
#if CONFIG_CODEC == SWCODEC
    tdspeed_init();
#endif /* CONFIG_CODEC == SWCODEC */

    audio_init();
    button_clear_queue(); /* Empty the keyboard buffer */
    
    settings_apply_skins();
}
Exemplo n.º 17
0
int music_init(void)
{
	u32 seed;

	cache_init();

	seed = sctrlKernelRand();

	if (seed == 0x8002013A) {
		pspTime tm;

		sceRtcGetCurrentClockLocalTime(&tm);
		seed = tm.microseconds;
	}

	srand(seed);
	xr_lock_init(&music_l);

#ifdef ENABLE_MPC
	mpc_init();
#endif

#ifdef ENABLE_WAV
	wav_init();
#endif

#ifdef ENABLE_TTA
	tta_init();
#endif

#ifdef ENABLE_APE
	ape_init();
#endif

#ifdef ENABLE_MP3
	mp3_init();
#endif

#ifdef ENABLE_FLAC
	flac_init();
#endif

#ifdef ENABLE_OGG
	ogg_init();
#endif

#ifdef ENABLE_WMA
	wmadrv_init();
#endif

#ifdef ENABLE_WAVPACK
	wv_init();
#endif

#ifdef ENABLE_AT3
	at3_init();
#endif

#ifdef ENABLE_M4A
	m4a_init();
#endif

#ifdef ENABLE_AAC
	aac_init();
#endif

#ifdef ENABLE_AA3
	aa3_init();
#endif

	musiclist_init(&g_music_list);
	memset(&g_list, 0, sizeof(g_list));
	g_list.first_time = true;
	stack_init(&g_played);
	g_music_thread = sceKernelCreateThread("Music Thread", music_thread, 0x12, 0x10000, 0, NULL);

	if (g_music_thread < 0) {
		return -EBUSY;
	}

	sceKernelStartThread(g_music_thread, 0, 0);

	return 0;
}