mmplayer 0.0.6 → 0.0.7
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/lib/mmplayer.rb +1 -1
- data/lib/mmplayer/player.rb +32 -11
- data/test/player_test.rb +6 -10
- metadata +2 -2
    
        checksums.yaml
    CHANGED
    
    | @@ -1,7 +1,7 @@ | |
| 1 1 | 
             
            ---
         | 
| 2 2 | 
             
            SHA1:
         | 
| 3 | 
            -
              metadata.gz:  | 
| 4 | 
            -
              data.tar.gz:  | 
| 3 | 
            +
              metadata.gz: 3d59002ee9d5711a811c980108d0e29c41b19811
         | 
| 4 | 
            +
              data.tar.gz: 66a9b65bfb2b421e4fdcba73a04eec30123610af
         | 
| 5 5 | 
             
            SHA512:
         | 
| 6 | 
            -
              metadata.gz:  | 
| 7 | 
            -
              data.tar.gz:  | 
| 6 | 
            +
              metadata.gz: a6b900ed7f38488e1f8705a0f4facdf0cf0dc6d44b0fae68c4fb2d06cb5b55b262637890d0c737640b7ca345df1d882a01cbfe1f5b505b44a619db4a2e8461cd
         | 
| 7 | 
            +
              data.tar.gz: 9d8b70983896579a071930a32dc9a4de903694383fb7d30cdb4efcf144125ec6dd2ef2d0bab7c78851e6310102f9f1e98333dd3d2bca22c1519b04bf66992014
         | 
    
        data/lib/mmplayer.rb
    CHANGED
    
    
    
        data/lib/mmplayer/player.rb
    CHANGED
    
    | @@ -10,8 +10,11 @@ module MMPlayer | |
| 10 10 | 
             
                  @flags += " #{options[:flags]}" unless options[:flags].nil?
         | 
| 11 11 | 
             
                  @messenger = Messenger.new
         | 
| 12 12 | 
             
                  @callback = {}
         | 
| 13 | 
            -
                  @ | 
| 14 | 
            -
             | 
| 13 | 
            +
                  @playback_state = {
         | 
| 14 | 
            +
                    :eof => false,
         | 
| 15 | 
            +
                    :play => false,
         | 
| 16 | 
            +
                    :pause => false
         | 
| 17 | 
            +
                  }
         | 
| 15 18 | 
             
                  @player_threads = []
         | 
| 16 19 | 
             
                end
         | 
| 17 20 |  | 
| @@ -37,15 +40,27 @@ module MMPlayer | |
| 37 40 | 
             
                  !@player.nil?
         | 
| 38 41 | 
             
                end
         | 
| 39 42 |  | 
| 43 | 
            +
                # Is the player paused?
         | 
| 44 | 
            +
                # @return [Boolean]
         | 
| 45 | 
            +
                def paused?
         | 
| 46 | 
            +
                  @playback_state[:pause]
         | 
| 47 | 
            +
                end
         | 
| 48 | 
            +
                alias_method :pause?, :paused?
         | 
| 49 | 
            +
             | 
| 50 | 
            +
                # Toggles pause
         | 
| 51 | 
            +
                # @return [Boolean]
         | 
| 52 | 
            +
                def pause
         | 
| 53 | 
            +
                  @playback_state[:pause] = !@playback_state[:pause]
         | 
| 54 | 
            +
                  @player.pause
         | 
| 55 | 
            +
                  @playback_state[:pause]
         | 
| 56 | 
            +
                end
         | 
| 57 | 
            +
             | 
| 40 58 | 
             
                # Handle events while the player is running
         | 
| 41 59 | 
             
                # @return [Boolean]
         | 
| 42 60 | 
             
                def playback_loop
         | 
| 43 61 | 
             
                  loop do
         | 
| 44 | 
            -
                    if  | 
| 45 | 
            -
             | 
| 46 | 
            -
                    else
         | 
| 47 | 
            -
                      sleep(0.05)
         | 
| 48 | 
            -
                    end
         | 
| 62 | 
            +
                    handle_eof if eof?
         | 
| 63 | 
            +
                    sleep(0.05)
         | 
| 49 64 | 
             
                  end
         | 
| 50 65 | 
             
                  true
         | 
| 51 66 | 
             
                end
         | 
| @@ -100,6 +115,12 @@ module MMPlayer | |
| 100 115 |  | 
| 101 116 | 
             
                private
         | 
| 102 117 |  | 
| 118 | 
            +
                # Has the end of a media file been reached?
         | 
