Changeset 313
- Timestamp:
- 06/17/06 19:20:26 (2 years ago)
- Files:
-
- trunk (modified) (1 prop)
- trunk/Makefile.in (modified) (1 diff)
- trunk/po/POTFILES.in (modified) (2 diffs)
- trunk/po/es.po (modified) (9 diffs)
- trunk/po/mesk.pot (modified) (8 diffs)
- trunk/setup.py.in (modified) (1 diff)
- trunk/src/about_dialog.py (modified) (2 diffs)
- trunk/src/audio_control.py (modified) (3 diffs)
- trunk/src/images/mesk_felon.png (added)
- trunk/src/mesk/__init__.py (modified) (2 diffs)
- trunk/src/mesk/audio (added)
- trunk/src/mesk/audio/__init__.py (added)
- trunk/src/mesk/audio/mp3.py (added)
- trunk/src/mesk/audio/oggvorbis.py (added)
- trunk/src/mesk/audio/source.py (added)
- trunk/src/mesk/audio_source.py (deleted)
- trunk/src/mesk/playlist.py (modified) (2 diffs)
- trunk/src/mesk_gui.glade (modified) (1 diff)
- trunk/src/playlist_control.py (modified) (10 diffs)
- trunk/src/plugins/audioscrobbler.py (modified) (2 diffs)
Legend:
- Unmodified
- Added
- Removed
- Modified
- Copied
- Moved
trunk
- Property svn:ignore changed from
.*.swp
*/.*.swp
to
.*.swp
*/.*.swp
tags
patches
- Property svn:ignore changed from
trunk/Makefile.in
r308 r313 143 143 -rm -f configure 144 144 -rm etc/mesk.1 145 -rm tags146 145 -rm ./etc/mesk.desktop 147 146 trunk/po/POTFILES.in
r203 r313 11 11 src/main.py 12 12 src/main_window.py 13 src/mesk/audio_source.py 13 src/mesk/audio/__init__.py 14 src/mesk/audio/mp3.py 15 src/mesk/audio/oggvorbis.py 16 src/mesk/audio/source.py 14 17 src/mesk/common/config.py 15 18 src/mesk/common/i18n.py … … 23 26 src/mesk/plugin/listeners.py 24 27 src/mesk/utils.py 28 src/mmkeys/setup.py 29 src/multi_media_keys.py 25 30 src/playlist_control.py 26 31 src/plugins/audioscrobbler.py trunk/po/es.po
r308 r313 8 8 "Project-Id-Version: 0.1.1\n" 9 9 "Report-Msgid-Bugs-To: \n" 10 "POT-Creation-Date: 2006-06-1 1 14:26-0600\n"10 "POT-Creation-Date: 2006-06-17 19:17-0600\n" 11 11 "PO-Revision-Date: 2006-04-15 17:38-0600\n" 12 12 "Last-Translator: Travis Shirk <travis@pobox.com>\n" … … 101 101 102 102 #. Tooltip strings 103 #: ../src/mesk_gui.glade.h:20 ../src/audio_control.py:4 4103 #: ../src/mesk_gui.glade.h:20 ../src/audio_control.py:42 104 104 msgid "Play" 105 105 msgstr "Juego" … … 175 175 #. TRANSLATORS: Replace this string with your names, one name per line. 176 176 #: ../src/mesk_gui.glade.h:39 177 msgid "es: Travis Shirk (via Babelfish)"178 msgstr " es: Travis Shirk (via Babelfish)"177 msgid "es: Babelfish" 178 msgstr "" 179 179 180 180 #: ../src/plugins/plugins_gui.glade.h:1 … … 218 218 msgstr "Configuración de last.fm" 219 219 220 #: ../src/audio_control.py:45 220 #. XXX: How to get markup in the comments?? 221 #. Dependency and format support 222 #: ../src/about_dialog.py:39 223 #, fuzzy 224 msgid "Supported audio formats:" 225 msgstr "Formato audio sin apoyo: %s" 226 227 #: ../src/audio_control.py:43 221 228 msgid "Pause" 222 229 msgstr "Pausa" 223 230 224 #: ../src/audio_control.py:12 2231 #: ../src/audio_control.py:120 225 232 #, python-format 226 233 msgid "Gstreamer version %d.%d.%d audio control initialized" … … 261 268 msgstr "La gerencia de la sesión inhabilitó (ningún módulo de gnome.ui)" 262 269 263 #: ../src/main_window.py: 69 ../src/main_window.py:302270 #: ../src/main_window.py:71 ../src/main_window.py:305 264 271 #, python-format 265 272 msgid "Volume %d%%" 266 273 msgstr "" 267 274 268 #: ../src/main_window.py:8 4275 #: ../src/main_window.py:86 269 276 #, python-format 270 277 msgid "Error loading playlist '%s'" 271 278 msgstr "Playlist '%s' del cargamento del error" 272 279 273 #: ../src/mesk/audio_source.py:32 274 msgid "Unknown" 275 msgstr "Desconocido" 276 277 #: ../src/mesk/audio_source.py:74 278 #, python-format 279 msgid "Error reading source metadata in '%s': %s" 280 msgstr "Metadata de la fuente de la lectura de error en '%s': %s" 281 282 #: ../src/mesk/audio_source.py:80 283 #, python-format 284 msgid "No metadata for file '%s'" 285 msgstr "Ningún metadata para el archivo '%s'" 286 287 #: ../src/mesk/audio_source.py:110 288 #, python-format 289 msgid "Unknown type: %s" 290 msgstr "Tipo desconocido: %s" 291 292 #: ../src/mesk/audio_source.py:111 280 #: ../src/mesk/audio/__init__.py:58 293 281 #, python-format 294 282 msgid "Unsupported audio format: %s" 295 283 msgstr "Formato audio sin apoyo: %s" 296 284 297 #: ../src/mesk/audio _source.py:115298 #, python-format299 msgid "Error loading source file%s"300 msgstr " Archivo de fuente del cargamento del error%s"301 302 #: ../src/mesk/audio _source.py:121303 #, python-format304 msgid " Unsupported audio URI scheme: %s"305 msgstr " Esquema sin apoyo del audio URI: %s"285 #: ../src/mesk/audio/mp3.py:56 286 #, fuzzy, python-format 287 msgid "Error reading mp3 source for '%s': %s" 288 msgstr "Metadata de la fuente de la lectura de error en '%s': %s" 289 290 #: ../src/mesk/audio/oggvorbis.py:53 291 #, fuzzy, python-format 292 msgid "Error reading ogg/vorbis source for '%s': %s" 293 msgstr "Metadata de la fuente de la lectura de error en '%s': %s" 306 294 307 295 #: ../src/mesk/__init__.py:57 … … 481 469 482 470 #. Text columns 483 #: ../src/playlist_control.py:1 49471 #: ../src/playlist_control.py:150 484 472 msgid "Title" 485 473 msgstr "TÃtulo" 486 474 487 #: ../src/playlist_control.py:15 0475 #: ../src/playlist_control.py:151 488 476 msgid "Artist" 489 477 msgstr "Artista" 490 478 491 #: ../src/playlist_control.py:15 1479 #: ../src/playlist_control.py:152 492 480 msgid "Album" 493 481 msgstr "Ãlbum" 494 482 495 #: ../src/playlist_control.py:15 2483 #: ../src/playlist_control.py:153 496 484 msgid "#" 497 485 msgstr "#" 498 486 499 #: ../src/playlist_control.py:15 3487 #: ../src/playlist_control.py:154 500 488 msgid "Year" 501 489 msgstr "Año" 502 490 503 #: ../src/playlist_control.py:15 4491 #: ../src/playlist_control.py:155 504 492 msgid "Time" 505 493 msgstr "Tiempo" 506 494 507 #: ../src/playlist_control.py:48 5495 #: ../src/playlist_control.py:486 508 496 msgid "tracks" 509 497 msgstr "pistas" … … 531 519 msgstr "Agregue La Música" 532 520 533 #: ../src/playlist_control.py:848 534 msgid "MP3s" 535 msgstr "MP3s" 536 537 #: ../src/playlist_control.py:853 521 #: ../src/playlist_control.py:855 538 522 msgid "Playlists" 539 523 msgstr "Playlists" … … 542 526 #. the checkbox is toggles and files when not since this is not 543 527 #. possible by default 544 #: ../src/playlist_control.py:86 0528 #: ../src/playlist_control.py:869 545 529 msgid "Make the _dialog be able/unable to select directories" 546 530 msgstr "Haga que el _diálogo es able/unable para seleccionar directorios" 547 531 548 #: ../src/playlist_control.py:9 52532 #: ../src/playlist_control.py:961 549 533 #, python-format 550 534 msgid "'%s' string not found" … … 681 665 msgstr "Error plugin de la desactivación" 682 666 667 #~ msgid "es: Travis Shirk (via Babelfish)" 668 #~ msgstr "es: Travis Shirk (via Babelfish)" 669 670 #~ msgid "Unknown" 671 #~ msgstr "Desconocido" 672 673 #~ msgid "No metadata for file '%s'" 674 #~ msgstr "Ningún metadata para el archivo '%s'" 675 676 #, fuzzy 677 #~ msgid "Unknown file type: %s" 678 #~ msgstr "Tipo desconocido: %s" 679 680 #~ msgid "Error loading source file %s" 681 #~ msgstr "Archivo de fuente del cargamento del error %s" 682 683 #~ msgid "Unsupported audio URI scheme: %s" 684 #~ msgstr "Esquema sin apoyo del audio URI: %s" 685 686 #~ msgid "MP3s" 687 #~ msgstr "MP3s" 688 683 689 #~ msgid "No GStreamer audio sink for '%s'" 684 690 #~ msgstr "Ningún fregadero audio de GStreamer para ' %s'" trunk/po/mesk.pot
r308 r313 9 9 "Project-Id-Version: PACKAGE VERSION\n" 10 10 "Report-Msgid-Bugs-To: \n" 11 "POT-Creation-Date: 2006-06-1 1 14:26-0600\n"11 "POT-Creation-Date: 2006-06-17 19:17-0600\n" 12 12 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" 13 13 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n" … … 102 102 103 103 #. Tooltip strings 104 #: ../src/mesk_gui.glade.h:20 ../src/audio_control.py:4 4104 #: ../src/mesk_gui.glade.h:20 ../src/audio_control.py:42 105 105 msgid "Play" 106 106 msgstr "" … … 176 176 #. TRANSLATORS: Replace this string with your names, one name per line. 177 177 #: ../src/mesk_gui.glade.h:39 178 msgid "es: Travis Shirk (via Babelfish)"178 msgid "es: Babelfish" 179 179 msgstr "" 180 180 … … 217 217 msgstr "" 218 218 219 #: ../src/audio_control.py:45 219 #. XXX: How to get markup in the comments?? 220 #. Dependency and format support 221 #: ../src/about_dialog.py:39 222 msgid "Supported audio formats:" 223 msgstr "" 224 225 #: ../src/audio_control.py:43 220 226 msgid "Pause" 221 227 msgstr "" 222 228 223 #: ../src/audio_control.py:12 2229 #: ../src/audio_control.py:120 224 230 #, python-format 225 231 msgid "Gstreamer version %d.%d.%d audio control initialized" … … 256 262 msgstr "" 257 263 258 #: ../src/main_window.py: 69 ../src/main_window.py:302264 #: ../src/main_window.py:71 ../src/main_window.py:305 259 265 #, python-format 260 266 msgid "Volume %d%%" 261 267 msgstr "" 262 268 263 #: ../src/main_window.py:8 4269 #: ../src/main_window.py:86 264 270 #, python-format 265 271 msgid "Error loading playlist '%s'" 266 272 msgstr "" 267 273 268 #: ../src/mesk/audio_source.py:32 269 msgid "Unknown" 270 msgstr "" 271 272 #: ../src/mesk/audio_source.py:74 273 #, python-format 274 msgid "Error reading source metadata in '%s': %s" 275 msgstr "" 276 277 #: ../src/mesk/audio_source.py:80 278 #, python-format 279 msgid "No metadata for file '%s'" 280 msgstr "" 281 282 #: ../src/mesk/audio_source.py:110 283 #, python-format 284 msgid "Unknown type: %s" 285 msgstr "" 286 287 #: ../src/mesk/audio_source.py:111 274 #: ../src/mesk/audio/__init__.py:58 288 275 #, python-format 289 276 msgid "Unsupported audio format: %s" 290 277 msgstr "" 291 278 292 #: ../src/mesk/audio _source.py:115293 #, python-format 294 msgid "Error loading source file%s"295 msgstr "" 296 297 #: ../src/mesk/audio _source.py:121298 #, python-format 299 msgid " Unsupported audio URI scheme: %s"279 #: ../src/mesk/audio/mp3.py:56 280 #, python-format 281 msgid "Error reading mp3 source for '%s': %s" 282 msgstr "" 283 284 #: ../src/mesk/audio/oggvorbis.py:53 285 #, python-format 286 msgid "Error reading ogg/vorbis source for '%s': %s" 300 287 msgstr "" 301 288 … … 469 456 470 457 #. Text columns 471 #: ../src/playlist_control.py:1 49458 #: ../src/playlist_control.py:150 472 459 msgid "Title" 473 460 msgstr "" 474 461 475 #: ../src/playlist_control.py:15 0462 #: ../src/playlist_control.py:151 476 463 msgid "Artist" 477 464 msgstr "" 478 465 479 #: ../src/playlist_control.py:15 1466 #: ../src/playlist_control.py:152 480 467 msgid "Album" 481 468 msgstr "" 482 469 483 #: ../src/playlist_control.py:15 2470 #: ../src/playlist_control.py:153 484 471 msgid "#" 485 472 msgstr "" 486 473 487 #: ../src/playlist_control.py:15 3474 #: ../src/playlist_control.py:154 488 475 msgid "Year" 489 476 msgstr "" 490 477 491 #: ../src/playlist_control.py:15 4478 #: ../src/playlist_control.py:155 492 479 msgid "Time" 493 480 msgstr "" 494 481 495 #: ../src/playlist_control.py:48 5482 #: ../src/playlist_control.py:486 496 483 msgid "tracks" 497 484 msgstr "" … … 517 504 msgstr "" 518 505 519 #: ../src/playlist_control.py:848 520 msgid "MP3s" 521 msgstr "" 522 523 #: ../src/playlist_control.py:853 506 #: ../src/playlist_control.py:855 524 507 msgid "Playlists" 525 508 msgstr "" … … 528 511 #. the checkbox is toggles and files when not since this is not 529 512 #. possible by default 530 #: ../src/playlist_control.py:86 0513 #: ../src/playlist_control.py:869 531 514 msgid "Make the _dialog be able/unable to select directories" 532 515 msgstr "" 533 516 534 #: ../src/playlist_control.py:9 52517 #: ../src/playlist_control.py:961 535 518 #, python-format 536 519 msgid "'%s' string not found" trunk/setup.py.in
r144 r313 11 11 'mesk.common', 12 12 'mesk.plugin', 13 'mesk.audio', 13 14 ], 14 15 package_dir={'mesk': 'src/mesk', 15 16 'mesk.common': 'src/mesk/common', 16 17 'mesk.plugin': 'src/mesk/plugin', 18 'mesk.audio': 'src/mesk/audio', 17 19 } 18 20 ) trunk/src/about_dialog.py
r242 r313 21 21 22 22 import mesk 23 _ = mesk.common.i18n._23 from mesk.common.i18n import _ 24 24 25 25 class AboutDialog: … … 31 31 self.dialog.set_license(mesk.info.GPLV2_LICENCE) 32 32 33 img = gtk.Image() 34 img.set_from_file('images/mesk_felon.png') 35 self.dialog.set_logo(img.get_pixbuf()) 36 37 # XXX: How to get markup in the comments?? 38 # Dependency and format support 39 formats = '%s\n' % _('Supported audio formats:') 40 exts = mesk.audio.supported_extensions.keys() 41 exts.sort() 42 formats += ','.join(exts) 43 #for ext in mesk.audio.supported_extensions: 44 # formats += '%s\n' % mt 45 46 self.dialog.set_comments(formats) 47 trunk/src/audio_control.py
r306 r313 21 21 import os, gobject 22 22 23 import pygst24 pygst.require('0.10')25 23 import gst 26 24 … … 474 472 src.meta_data.track_total = taglist['track-count'] 475 473 if 'duration' in keys: 476 src. audio_info.time_secs = taglist['duration'] / gst.SECOND474 src.meta_data.time_secs = taglist['duration'] / gst.SECOND 477 475 self.emit('tag-update', src) 478 476 … … 524 522 # _duration not used, it fluctuates and the label total should 525 523 # be static 526 d = self._current_audio_src. audio_info.time_secs524 d = self._current_audio_src.meta_data.time_secs 527 525 else: 528 526 p = d = 0 trunk/src/mesk/__init__.py
r306 r313 34 34 GLADE_XML = 'mesk_gui.glade' 35 35 36 # Sections36 # Config sections 37 37 CONFIG_MAIN = 'mesk' 38 38 CONFIG_UI = 'ui' … … 127 127 import mesk.playlist 128 128 import mesk.utils 129 import mesk.audio _source129 import mesk.audio trunk/src/mesk/playlist.py
r298 r313 21 21 import random 22 22 23 import audio _source23 import audio.source 24 24 import utils 25 25 import log … … 46 46 continue 47 47 try: 48 src = audio _source.load(line)48 src = audio.load(line) 49 49 except Exception, ex: 50 50 log.warn(str(ex)) trunk/src/mesk_gui.glade
r306 r313 977 977 <property name="authors">Travis Shirk <travis@pobox.com></property> 978 978 <property name="artists"></property> 979 <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">es: Travis Shirk (via Babelfish)</property>979 <property name="translator_credits" translatable="yes" comments="TRANSLATORS: Replace this string with your names, one name per line.">es: Babelfish</property> 980 980 </widget> 981 981 trunk/src/playlist_control.py
r311 r313 28 28 29 29 import gtk_utils, config, control 30 from mesk.audio_source import UnsupportedFormat 30 from mesk.audio import UnsupportedFormat 31 from mesk.audio.source import UnsupportedScheme 31 32 32 33 # Data model. These do not have to correspond to the column order, nor … … 230 231 row_data[MODEL_NUM] = track_num 231 232 232 duration = mesk.utils.format_track_time(src. audio_info.time_secs)233 duration = mesk.utils.format_track_time(src.meta_data.time_secs) 233 234 row_data[MODEL_TIME] = duration 234 235 … … 468 469 469 470 for src in self._playlist: 470 if src. audio_info.time_secs is not None:471 self._list_secs += src. audio_info.time_secs472 if src. audio_info.size_bytes is not None:473 self._list_bytes += src. audio_info.size_bytes471 if src.meta_data.time_secs is not None: 472 self._list_secs += src.meta_data.time_secs 473 if src.meta_data.size_bytes is not None: 474 self._list_bytes += src.meta_data.size_bytes 474 475 else: 475 476 if count_inc: … … 517 518 518 519 src = self._playlist[row] 519 byte_count += src. audio_info.size_bytes or 0520 sec_count += src. audio_info.time_secs or 0520 byte_count += src.meta_data.size_bytes or 0 521 sec_count += src.meta_data.time_secs or 0 521 522 522 523 # The rows are in ascending order, so each will adjust as we delete … … 771 772 del pl 772 773 else: 773 src = mesk.audio _source.load(uri)774 src = mesk.audio.load(uri) 774 775 srcs.append(src) 775 776 except UnsupportedFormat, ex: … … 786 787 while gtk.events_pending(): 787 788 gtk.main_iteration(False) 788 except (mesk.audio_source.UnsupportedScheme, 789 Exception), ex: 789 except (UnsupportedScheme, Exception), ex: 790 790 msg = _('Error dropping source: %s\n\n%s') % (uri.path, str(ex)) 791 791 mesk.log.error(msg) … … 825 825 826 826 self._update_playlist_stats(count_inc=1, 827 size_bytes_inc=src. audio_info.size_bytes,828 time_secs_inc=src. audio_info.time_secs)827 size_bytes_inc=src.meta_data.size_bytes, 828 time_secs_inc=src.meta_data.time_secs) 829 829 self.emit('playlist_changed') 830 830 return new_row … … 845 845 dialog.set_current_folder(self._pl_config.file_add_dir) 846 846 847 filters = [] 847 848 mp3_filter = gtk.FileFilter() 848 mp3_filter.set_name( _('MP3s'))849 mp3_filter.set_name('MP3s') 849 850 mp3_filter.add_pattern('*.mp3') 850 851 dialog.add_filter(mp3_filter) 852 filters.append(mp3_filter) 851 853 852 854 m3u_filter = gtk.FileFilter() … … 854 856 m3u_filter.add_pattern('*.m3u') 855 857 dialog.add_filter(m3u_filter) 858 filters.append(m3u_filter) 859 860 ogg_filter = gtk.FileFilter() 861 ogg_filter.set_name('Oggs') 862 ogg_filter.add_pattern('*.ogg') 863 dialog.add_filter(ogg_filter) 864 filters.append(ogg_filter) 856 865 857 866 # This madness allows the file dialog to select directories when … … 864 873 if button.get_active(): 865 874 dialog.set_action(gtk.FILE_CHOOSER_ACTION_SELECT_FOLDER) 866 dialog.remove_filter(mp3_filter)867 dialog.remove_filter(m3u_filter)875 for f in filters: 876 dialog.remove_filter(f) 868 877 else: 869 878 dialog.set_action(gtk.FILE_CHOOSER_ACTION_OPEN) 870 dialog.add_filter(mp3_filter)871 dialog.add_filter(m3u_filter)879 for f in filters: 880 dialog.add_filter(f) 872 881 dir_check.connect('toggled', on_toggled, dialog) 873 882 trunk/src/plugins/audioscrobbler.py
r298 r313 393 393 if audio_src: 394 394 # Half the song or 240s, whichever is shorter 395 src_len = audio_src. audio_info.time_secs395 src_len = audio_src.meta_data.time_secs 396 396 if src_len < 30: 397 397 self.log.info(_('Source length %s < 30s, skipping') % \ … … 426 426 post['b[%(index)d]'] = album.encode('utf-8') 427 427 post['m[%(index)d]'] = '' 428 post['l[%(index)d]'] = str(audio_src. audio_info.time_secs)428 post['l[%(index)d]'] = str(audio_src.meta_data.time_secs) 429 429 post['i[%(index)d]'] = self.time_stamp() 430 430
