multimedia_paradise 1.1.344 → 1.2.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +99 -77
- data/bin/audio_player +1 -1
- data/bin/extract_images_from_this_video_file +1 -1
- data/bin/loop_this_video +1 -1
- data/bin/merge_avi_files +1 -1
- data/bin/merge_mp3 +1 -1
- data/bin/mp3_to_opus +1 -1
- data/bin/mpg_to_mp4 +1 -1
- data/bin/multimedia_paradise +1 -1
- data/bin/to_aiff +2 -5
- data/bin/to_flac +7 -0
- data/bin/to_mp3 +8 -0
- data/bin/to_mp4 +1 -1
- data/bin/to_ogg +7 -0
- data/bin/verbose_analyse_this_mp3_file_for_id3_tags +1 -1
- data/bin/video_codec +1 -1
- data/bin/video_thumbnail +1 -1
- data/bin/video_to_images +1 -1
- data/doc/README.gen +88 -51
- data/doc/{CHANGELOG.md → changelog/changelog.md} +8 -6
- data/doc/{LINKS.md → links/links.md} +2 -2
- data/doc/{MOTIVATION_FOR_THIS_PROJECT.md → motivation_for_the_multimedia_paradise_project/motivation_for_the_multimedia_paradise_project.md} +5 -5
- data/doc/todo/todo_for_the_multimedia_paradise_project.md +79 -93
- data/lib/multimedia_paradise/actions/actions.rb +224 -0
- data/lib/multimedia_paradise/audio/audio_player/audio_player.rb +61 -64
- data/lib/multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb +17 -8
- data/lib/multimedia_paradise/audio/base.rb +0 -5
- data/lib/multimedia_paradise/audio/compress.rb +8 -5
- data/lib/multimedia_paradise/audio/create_m3u_playlist.rb +7 -11
- data/lib/multimedia_paradise/audio/extract_audio/constants.rb +0 -37
- data/lib/multimedia_paradise/audio/extract_audio/extract_audio.rb +90 -68
- data/lib/multimedia_paradise/audio/file_duration/file_duration.rb +134 -80
- data/lib/multimedia_paradise/audio/genres/boogie.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/concerts.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/constants.rb +1 -1
- data/lib/multimedia_paradise/audio/genres/eurodance.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/genre.rb +36 -33
- data/lib/multimedia_paradise/audio/genres/hip_hop.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/italian_songs.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/the_1980s.rb +1 -6
- data/lib/multimedia_paradise/audio/genres/trance.rb +4 -7
- data/lib/multimedia_paradise/audio/lyrics_fetcher.rb +27 -22
- data/lib/multimedia_paradise/audio/merge_audio_files.rb +18 -11
- data/lib/multimedia_paradise/audio/modify_year_of_audio_file.rb +23 -11
- data/lib/multimedia_paradise/audio/n_audio_songs.rb +3 -2
- data/lib/multimedia_paradise/audio/play_all_audio_files.rb +41 -16
- data/lib/multimedia_paradise/audio/playlist/playlist.rb +163 -123
- data/lib/multimedia_paradise/audio/remove_audio.rb +11 -6
- data/lib/multimedia_paradise/audio/remove_last_second.rb +2 -3
- data/lib/multimedia_paradise/audio/report_missing_id.rb +22 -12
- data/lib/multimedia_paradise/audio/streamripper/streamripper_wrapper.rb +7 -5
- data/lib/multimedia_paradise/audio/to_mp3.rb +7 -5
- data/lib/multimedia_paradise/audio/to_ogg.rb +3 -1
- data/lib/multimedia_paradise/audio/wav_to_mp3.rb +5 -5
- data/lib/multimedia_paradise/base/base.rb +854 -15
- data/lib/multimedia_paradise/base/colours.rb +28 -31
- data/lib/multimedia_paradise/base/{commandline_arguments.rb → commandline_arguments_module/commandline_arguments_module.rb} +12 -9
- data/lib/multimedia_paradise/colours/colours.rb +4 -1
- data/lib/multimedia_paradise/commandline/{menu.rb → commandline.rb} +19 -16
- data/lib/multimedia_paradise/constants/constants.rb +504 -14
- data/lib/multimedia_paradise/constants/web_constants.rb +2 -4
- data/lib/multimedia_paradise/gui/gui_base.rb +2 -2
- data/lib/multimedia_paradise/gui/libui/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/simple_play_widget/simple_play_widget.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/video_player/video_player.rb +1 -1
- data/lib/multimedia_paradise/gui/libui/youtube_channels/youtube_channels.rb +1 -1
- data/lib/multimedia_paradise/gui/shared_code/multimedia_converter/multimedia_converter_module.rb +0 -478
- data/lib/multimedia_paradise/gui/shared_code/playlist/playlist_module.rb +94 -41
- data/lib/multimedia_paradise/gui/shared_code/simple_play_widget/simple_play_widget_module.rb +0 -257
- data/lib/multimedia_paradise/gui/universal_widgets/change_metadata_widget/change_metadata_widget.rb +2 -2
- data/lib/multimedia_paradise/gui/universal_widgets/information_about_a_mp3_file/information_about_a_mp3_file.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/lyrics/lyrics.rb +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/multimedia_converter/multimedia_converter.rb +589 -0
- data/lib/multimedia_paradise/gui/universal_widgets/playlist/playlist.rb +197 -0
- data/lib/multimedia_paradise/gui/universal_widgets/radio/radio.rb +1 -1
- data/lib/multimedia_paradise/gui/{gtk2 → universal_widgets}/simple_play_widget/README.md +1 -1
- data/lib/multimedia_paradise/gui/universal_widgets/simple_play_widget/simple_play_widget.rb +404 -0
- data/lib/multimedia_paradise/gui/universal_widgets/tag_mp3_files/tag_mp3_files.rb +3 -6
- data/lib/multimedia_paradise/java/Playlist.class +0 -0
- data/lib/multimedia_paradise/java/Playlist.java +198 -0
- data/lib/multimedia_paradise/multimedia/analyse_multimedia_file.rb +21 -19
- data/lib/multimedia_paradise/multimedia/avisynth/avisynth_code.avs +441 -442
- data/lib/multimedia_paradise/multimedia/base.rb +0 -18
- data/lib/multimedia_paradise/multimedia/chord.rb +1 -1
- data/lib/multimedia_paradise/multimedia/cut_multimedia/cut_multimedia.rb +7 -5
- data/lib/multimedia_paradise/multimedia/cut_multimedia/evaluate_from_this_file.rb +2 -2
- data/lib/multimedia_paradise/multimedia/interactive_shell.rb +22 -3
- data/lib/multimedia_paradise/multimedia/merge_multimedia.rb +4 -3
- data/lib/multimedia_paradise/multimedia/play_from_this_list.rb +4 -27
- data/lib/multimedia_paradise/multimedia/{read_meta_tags.rb → read_meta_tags/read_meta_tags.rb} +14 -19
- data/lib/multimedia_paradise/multimedia/start_length_duration.rb +3 -3
- data/lib/multimedia_paradise/project/project.rb +8 -4
- data/lib/multimedia_paradise/requires/require_the_multimedia_paradise_project.rb +5 -5
- data/lib/multimedia_paradise/requires/require_toplevel_methods_files.rb +1 -1
- data/lib/multimedia_paradise/sinatra/app.rb +3 -3
- data/lib/multimedia_paradise/statistics/README.md +6 -5
- data/lib/multimedia_paradise/statistics/video.rb +34 -14
- data/lib/multimedia_paradise/{misc → time}/long_format_to_milliseconds_converter.rb +4 -2
- data/lib/multimedia_paradise/{misc → time}/milliseconds_to_long_format_converter.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/audio_related_code.rb +138 -0
- data/lib/multimedia_paradise/toplevel_methods/chop_into_segments_of_n_seconds_size.rb +2 -2
- data/lib/multimedia_paradise/{conversions → toplevel_methods}/conversions.rb +140 -48
- data/lib/multimedia_paradise/toplevel_methods/copy_and_merge_this_video_n_times.rb +5 -5
- data/lib/multimedia_paradise/toplevel_methods/create_video_from_this_audio.rb +7 -6
- data/lib/multimedia_paradise/toplevel_methods/cut_from_to.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/denoise.rb +2 -2
- data/lib/multimedia_paradise/toplevel_methods/deshake.rb +3 -6
- data/lib/multimedia_paradise/toplevel_methods/{output_directory.rb → directory_related_code.rb} +38 -1
- data/lib/multimedia_paradise/toplevel_methods/encode_this_video.rb +8 -4
- data/lib/multimedia_paradise/toplevel_methods/esystem.rb +43 -4
- data/lib/multimedia_paradise/{ffmpeg → toplevel_methods}/ffmpeg.rb +200 -193
- data/lib/multimedia_paradise/toplevel_methods/{files_and_directories.rb → files_related_code.rb} +19 -56
- data/lib/multimedia_paradise/toplevel_methods/flip_and_rotate.rb +3 -3
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file_is_video_file_is_image_file_is_multimedia_file.rb +115 -0
- data/lib/multimedia_paradise/toplevel_methods/is_on_roebe.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/{merge_multimedia_file.rb → merge.rb} +98 -4
- data/lib/multimedia_paradise/toplevel_methods/opn.rb +5 -4
- data/lib/multimedia_paradise/toplevel_methods/player_in_use.rb +14 -7
- data/lib/multimedia_paradise/toplevel_methods/query_the_audio_codec_of_this_file.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/radio.rb +1 -3
- data/lib/multimedia_paradise/toplevel_methods/return_all_video_files.rb +4 -4
- data/lib/multimedia_paradise/toplevel_methods/return_path_to_random_simpsons_video_file.rb +1 -1
- data/lib/multimedia_paradise/toplevel_methods/return_random_video_file_from_the_video_collection.rb +9 -7
- data/lib/multimedia_paradise/toplevel_methods/scale_video.rb +3 -4
- data/lib/multimedia_paradise/toplevel_methods/set_title_of.rb +6 -6
- data/lib/multimedia_paradise/{help/help.rb → toplevel_methods/show_help.rb} +14 -8
- data/lib/multimedia_paradise/toplevel_methods/slow_down_this_video_file.rb +2 -3
- data/lib/multimedia_paradise/toplevel_methods/start_screencast.rb +3 -2
- data/lib/multimedia_paradise/toplevel_methods/{misc.rb → toplevel_methods.rb} +485 -527
- data/lib/multimedia_paradise/toplevel_methods/total_duration.rb +4 -3
- data/lib/multimedia_paradise/toplevel_methods/use_lame_codec.rb +1 -2
- data/lib/multimedia_paradise/toplevel_methods/video_dataset.rb +1 -1
- data/lib/multimedia_paradise/version/version.rb +2 -2
- data/lib/multimedia_paradise/video/all_videos.rb +12 -19
- data/lib/multimedia_paradise/video/check_numbers.rb +76 -32
- data/lib/multimedia_paradise/video/columbo/columbo.rb +36 -14
- data/lib/multimedia_paradise/video/guess_video_name.rb +2 -10
- data/lib/multimedia_paradise/video/mike_hammer/mike_hammer.rb +2 -2
- data/lib/multimedia_paradise/video/missing_video_files/missing_video_files.rb +1 -9
- data/lib/multimedia_paradise/video/movie_searcher.rb +2 -10
- data/lib/multimedia_paradise/video/mplayer_wrapper.rb +1 -9
- data/lib/multimedia_paradise/video/random_video.rb +1 -2
- data/lib/multimedia_paradise/video/registered_video_file.rb +2 -10
- data/lib/multimedia_paradise/video/report_local_videos.rb +1 -9
- data/lib/multimedia_paradise/video/simpsons.rb +2 -10
- data/lib/multimedia_paradise/video/smart_animals/smart_animals.rb +10 -8
- data/lib/multimedia_paradise/video/speed_up_video.rb +28 -10
- data/lib/multimedia_paradise/video/store_available_video_files.rb +49 -33
- data/lib/multimedia_paradise/video/the_simpsons/README.md +0 -0
- data/lib/multimedia_paradise/video/the_simpsons/good_the_simpsons_episodes.rb +8 -8
- data/lib/multimedia_paradise/video/the_simpsons/the_simpsons.rb +14 -10
- data/lib/multimedia_paradise/video/video_information.rb +55 -49
- data/lib/multimedia_paradise/{configuration → yaml/configuration}/play_zoomed.yml +0 -0
- data/lib/multimedia_paradise/yaml/{playlist.yml → playlist/playlist.yml} +14 -15
- data/lib/multimedia_paradise/yaml/video/video.yml +1 -1
- data/lib/multimedia_paradise/yaml/video_collection/video_collection.yml +34 -32
- data/lib/multimedia_paradise/yaml/youtube/alltagsgeschichte/alltagsgeschichte.yml +61 -11
- data/lib/multimedia_paradise/yaml/youtube/songs/songs.yml +5 -3
- data/multimedia_paradise.gemspec +1 -1
- data/test/testing_audio_player.rb +3 -3
- data/test/testing_file_duration.rb +5 -5
- metadata +45 -76
- data/lib/multimedia_paradise/audio/file_duration/constants.rb +0 -53
- data/lib/multimedia_paradise/audio/waveform/class.rb +0 -341
- data/lib/multimedia_paradise/audio/waveform/constants.rb +0 -38
- data/lib/multimedia_paradise/audio/waveform/log.rb +0 -101
- data/lib/multimedia_paradise/base/constants.rb +0 -19
- data/lib/multimedia_paradise/base/encoding.rb +0 -31
- data/lib/multimedia_paradise/base/misc.rb +0 -665
- data/lib/multimedia_paradise/base/namespace.rb +0 -36
- data/lib/multimedia_paradise/base/time.rb +0 -25
- data/lib/multimedia_paradise/constants/conversions.rb +0 -62
- data/lib/multimedia_paradise/constants/directory_constants.rb +0 -139
- data/lib/multimedia_paradise/constants/encodings.rb +0 -26
- data/lib/multimedia_paradise/constants/file_constants.rb +0 -176
- data/lib/multimedia_paradise/constants/misc.rb +0 -80
- data/lib/multimedia_paradise/constants/my_video_directory.rb +0 -30
- data/lib/multimedia_paradise/constants/namespace.rb +0 -14
- data/lib/multimedia_paradise/constants/newline.rb +0 -14
- data/lib/multimedia_paradise/constants/video_filetypes.rb +0 -27
- data/lib/multimedia_paradise/conversions/README.md +0 -2
- data/lib/multimedia_paradise/ffmpeg/README.md +0 -2
- data/lib/multimedia_paradise/gui/gtk2/multimedia_converter/multimedia_converter.rb +0 -33
- data/lib/multimedia_paradise/gui/gtk2/notebook.rb +0 -144
- data/lib/multimedia_paradise/gui/gtk2/play_video_from_my_collection/play_video_from_my_collection.rb +0 -43
- data/lib/multimedia_paradise/gui/gtk2/simple_play_widget/simple_play_widget.rb +0 -40
- data/lib/multimedia_paradise/gui/gtk2/widget_increase_or_decrease_audio/widget_increase_or_decrease_audio.rb +0 -42
- data/lib/multimedia_paradise/gui/gtk2/youtube_downloader/youtube_downloader.rb +0 -32
- data/lib/multimedia_paradise/gui/gtk3/lyrics/lyrics.rb +0 -0
- data/lib/multimedia_paradise/gui/gtk3/multimedia_converter/multimedia_converter.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/playlist/playlist.rb +0 -34
- data/lib/multimedia_paradise/gui/gtk3/simple_play_widget/simple_play_widget.rb +0 -38
- data/lib/multimedia_paradise/toplevel_methods/analyze_audio_stream.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/codecs.rb +0 -50
- data/lib/multimedia_paradise/toplevel_methods/copy_file.rb +0 -18
- data/lib/multimedia_paradise/toplevel_methods/delay_audio.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/ensure_that_the_output_directory_exists.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/has_audio.rb +0 -48
- data/lib/multimedia_paradise/toplevel_methods/increase_volume_of_this_audio_file.rb +0 -61
- data/lib/multimedia_paradise/toplevel_methods/is_a_multimedia_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_audio_file.rb +0 -27
- data/lib/multimedia_paradise/toplevel_methods/is_image_file.rb +0 -31
- data/lib/multimedia_paradise/toplevel_methods/is_video_file.rb +0 -62
- data/lib/multimedia_paradise/toplevel_methods/merge_these_videos.rb +0 -106
- data/lib/multimedia_paradise/toplevel_methods/run_sys_command.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_flac.rb +0 -30
- data/lib/multimedia_paradise/toplevel_methods/to_mp4.rb +0 -24
- /data/doc/{MergingVideoLectures.md → merging_video_lectures/merging_video_lectures.md} +0 -0
- /data/doc/{Readme_for_the_cut_audio_component.md → readme_for_the_cut_audio_component/Readme_for_the_cut_audio_component.md} +0 -0
- /data/lib/multimedia_paradise/yaml/{audio_formats.yml → audio_formats/audio_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{image_formats.yml → image_formats/image_formats.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{lyrics.yml → lyrics/lyrics.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{music_genres.yml → music_genres/music_genres.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{song_tags.yml → song_tags/song_tags.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{use_this_video_player.yml → use_this_video_player/use_this_video_player.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_encoding_settings.yml → video_encoding_settings/video_encoding_settings.yml} +0 -0
- /data/lib/multimedia_paradise/yaml/{video_filter_aliases.yml → video_filter_aliases/video_filter_aliases.yml} +0 -0
@@ -0,0 +1,224 @@
|
|
1
|
+
#!/usr/bin/ruby -w
|
2
|
+
# Encoding: UTF-8
|
3
|
+
# frozen_string_literal: true
|
4
|
+
# =========================================================================== #
|
5
|
+
# require 'multimedia_paradise/actions/actions.rb'
|
6
|
+
# MultimediaParadise.action(:playlist_array)
|
7
|
+
# =========================================================================== #
|
8
|
+
module MultimediaParadise
|
9
|
+
|
10
|
+
# ========================================================================= #
|
11
|
+
# === MultimediaParadise.action (action tag, actions tag)
|
12
|
+
#
|
13
|
+
# Re-use the following:
|
14
|
+
#
|
15
|
+
# action(:SanitizeCookbook, _, &block)
|
16
|
+
#
|
17
|
+
# ========================================================================= #
|
18
|
+
def self.action(
|
19
|
+
action_that_is_desired = nil,
|
20
|
+
optional_argument1 = ARGV, # This is typically the main input to this method.
|
21
|
+
options_hash = {},
|
22
|
+
&block
|
23
|
+
)
|
24
|
+
_ = optional_argument1 # Easier "pointer" here.
|
25
|
+
case action_that_is_desired.to_s.delete('?').to_sym # (case tag)
|
26
|
+
# ======================================================================= #
|
27
|
+
# === :playlist_array
|
28
|
+
#
|
29
|
+
# This entry point will return all Songs that are part of the
|
30
|
+
# playlist.
|
31
|
+
# ======================================================================= #
|
32
|
+
when :playlist_array,
|
33
|
+
:PlaylistArray
|
34
|
+
require 'multimedia_paradise/audio/playlist/playlist.rb'
|
35
|
+
return MultimediaParadise::Playlist.return_array
|
36
|
+
# ======================================================================= #
|
37
|
+
# === :audio_player
|
38
|
+
# ======================================================================= #
|
39
|
+
when :audio_player,
|
40
|
+
:AudioPlayer
|
41
|
+
require 'multimedia_paradise/audio/audio_player/audio_player.rb'
|
42
|
+
MultimediaParadise.audio_player(_, &block)
|
43
|
+
# ======================================================================= #
|
44
|
+
# === :show_available_audio_formats
|
45
|
+
#
|
46
|
+
# action(:CheckNumbers)
|
47
|
+
# ======================================================================= #
|
48
|
+
when :show_available_audio_formats,
|
49
|
+
:ShowAvailableAudioFormats
|
50
|
+
require 'multimedia_paradise/toplevel_methods/toplevel_methods.rb'
|
51
|
+
MultimediaParadise.show_available_audio_formats
|
52
|
+
# ======================================================================= #
|
53
|
+
# === :check_numbers
|
54
|
+
#
|
55
|
+
# action(:CheckNumbers)
|
56
|
+
# ======================================================================= #
|
57
|
+
when :check_numbers,
|
58
|
+
:CheckNumbers
|
59
|
+
require 'multimedia_paradise/video/check_numbers.rb'
|
60
|
+
MultimediaParadise.check_numbers
|
61
|
+
# ======================================================================= #
|
62
|
+
# === :video_information
|
63
|
+
# ======================================================================= #
|
64
|
+
when :video_information,
|
65
|
+
:VideoInformation
|
66
|
+
require 'multimedia_paradise/video/video_information.rb'
|
67
|
+
MultimediaParadise.video_information(_, &block)
|
68
|
+
# ======================================================================= #
|
69
|
+
# === :speed_up_video
|
70
|
+
# ======================================================================= #
|
71
|
+
when :speed_up_video,
|
72
|
+
:SpeedUpVideo
|
73
|
+
require 'multimedia_paradise/video/speed_up_video.rb'
|
74
|
+
MultimediaParadise.speed_up_video(_, &block)
|
75
|
+
# ======================================================================= #
|
76
|
+
# === :file_duration_of
|
77
|
+
# ======================================================================= #
|
78
|
+
when :file_duration_of,
|
79
|
+
:FileDurationOf,
|
80
|
+
:file_duration,
|
81
|
+
:FileDuration,
|
82
|
+
:duration,
|
83
|
+
:Duration
|
84
|
+
require 'multimedia_paradise/audio/file_duration/file_duration.rb'
|
85
|
+
MultimediaParadise.file_duration_of(_, &block)
|
86
|
+
# ======================================================================= #
|
87
|
+
# === :modify_year_of_audio_file
|
88
|
+
# ======================================================================= #
|
89
|
+
when :modify_year_of_audio_file,
|
90
|
+
:ModifyYearOfAudioFile
|
91
|
+
require 'multimedia_paradise/audio/modify_year_of_audio_file.rb'
|
92
|
+
MultimediaParadise.modify_year_of_audio_file(_, &block)
|
93
|
+
# ======================================================================= #
|
94
|
+
# === :remove_last_second
|
95
|
+
# ======================================================================= #
|
96
|
+
when :remove_last_second,
|
97
|
+
:RemoveLastSecond
|
98
|
+
require 'multimedia_paradise/audio/remove_last_second.rb'
|
99
|
+
MultimediaParadise.remove_last_second(_, &block)
|
100
|
+
# ======================================================================= #
|
101
|
+
# === :streamripper
|
102
|
+
# ======================================================================= #
|
103
|
+
when :streamripper,
|
104
|
+
:Streamripper
|
105
|
+
require 'multimedia_paradise/audio/streamripper/streamripper_wrapper.rb'
|
106
|
+
MultimediaParadise.streamripper
|
107
|
+
# ======================================================================= #
|
108
|
+
# === :remove_audio
|
109
|
+
# ======================================================================= #
|
110
|
+
when :remove_audio,
|
111
|
+
:RemoveAudio
|
112
|
+
require 'multimedia_paradise/audio/remove_audio.rb'
|
113
|
+
MultimediaParadise.remove_audio(_, &block)
|
114
|
+
# ======================================================================= #
|
115
|
+
# === :all_videos
|
116
|
+
# ======================================================================= #
|
117
|
+
when :all_videos,
|
118
|
+
:AllVideos
|
119
|
+
require 'multimedia_paradise/video/all_videos.rb'
|
120
|
+
MultimediaParadise::Video::AllVideos.new
|
121
|
+
# ======================================================================= #
|
122
|
+
# === :n_audio_songs
|
123
|
+
# ======================================================================= #
|
124
|
+
when :n_audio_songs,
|
125
|
+
:NAudioSongs
|
126
|
+
require 'multimedia_paradise/audio/n_audio_songs.rb'
|
127
|
+
MultimediaParadise::Audio::NAudioSongs.new
|
128
|
+
# ======================================================================= #
|
129
|
+
# === :extract_audio
|
130
|
+
# ======================================================================= #
|
131
|
+
when :extract_audio,
|
132
|
+
:ExtractAudio
|
133
|
+
require 'multimedia_paradise/audio/extract_audio/extract_audio.rb'
|
134
|
+
MultimediaParadise.extract_audio(_, &block)
|
135
|
+
# ======================================================================= #
|
136
|
+
# === :smart_animals
|
137
|
+
# ======================================================================= #
|
138
|
+
when :smart_animals,
|
139
|
+
:SmartAnimals
|
140
|
+
require 'multimedia_paradise/video/smart_animals/smart_animals.rb'
|
141
|
+
MultimediaParadise::Video::SmartAnimals.new(_, &block)
|
142
|
+
# ======================================================================= #
|
143
|
+
# === :play_all_audio_files
|
144
|
+
# ======================================================================= #
|
145
|
+
when :play_all_audio_files,
|
146
|
+
:PlayAllAudioFiles
|
147
|
+
require 'multimedia_paradise/audio/play_all_audio_files.rb'
|
148
|
+
MultimediaParadise.play_all_audio_files(_, &block)
|
149
|
+
# ======================================================================= #
|
150
|
+
# === :compress_this_audio_file
|
151
|
+
# ======================================================================= #
|
152
|
+
when :compress_this_audio_file,
|
153
|
+
:CompressThisAudioFile,
|
154
|
+
:compress,
|
155
|
+
:Compress
|
156
|
+
require 'multimedia_paradise/audio/compress.rb'
|
157
|
+
MultimediaParadise.compress_this_audio_file(_, &block)
|
158
|
+
# ======================================================================= #
|
159
|
+
# === :metadata_from_this_song
|
160
|
+
# ======================================================================= #
|
161
|
+
when :metadata_from_this_song,
|
162
|
+
:MetadataFromThisSong,
|
163
|
+
:audio_tag_reader,
|
164
|
+
:AudioTagReader
|
165
|
+
require 'multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb'
|
166
|
+
MultimediaParadise.metadata_from_this_song(_, &block)
|
167
|
+
# ======================================================================= #
|
168
|
+
# === :playlist
|
169
|
+
# ======================================================================= #
|
170
|
+
when :playlist,
|
171
|
+
:Playlist
|
172
|
+
require 'multimedia_paradise/audio/playlist/playlist.rb'
|
173
|
+
MultimediaParadise.playlist(_, &block)
|
174
|
+
# ======================================================================= #
|
175
|
+
# === :create_m3u_playlist
|
176
|
+
# ======================================================================= #
|
177
|
+
when :create_m3u_playlist,
|
178
|
+
:CreateM3uPlaylist
|
179
|
+
require 'multimedia_paradise/audio/create_m3u_playlist.rb'
|
180
|
+
MultimediaParadise.create_m3u_playlist(_, &block)
|
181
|
+
# ======================================================================= #
|
182
|
+
# === :columbo
|
183
|
+
# ======================================================================= #
|
184
|
+
when :columbo,
|
185
|
+
:Columbo
|
186
|
+
require 'multimedia_paradise/video/columbo/columbo.rb'
|
187
|
+
MultimediaParadise.columbo(_, &block)
|
188
|
+
# ======================================================================= #
|
189
|
+
# === :statistics_about_the_local_videos
|
190
|
+
# ======================================================================= #
|
191
|
+
when :statistics_about_the_local_videos,
|
192
|
+
:StatisticsAboutTheLocalVideos
|
193
|
+
require 'multimedia_paradise/statistics/video.rb'
|
194
|
+
MultimediaParadise.statistics_about_the_local_videos(&block)
|
195
|
+
# ======================================================================= #
|
196
|
+
# === :store_available_video_files
|
197
|
+
# ======================================================================= #
|
198
|
+
when :store_available_video_files,
|
199
|
+
:StoreAvailableVideoFiles,
|
200
|
+
:store,
|
201
|
+
:Store
|
202
|
+
require 'multimedia_paradise/video/store_available_video_files.rb'
|
203
|
+
MultimediaParadise.store_available_video_files(&block)
|
204
|
+
# ======================================================================= #
|
205
|
+
# === nil
|
206
|
+
# ======================================================================= #
|
207
|
+
when nil
|
208
|
+
e 'Please provide a valid action to this method; nil was supplied.'
|
209
|
+
else # else tag
|
210
|
+
e "#{rev}Not a registered action: "\
|
211
|
+
"#{action_that_is_desired} "\
|
212
|
+
"(class: #{action_that_is_desired.class})"
|
213
|
+
end
|
214
|
+
end; self.instance_eval { alias actions action } # === MultimediaParadise.actions
|
215
|
+
|
216
|
+
end
|
217
|
+
|
218
|
+
if __FILE__ == $PROGRAM_NAME
|
219
|
+
alias e puts
|
220
|
+
MultimediaParadise.action(:store)
|
221
|
+
MultimediaParadise.action(:columbo, 1)
|
222
|
+
end # mpaction
|
223
|
+
# mpaction htop-1.2
|
224
|
+
# mpaction htop.yml
|
@@ -2,14 +2,14 @@
|
|
2
2
|
# Encoding: UTF-8
|
3
3
|
# frozen_string_literal: true
|
4
4
|
# =========================================================================== #
|
5
|
-
# === MultimediaParadise::AudioPlayer
|
5
|
+
# === MultimediaParadise::Audio::AudioPlayer
|
6
6
|
#
|
7
7
|
# This is an "audio player".
|
8
8
|
#
|
9
9
|
# In other words - it plays audio files.
|
10
10
|
#
|
11
11
|
# For this to work, it distinguishes between different playmodes as will
|
12
|
-
# be explained
|
12
|
+
# be explained next.
|
13
13
|
#
|
14
14
|
# - If the argument given is an existing audio file, we will play it, then
|
15
15
|
# exit.
|
@@ -35,36 +35,26 @@
|
|
35
35
|
#
|
36
36
|
# Usage example:
|
37
37
|
#
|
38
|
-
# MultimediaParadise::AudioPlayer.new(ARGV)
|
38
|
+
# MultimediaParadise::Audio::AudioPlayer.new(ARGV)
|
39
39
|
#
|
40
40
|
# =========================================================================== #
|
41
41
|
# require 'multimedia_paradise/audio/audio_player/audio_player.rb'
|
42
|
+
# MultimediaParadise.audio_player
|
42
43
|
# =========================================================================== #
|
43
44
|
require 'multimedia_paradise/audio/base.rb'
|
44
45
|
|
45
46
|
module MultimediaParadise
|
46
47
|
|
47
|
-
|
48
|
+
module Audio
|
48
49
|
|
49
|
-
|
50
|
-
require 'x/tools/mrxvt_options.rb'
|
51
|
-
rescue LoadError; end
|
50
|
+
class AudioPlayer < AudioBase # === MultimediaParadise::Audio::AudioPlayer
|
52
51
|
|
53
52
|
begin
|
54
53
|
require 'roebe/classes/kde/kde_konsole/kde_konsole.rb'
|
55
54
|
rescue LoadError; end
|
56
55
|
|
57
|
-
begin
|
58
|
-
require 'x/audio/playlist_profile.rb' # PlaylistProfile is declared here.
|
59
|
-
rescue LoadError; end # bl $RUBY_AUD/playlist_profile.rb
|
60
|
-
|
61
56
|
require 'multimedia_paradise/multimedia/play_from_this_list.rb'
|
62
57
|
|
63
|
-
# ========================================================================= #
|
64
|
-
# === NAMESPACE
|
65
|
-
# ========================================================================= #
|
66
|
-
NAMESPACE = inspect
|
67
|
-
|
68
58
|
# ========================================================================= #
|
69
59
|
# === MY_SONGS
|
70
60
|
# ========================================================================= #
|
@@ -94,7 +84,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
94
84
|
#
|
95
85
|
# As of May 2015 we can dynamically set this.
|
96
86
|
# ========================================================================= #
|
97
|
-
_ = "#{
|
87
|
+
_ = "#{MultimediaParadise.project_yaml_dir?}video/video.yml"
|
98
88
|
if File.exist? _
|
99
89
|
_ = YAML.load_file(_)
|
100
90
|
if _.has_key? 'MAIN_VIDEO_PLAYER'
|
@@ -173,12 +163,11 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
173
163
|
"#{MultimediaParadise.log_dir?}"\
|
174
164
|
"log_file_for_played_songs_via_the_audio_player.md"
|
175
165
|
|
176
|
-
require 'multimedia_paradise/requires/require_file_duration.rb'
|
177
166
|
# ========================================================================= #
|
178
167
|
# === obtain_file_duration_from_this_file(i)
|
179
168
|
# ========================================================================= #
|
180
169
|
def obtain_file_duration_from_this_file(i)
|
181
|
-
|
170
|
+
action(:FileDuration, i)
|
182
171
|
end
|
183
172
|
|
184
173
|
# ========================================================================= #
|
@@ -196,6 +185,11 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
196
185
|
end
|
197
186
|
case run_already
|
198
187
|
# ======================================================================= #
|
188
|
+
# === :default
|
189
|
+
# ======================================================================= #
|
190
|
+
when :default
|
191
|
+
run_already = true
|
192
|
+
# ======================================================================= #
|
199
193
|
# === :dont_run_yet
|
200
194
|
# ======================================================================= #
|
201
195
|
when :dont_run_yet,
|
@@ -211,13 +205,13 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
211
205
|
def reset
|
212
206
|
super()
|
213
207
|
clear_playlist
|
214
|
-
set_delay # Set
|
208
|
+
set_delay # Set the delay here.
|
215
209
|
set_shall_we_exit
|
216
210
|
infer_the_namespace
|
217
211
|
# ======================================================================= #
|
218
|
-
# ===
|
212
|
+
# === :use_colours
|
219
213
|
# ======================================================================= #
|
220
|
-
|
214
|
+
set_use_colours # If true then we will use colours.
|
221
215
|
# ======================================================================= #
|
222
216
|
# === @main_colour
|
223
217
|
# ======================================================================= #
|
@@ -228,9 +222,9 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
228
222
|
@play_in_a_loop = false
|
229
223
|
determine_which_audio_player_to_use
|
230
224
|
# ======================================================================= #
|
231
|
-
# ===
|
225
|
+
# === :debug
|
232
226
|
# ======================================================================= #
|
233
|
-
@debug = SHALL_WE_DEBUG
|
227
|
+
@internal_hash[:debug] = SHALL_WE_DEBUG
|
234
228
|
# ======================================================================= #
|
235
229
|
# === @hash_songs_played
|
236
230
|
# ======================================================================= #
|
@@ -245,6 +239,10 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
245
239
|
@mrxvt = nil
|
246
240
|
end
|
247
241
|
# ======================================================================= #
|
242
|
+
# === @main_audio_player_to_use
|
243
|
+
# ======================================================================= #
|
244
|
+
@main_audio_player_to_use = MAIN_AUDIO_PLAYER_TO_USE
|
245
|
+
# ======================================================================= #
|
248
246
|
# === @use_oss_for_audio_player
|
249
247
|
# ======================================================================= #
|
250
248
|
@use_oss_for_audio_player = USE_OSS_FOR_AUDIO_PLAYER
|
@@ -277,7 +275,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
277
275
|
# overrule this completely, if set.
|
278
276
|
# ========================================================================= #
|
279
277
|
def determine_which_audio_player_to_use(
|
280
|
-
i =
|
278
|
+
i = @main_audio_player_to_use,
|
281
279
|
overrule_if_environment_variable_was_set = true
|
282
280
|
)
|
283
281
|
case overrule_if_environment_variable_was_set
|
@@ -307,8 +305,8 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
307
305
|
# === report_which_audio_player_to_use
|
308
306
|
# ========================================================================= #
|
309
307
|
def report_which_audio_player_to_use
|
310
|
-
opne 'The audio player '+sfancy(@audio_player_to_use)+
|
311
|
-
' will be used.'
|
308
|
+
opne rev+'The audio player '+sfancy(@audio_player_to_use)+
|
309
|
+
rev+' will be used.'
|
312
310
|
end
|
313
311
|
|
314
312
|
# ========================================================================= #
|
@@ -365,7 +363,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
365
363
|
# a loop.
|
366
364
|
# ========================================================================= #
|
367
365
|
def set_delay(i = DEFAULT_DELAY_PLAYING_SONGS)
|
368
|
-
@delay = i
|
366
|
+
@internal_hash[:delay] = i
|
369
367
|
end
|
370
368
|
|
371
369
|
# ========================================================================= #
|
@@ -390,7 +388,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
390
388
|
# === show_available_genres
|
391
389
|
# ========================================================================= #
|
392
390
|
def show_available_genres
|
393
|
-
opne
|
391
|
+
opne "#{rev}The available genres are:"
|
394
392
|
pp @available_genres
|
395
393
|
end
|
396
394
|
|
@@ -533,7 +531,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
533
531
|
# ========================================================================= #
|
534
532
|
def add_all_songs
|
535
533
|
add(all_songs?)
|
536
|
-
end
|
534
|
+
end; alias play_all_songs add_all_songs # === play_all_songs
|
537
535
|
|
538
536
|
# ========================================================================= #
|
539
537
|
# === refresh_playlist
|
@@ -607,7 +605,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
607
605
|
if be_verbose
|
608
606
|
efancy 'Leaving ...'
|
609
607
|
efancy 'Hopefully you had fun and found class'\
|
610
|
-
'MultimediaParadise::AudioPlayer useful. Bye!'
|
608
|
+
'MultimediaParadise::Audio::AudioPlayer useful. Bye!'
|
611
609
|
end
|
612
610
|
consider_resetting_kde_konsole_tab
|
613
611
|
exit
|
@@ -715,7 +713,8 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
715
713
|
cliner
|
716
714
|
e "#{true_rev}We will pause for #{sfancy(n_seconds)} #{rev}seconds."
|
717
715
|
cliner_with_time_stamp
|
718
|
-
e "#{rev}The next song will be:
|
716
|
+
e "#{rev}The next song will be: "\
|
717
|
+
"#{sfancy(playlist?[@n_songs_played])}"
|
719
718
|
cliner
|
720
719
|
sleep(n_seconds)
|
721
720
|
end
|
@@ -732,7 +731,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
732
731
|
)
|
733
732
|
if be_verbose
|
734
733
|
e; opne 'The next song we will play via '+
|
735
|
-
|
734
|
+
simp(audio_player_to_use?)+"#{rev} is:"
|
736
735
|
e "#{N} #{sfancy(i)}#{N}#{N}"
|
737
736
|
end
|
738
737
|
# ======================================================================= #
|
@@ -808,7 +807,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
808
807
|
dataset.map {|entry| " #{entry}" }.join("\n")
|
809
808
|
)
|
810
809
|
else
|
811
|
-
|
810
|
+
opnn; no_file_exists_at(log_file)
|
812
811
|
end
|
813
812
|
end
|
814
813
|
|
@@ -824,7 +823,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
824
823
|
# === delay?
|
825
824
|
# ========================================================================= #
|
826
825
|
def delay?
|
827
|
-
@delay.to_s
|
826
|
+
@internal_hash[:delay].to_s
|
828
827
|
end
|
829
828
|
|
830
829
|
# ========================================================================= #
|
@@ -855,22 +854,24 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
855
854
|
# ========================================================================= #
|
856
855
|
# === play_the_playlist
|
857
856
|
# ========================================================================= #
|
858
|
-
def play_the_playlist
|
857
|
+
def play_the_playlist(
|
858
|
+
playlist = playlist?
|
859
|
+
)
|
859
860
|
if @play_in_a_loop # We wish to play in a never-ending loop.
|
860
861
|
counter = 0
|
861
862
|
loop {
|
862
|
-
playlist
|
863
|
+
playlist.each {|song|
|
863
864
|
play_this_song(song)
|
864
|
-
pause unless @n_songs_played == playlist
|
865
|
+
pause unless @n_songs_played == playlist.size
|
865
866
|
counter += 1
|
866
867
|
break if counter > @play_max_n_songs
|
867
868
|
}
|
868
869
|
refresh_playlist
|
869
870
|
}
|
870
871
|
else
|
871
|
-
playlist
|
872
|
+
playlist.each {|song|
|
872
873
|
play_this_song(song)
|
873
|
-
pause unless @n_songs_played == playlist
|
874
|
+
pause unless @n_songs_played == playlist.size
|
874
875
|
} # Afterwards, we will have exited.
|
875
876
|
end
|
876
877
|
end
|
@@ -959,7 +960,7 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
959
960
|
end
|
960
961
|
i = i.to_s.strip
|
961
962
|
if i =~ /^\d+$/ # If input consists of only numbers.
|
962
|
-
|
963
|
+
opne "#{rev}We will next play #{simp(i.to_s)} #{rev}songs."
|
963
964
|
i.to_i.times { add_random_song }
|
964
965
|
# ======================================================================= #
|
965
966
|
# === 11:22:33
|
@@ -981,6 +982,15 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
981
982
|
else
|
982
983
|
case i # case tag
|
983
984
|
# ===================================================================== #
|
985
|
+
# === once
|
986
|
+
# ===================================================================== #
|
987
|
+
when 'once','noloop','default','all', # This means we play every song exactly once, then quit.
|
988
|
+
'','true','false',
|
989
|
+
'all_songs',
|
990
|
+
'play_all_songs'
|
991
|
+
opne 'We will play all available Audio files once.'
|
992
|
+
add_all_songs
|
993
|
+
# ===================================================================== #
|
984
994
|
# === help
|
985
995
|
#
|
986
996
|
# This entry point can be used to show the help section.
|
@@ -1054,15 +1064,6 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
1054
1064
|
when 'last?'
|
1055
1065
|
show_last_file_played
|
1056
1066
|
# ===================================================================== #
|
1057
|
-
# === once
|
1058
|
-
# ===================================================================== #
|
1059
|
-
when 'once','noloop','default','all', # This means we play every song exactly once, then quit.
|
1060
|
-
'','true','false',
|
1061
|
-
'all_songs',
|
1062
|
-
'play_all_songs'
|
1063
|
-
opnn; e 'We will play all available Audio files once.'
|
1064
|
-
add_all_songs
|
1065
|
-
# ===================================================================== #
|
1066
1067
|
# === dance
|
1067
1068
|
# ===================================================================== #
|
1068
1069
|
when 'dance','bdance','breakdance' # Im Moment hardcoded auf bdance
|
@@ -1075,8 +1076,8 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
1075
1076
|
# ===================================================================== #
|
1076
1077
|
when 'loop','l','nil'
|
1077
1078
|
# Notify the user what we are doing next.
|
1078
|
-
|
1079
|
-
|
1079
|
+
opne "#{main_colour?}Playing in a neverending #{sfancy('loop')}"\
|
1080
|
+
"#{main_colour?} next:"
|
1080
1081
|
do_play_in_a_loop
|
1081
1082
|
# ===================================================================== #
|
1082
1083
|
# === genre
|
@@ -1112,15 +1113,18 @@ class AudioPlayer < AudioBase # === MultimediaParadise::AudioPlayer
|
|
1112
1113
|
perform_cleanup
|
1113
1114
|
end
|
1114
1115
|
|
1115
|
-
end
|
1116
|
+
end; end
|
1116
1117
|
|
1117
1118
|
# =========================================================================== #
|
1118
1119
|
# === MultimediaParadise.audio_player
|
1119
1120
|
#
|
1120
1121
|
# We also want to use a simpler module-method for the audio player.
|
1121
1122
|
# =========================================================================== #
|
1122
|
-
def self.audio_player(
|
1123
|
-
|
1123
|
+
def self.audio_player(
|
1124
|
+
options = nil,
|
1125
|
+
run_already = :default
|
1126
|
+
)
|
1127
|
+
MultimediaParadise::Audio::AudioPlayer.new(options, run_already)
|
1124
1128
|
end; self.instance_eval { alias audio_play audio_player } # === MultimediaParadise.audio_play
|
1125
1129
|
self.instance_eval { alias play audio_player } # === MultimediaParadise.play
|
1126
1130
|
self.instance_eval { alias [] audio_player } # === MultimediaParadise[]
|
@@ -1128,16 +1132,9 @@ end; self.instance_eval { alias audio_play audio_player } # === MultimediaParadi
|
|
1128
1132
|
end
|
1129
1133
|
|
1130
1134
|
if __FILE__ == $PROGRAM_NAME
|
1131
|
-
|
1132
|
-
_ = MultimediaParadise::AudioPlayer.new(ARGV, :dont_run_yet)
|
1135
|
+
_ = MultimediaParadise.audio_player(ARGV, :dont_run_yet)
|
1133
1136
|
if ARGV[1]
|
1134
1137
|
_.try_to_find_genre_song(ARGV[1]) # To test this, try: rsong genre GOOD_BDANCE_SONGS
|
1135
1138
|
end
|
1136
1139
|
_.run
|
1137
|
-
end # rsong
|
1138
|
-
#
|
1139
|
-
# If you do this:
|
1140
|
-
# rsong ELE
|
1141
|
-
# We load all ELE songs in our playlist
|
1142
|
-
# rsong playlist
|
1143
|
-
# Will play our playlist.
|
1140
|
+
end # rsong 5
|
@@ -2,23 +2,26 @@
|
|
2
2
|
# Encoding: UTF-8
|
3
3
|
# frozen_string_literal: true
|
4
4
|
# =========================================================================== #
|
5
|
-
# === MultimediaParadise::AudioTagReader
|
5
|
+
# === MultimediaParadise::Audio::AudioTagReader
|
6
6
|
#
|
7
7
|
# The main idea for this class is to handle meta-tags in audio files,
|
8
8
|
# in particular reading them.
|
9
9
|
#
|
10
10
|
# Usage example:
|
11
11
|
#
|
12
|
-
# MultimediaParadise::AudioTagReader.new
|
12
|
+
# MultimediaParadise::Audio::AudioTagReader.new
|
13
13
|
#
|
14
14
|
# =========================================================================== #
|
15
15
|
# require 'multimedia_paradise/audio/audio_tag_reader/audio_tag_reader.rb'
|
16
16
|
# MultimediaParadise::AudioTagReader.new(ARGV)
|
17
|
+
# MultimediaParadise.metadata_from_this_song(ARGV)
|
17
18
|
# =========================================================================== #
|
18
19
|
require 'multimedia_paradise/base/base.rb'
|
19
20
|
|
20
21
|
module MultimediaParadise
|
21
22
|
|
23
|
+
module Audio
|
24
|
+
|
22
25
|
class AudioTagReader < ::MultimediaParadise::Base # === MultimediaParadise::AudioTagReader
|
23
26
|
|
24
27
|
require 'multimedia_paradise/requires/require_file_duration.rb'
|
@@ -344,7 +347,7 @@ class AudioTagReader < ::MultimediaParadise::Base # === MultimediaParadise::Audi
|
|
344
347
|
# === work_on_this_file
|
345
348
|
# ========================================================================= #
|
346
349
|
def work_on_this_file(
|
347
|
-
this_file =
|
350
|
+
this_file = this_file?
|
348
351
|
)
|
349
352
|
unless Object.const_defined? :TagLib
|
350
353
|
text = <<-EOF
|
@@ -476,28 +479,34 @@ EOF
|
|
476
479
|
# ======================================================================= #
|
477
480
|
this_file = first_argument?.to_s.dup
|
478
481
|
set_this_file(this_file)
|
479
|
-
work_on_this_file(
|
482
|
+
work_on_this_file(this_file?)
|
480
483
|
end
|
481
484
|
|
482
485
|
# ========================================================================= #
|
483
|
-
# === MultimediaParadise::AudioTagReader[]
|
486
|
+
# === MultimediaParadise::Audio::AudioTagReader[]
|
484
487
|
# ========================================================================= #
|
485
488
|
def self.[](i = '')
|
486
489
|
new(i) { :be_quiet}
|
487
490
|
end
|
488
491
|
|
489
|
-
end
|
492
|
+
end; end
|
490
493
|
|
491
494
|
# =========================================================================== #
|
492
495
|
# === MultimediaParadise.metadata_from_this_song
|
496
|
+
#
|
497
|
+
# Usage example:
|
498
|
+
#
|
499
|
+
# result = MultimediaParadise.metadata_from_this_song('/home/x/songs/HansZimmer_PearlHarbour_TrailerTheme.mp3')
|
500
|
+
#
|
493
501
|
# =========================================================================== #
|
494
502
|
def self.metadata_from_this_song(this_song)
|
495
|
-
MultimediaParadise::AudioTagReader[this_song]
|
503
|
+
MultimediaParadise::Audio::AudioTagReader[this_song]
|
496
504
|
end; self.instance_eval { alias analyse_tags_of_this_mp3_file metadata_from_this_song } # === MultimediaParadise.analyse_tags_of_this_mp3_file
|
497
505
|
|
498
506
|
end
|
499
507
|
|
500
508
|
if __FILE__ == $PROGRAM_NAME
|
501
|
-
MultimediaParadise::AudioTagReader.new(ARGV)
|
509
|
+
MultimediaParadise::Audio::AudioTagReader.new(ARGV)
|
502
510
|
end # audiotagreader /home/x/songs/Youtube_KyokushinMix2012.mp3
|
511
|
+
# audiotagreader /home/x/songs/HansZimmer_PearlHarbour_TrailerTheme.mp3
|
503
512
|
# audiotagreader *mp3
|
@@ -21,11 +21,6 @@ module MultimediaParadise
|
|
21
21
|
|
22
22
|
class AudioBase < ::MultimediaParadise::MultimediaBase # === MultimediaParadise::AudioBase
|
23
23
|
|
24
|
-
# ========================================================================= #
|
25
|
-
# === ERROR_LINE
|
26
|
-
# ========================================================================= #
|
27
|
-
ERROR_LINE = '2>&1'
|
28
|
-
|
29
24
|
# ========================================================================= #
|
30
25
|
# === initialize
|
31
26
|
# ========================================================================= #
|