| 119 | 
            +
                # @return [Boolean]
         | 
| 120 | 
            +
                def eof?
         | 
| 121 | 
            +
                  @playback_state[:play] && !@playback_state[:eof] && !@playback_state[:pause] && get_player_output.size < 1
         | 
| 122 | 
            +
                end
         | 
| 123 | 
            +
             | 
| 103 124 | 
             
                # Get player output from stdout
         | 
| 104 125 | 
             
                def get_player_output
         | 
| 105 126 | 
             
                  @player.stdout.gets.inspect.strip.gsub(/(\\n|[\\"])/, '').strip
         | 
| @@ -107,8 +128,8 @@ module MMPlayer | |
| 107 128 |  | 
| 108 129 | 
             
                # Handle the end of playback for a single media file
         | 
| 109 130 | 
             
                def handle_eof
         | 
| 110 | 
            -
                  @ | 
| 111 | 
            -
                  @ | 
| 131 | 
            +
                  @playback_state[:eof] = true
         | 
| 132 | 
            +
                  @playback_state[:play] = false
         | 
| 112 133 | 
             
                  STDOUT.flush
         | 
| 113 134 | 
             
                  @callback[:end_of_file].call unless @callback[:end_of_file].nil?
         | 
| 114 135 | 
             
                  true
         | 
| @@ -117,8 +138,8 @@ module MMPlayer | |
| 117 138 | 
             
                # Handle the beginning of playback for a single media file
         | 
| 118 139 | 
             
                def handle_start
         | 
| 119 140 | 
             
                  loop until get_player_output.size > 1
         | 
| 120 | 
            -
                  @ | 
| 121 | 
            -
                  @ | 
| 141 | 
            +
                  @playback_state[:play] = true
         | 
| 142 | 
            +
                  @playback_state[:eof] = false
         | 
| 122 143 | 
             
                end
         | 
| 123 144 |  | 
| 124 145 | 
             
                # Get progress percentage from the MPlayer report
         | 
    
        data/test/player_test.rb
    CHANGED
    
    | @@ -5,17 +5,13 @@ class MMPlayer::PlayerTest < Minitest::Test | |
| 5 5 | 
             
              context "Player" do
         | 
| 6 6 |  | 
| 7 7 | 
             
                setup do
         | 
| 8 | 
            -
                  # Stub out MPlayer completely
         | 
| 9 | 
            -
                  class MPlayer
         | 
| 10 | 
            -
                    def get(*args)
         | 
| 11 | 
            -
                      "0.1\n"
         | 
| 12 | 
            -
                    end
         | 
| 13 | 
            -
             | 
| 14 | 
            -
                    def load_file(something)
         | 
| 15 | 
            -
                    end
         | 
| 16 | 
            -
                  end
         | 
| 17 8 | 
             
                  @player = MMPlayer::Player.new
         | 
| 18 | 
            -
                  @mplayer =  | 
| 9 | 
            +
                  @mplayer = Object.new
         | 
| 10 | 
            +
                  @mplayer.stubs(:load_file).returns(true)
         | 
| 11 | 
            +
                  out = Object.new
         | 
| 12 | 
            +
                  out.stubs(:gets).returns("")
         | 
| 13 | 
            +
                  @mplayer.stubs(:stdout).returns(out)
         | 
| 14 | 
            +
                  @mplayer.stubs(:get).returns("0.1\n")
         | 
| 19 15 | 
             
                  @player.stubs(:ensure_player).returns(@mplayer)
         | 
| 20 16 | 
             
                  @player.instance_variable_set("@player", @mplayer)
         | 
| 21 17 | 
             
                  @player.instance_variable_set("@player_threads", [Thread.new {}])
         | 
    
        metadata
    CHANGED
    
    | @@ -1,14 +1,14 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: mmplayer
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0.0. | 
| 4 | 
            +
              version: 0.0.7
         | 
| 5 5 | 
             
            platform: ruby
         | 
| 6 6 | 
             
            authors:
         | 
| 7 7 | 
             
            - Ari Russo
         | 
| 8 8 | 
             
            autorequire: 
         | 
| 9 9 | 
             
            bindir: bin
         | 
| 10 10 | 
             
            cert_chain: []
         | 
| 11 | 
            -
            date: 2015-05- | 
| 11 | 
            +
            date: 2015-05-08 00:00:00.000000000 Z
         | 
| 12 12 | 
             
            dependencies:
         | 
| 13 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 14 14 | 
             
              name: minitest
         |