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; }
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); } }
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); }
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); }
void main() { sys_init(); // INIT_COM(); uart_init(); mp3_init(); play_mp3(0,1); while(1) { p05 = 1; } }
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; }
/** * 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; }
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; }
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); } }
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; }
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; }
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"); }
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; }
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; } } } }
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; }
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(); }
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; }