pox 0.2.2
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 +7 -0
- data/.gitignore +19 -0
- data/CHANGELOG.md +3 -0
- data/Gemfile +4 -0
- data/LICENSE +22 -0
- data/README.md +29 -0
- data/Rakefile +10 -0
- data/lib/pox.rb +2 -0
- data/lib/pox/engine.rb +8 -0
- data/lib/pox/version.rb +3 -0
- data/pox.gemspec +20 -0
- data/vendor/assets/javascripts/agent/adaptor-cos.js +94 -0
- data/vendor/assets/javascripts/agent/adaptor-default.js +175 -0
- data/vendor/assets/javascripts/agent/adaptor-ipanel.js +127 -0
- data/vendor/assets/javascripts/agent/adaptor-vision.js +100 -0
- data/vendor/assets/javascripts/agent/core.js +12 -0
- data/vendor/assets/javascripts/build-in.js +161 -0
- data/vendor/assets/javascripts/pox.js +24 -0
- data/vendor/assets/javascripts/pox/ajax.js +68 -0
- data/vendor/assets/javascripts/pox/all.js +1 -0
- data/vendor/assets/javascripts/pox/animate.js +211 -0
- data/vendor/assets/javascripts/pox/browser.js +33 -0
- data/vendor/assets/javascripts/pox/core.js +289 -0
- data/vendor/assets/javascripts/pox/debugger.js +54 -0
- data/vendor/assets/javascripts/pox/dom.js +261 -0
- data/vendor/assets/javascripts/pox/transition.js +316 -0
- metadata +85 -0
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 98684756f7077ea76353f47765f1204e2d8ce42c
         | 
| 4 | 
            +
              data.tar.gz: efa34c24d09f0db234cdfcb14d6da76b290f55c3
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 021f5ceb785b4df15e053ef91f9fae23878b0582b13f0b40d5d24893ecf25bba3a9083fd8a23976a9c0d10f29b71addc80ef953e82cc20c4ca2b3481555d8c8c
         | 
| 7 | 
            +
              data.tar.gz: af580107b68f8eba743736b8d677f818fe0d30774bf41998de1633103df98acc1143bda74f1ee67da2700a1462c7b5398c711f4da90a729b756f04e323991aef
         | 
    
        data/.gitignore
    ADDED
    
    
    
        data/CHANGELOG.md
    ADDED
    
    
    
        data/Gemfile
    ADDED
    
    
    
        data/LICENSE
    ADDED
    
    | @@ -0,0 +1,22 @@ | |
| 1 | 
            +
            Copyright (c) 2012 Sunteya
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            MIT License
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            Permission is hereby granted, free of charge, to any person obtaining
         | 
| 6 | 
            +
            a copy of this software and associated documentation files (the
         | 
| 7 | 
            +
            "Software"), to deal in the Software without restriction, including
         | 
| 8 | 
            +
            without limitation the rights to use, copy, modify, merge, publish,
         | 
| 9 | 
            +
            distribute, sublicense, and/or sell copies of the Software, and to
         | 
| 10 | 
            +
            permit persons to whom the Software is furnished to do so, subject to
         | 
| 11 | 
            +
            the following conditions:
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            The above copyright notice and this permission notice shall be
         | 
| 14 | 
            +
            included in all copies or substantial portions of the Software.
         | 
| 15 | 
            +
             | 
| 16 | 
            +
            THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
         | 
| 17 | 
            +
            EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
         | 
| 18 | 
            +
            MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
         | 
| 19 | 
            +
            NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
         | 
| 20 | 
            +
            LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
         | 
| 21 | 
            +
            OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
         | 
| 22 | 
            +
            WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
         | 
    
        data/README.md
    ADDED
    
    | @@ -0,0 +1,29 @@ | |
| 1 | 
            +
            # Pox
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            TODO: Write a gem description
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            ## Installation
         | 
| 6 | 
            +
             | 
| 7 | 
            +
            Add this line to your application's Gemfile:
         | 
| 8 | 
            +
             | 
| 9 | 
            +
                gem 'pox'
         | 
| 10 | 
            +
             | 
| 11 | 
            +
            And then execute:
         | 
| 12 | 
            +
             | 
| 13 | 
            +
                $ bundle
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            Or install it yourself as:
         | 
| 16 | 
            +
             | 
| 17 | 
            +
                $ gem install pox
         | 
| 18 | 
            +
             | 
| 19 | 
            +
            ## Usage
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            TODO: Write usage instructions here
         | 
| 22 | 
            +
             | 
| 23 | 
            +
            ## Contributing
         | 
| 24 | 
            +
             | 
| 25 | 
            +
            1. Fork it
         | 
| 26 | 
            +
            2. Create your feature branch (`git checkout -b my-new-feature`)
         | 
| 27 | 
            +
            3. Commit your changes (`git commit -am 'Added some feature'`)
         | 
| 28 | 
            +
            4. Push to the branch (`git push origin my-new-feature`)
         | 
| 29 | 
            +
            5. Create new Pull Request
         | 
    
        data/Rakefile
    ADDED
    
    | @@ -0,0 +1,10 @@ | |
| 1 | 
            +
            #!/usr/bin/env rake
         | 
| 2 | 
            +
            require 'bundler'
         | 
| 3 | 
            +
            Bundler::GemHelper.install_tasks
         | 
| 4 | 
            +
             | 
| 5 | 
            +
            class Bundler::GemHelper
         | 
| 6 | 
            +
              def rubygem_push(gem_path)
         | 
| 7 | 
            +
                sh("gem push '#{path}' --host http://gems.bstar.wido.me")
         | 
| 8 | 
            +
                Bundler.ui.confirm "Pushed #{name} #{version} to gems.bstar.wido.me."
         | 
| 9 | 
            +
              end
         | 
| 10 | 
            +
            end
         | 
    
        data/lib/pox.rb
    ADDED
    
    
    
        data/lib/pox/engine.rb
    ADDED
    
    
    
        data/lib/pox/version.rb
    ADDED
    
    
    
        data/pox.gemspec
    ADDED
    
    | @@ -0,0 +1,20 @@ | |
| 1 | 
            +
            # coding: utf-8
         | 
| 2 | 
            +
            lib = File.expand_path('../lib', __FILE__)
         | 
| 3 | 
            +
            $LOAD_PATH.unshift(lib) unless $LOAD_PATH.include?(lib)
         | 
| 4 | 
            +
            require 'pox/version'
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            Gem::Specification.new do |spec|
         | 
| 7 | 
            +
              spec.name          = "pox"
         | 
| 8 | 
            +
              spec.version       = Pox::VERSION
         | 
| 9 | 
            +
              spec.authors       = ["nmzhu", "gxw"]
         | 
| 10 | 
            +
              spec.email         = ["nmzhu@b-star.cn", "xwgou@b-star.cn"]
         | 
| 11 | 
            +
              spec.summary       = %q{assets for ipanel}
         | 
| 12 | 
            +
              spec.description   = %q{assets for ipanel}
         | 
| 13 | 
            +
             | 
| 14 | 
            +
              spec.files         = `git ls-files -z`.split("\x0")
         | 
| 15 | 
            +
              spec.executables   = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
         | 
| 16 | 
            +
              spec.test_files    = spec.files.grep(%r{^(test|spec|features)/})
         | 
| 17 | 
            +
              spec.require_paths = ["lib"]
         | 
| 18 | 
            +
             | 
| 19 | 
            +
              spec.add_development_dependency "rake"
         | 
| 20 | 
            +
            end
         | 
| @@ -0,0 +1,94 @@ | |
| 1 | 
            +
            //= require ./adaptor-default
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            (function() {
         | 
| 4 | 
            +
            	"use strict";
         | 
| 5 | 
            +
             | 
| 6 | 
            +
             | 
| 7 | 
            +
            	if (!window.ChannelManager) {
         | 
| 8 | 
            +
            		return;
         | 
| 9 | 
            +
            	}
         | 
| 10 | 
            +
            	
         | 
| 11 | 
            +
            	var CosAgent = {
         | 
| 12 | 
            +
             | 
| 13 | 
            +
            		name: "cos",
         | 
| 14 | 
            +
             | 
| 15 | 
            +
            		keys: ({
         | 
| 16 | 
            +
            			UP:     38,
         | 
| 17 | 
            +
            			LEFT:   37,
         | 
| 18 | 
            +
            			RIGHT:  39,
         | 
| 19 | 
            +
            			DOWN:   40,
         | 
| 20 | 
            +
            			ENTER:  4097,
         | 
| 21 | 
            +
            			RETURN: 4096,
         | 
| 22 | 
            +
            			
         | 
| 23 | 
            +
            			NUM_0: 48,
         | 
| 24 | 
            +
            			NUM_1: 49,
         | 
| 25 | 
            +
            			NUM_2: 50,
         | 
| 26 | 
            +
            			NUM_3: 51,
         | 
| 27 | 
            +
            			NUM_4: 52,
         | 
| 28 | 
            +
            			NUM_5: 53,
         | 
| 29 | 
            +
            			NUM_6: 54,
         | 
| 30 | 
            +
            			NUM_7: 55,
         | 
| 31 | 
            +
            			NUM_8: 56,
         | 
| 32 | 
            +
            			NUM_9: 57,
         | 
| 33 | 
            +
            			
         | 
| 34 | 
            +
            			PAGE_UP:      33,
         | 
| 35 | 
            +
            			PAGE_DOWN:    34,
         | 
| 36 | 
            +
            			
         | 
| 37 | 
            +
            			// MUTE:         #,
         | 
| 38 | 
            +
            			// VOLUME_DEC:   #,
         | 
| 39 | 
            +
            			// VOLUME_INC:   #,
         | 
| 40 | 
            +
            			CHANNEL_INC:  4111,
         | 
| 41 | 
            +
            			CHANNEL_DEC:  4112,
         | 
| 42 | 
            +
            			
         | 
| 43 | 
            +
            			RED          :2305,
         | 
| 44 | 
            +
            			GREEN        :2306,
         | 
| 45 | 
            +
            			YELLOW       :2307,
         | 
| 46 | 
            +
            			BLUE         :2308,
         | 
| 47 | 
            +
            			
         | 
| 48 | 
            +
            			// POWER: #,
         | 
| 49 | 
            +
            			// EXIT: #,
         | 
| 50 | 
            +
            			INFO: 73,
         | 
| 51 | 
            +
            			
         | 
| 52 | 
            +
            			KEY_SERVICE:  402
         | 
| 53 | 
            +
            			// KEY_TV:       #,
         | 
| 54 | 
            +
            			// KEY_GUIDE:    #,
         | 
| 55 | 
            +
            			// KEY_MUSIC:    #
         | 
| 56 | 
            +
            		})
         | 
| 57 | 
            +
            	};
         | 
| 58 | 
            +
            	Pox.extend(Pox.Agent, CosAgent);
         | 
| 59 | 
            +
            	
         | 
| 60 | 
            +
            	Pox.extend(Pox.Agent.Broadcast, {
         | 
| 61 | 
            +
            		initMediaPlayer: function() {
         | 
| 62 | 
            +
            			if (this.mediaPlayer) { return }
         | 
| 63 | 
            +
            			
         | 
| 64 | 
            +
            			this.mediaPlayer = new MediaPlayer();
         | 
| 65 | 
            +
            			// var playerId = this.mediaPlayer.getPlayerInstanceID();
         | 
| 66 | 
            +
            			this.mediaPlayer.bindPlayerInstance(1);
         | 
| 67 | 
            +
            			
         | 
| 68 | 
            +
            			var self = this;
         | 
| 69 | 
            +
            			Pox.leave(function() {
         | 
| 70 | 
            +
            				self.mediaPlayer.stop();
         | 
| 71 | 
            +
            				self.mediaPlayer.unbindPlayerInstance();
         | 
| 72 | 
            +
            			});
         | 
| 73 | 
            +
            		},
         | 
| 74 | 
            +
            		
         | 
| 75 | 
            +
            		playChannel: function(logicalId) {
         | 
| 76 | 
            +
            			this.initMediaPlayer();
         | 
| 77 | 
            +
            			// get Channel
         | 
| 78 | 
            +
            			var channel = ChannelManager.getChannelByLogicalID(logicalId);
         | 
| 79 | 
            +
             | 
| 80 | 
            +
            			// get DvbService and format data source
         | 
| 81 | 
            +
            			var srv = channel.getService();
         | 
| 82 | 
            +
            			var url = "dvb://" + srv.original_network_id + "." + srv.transport_stream_id + "." + srv.service_id;
         | 
| 83 | 
            +
            			this.mediaPlayer.setMediaSource(url);
         | 
| 84 | 
            +
             | 
| 85 | 
            +
            			this.mediaPlayer.play();
         | 
| 86 | 
            +
            		},
         | 
| 87 | 
            +
            		
         | 
| 88 | 
            +
            		screenDimension: function(left, top, width, height) {
         | 
| 89 | 
            +
            			var rect = new Rectangle(left, top, width, height); // x, y, width, height
         | 
| 90 | 
            +
            			this.mediaPlayer.setVideoDisplayArea(rect);
         | 
| 91 | 
            +
            			this.mediaPlayer.refresh();
         | 
| 92 | 
            +
            		}
         | 
| 93 | 
            +
            	});
         | 
| 94 | 
            +
            })();
         | 
| @@ -0,0 +1,175 @@ | |
| 1 | 
            +
            //= require ./core
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            (function() {
         | 
| 4 | 
            +
            	"use strict";
         | 
| 5 | 
            +
            	
         | 
| 6 | 
            +
            	/** @lends Pox.Agent */
         | 
| 7 | 
            +
            	var DefaultAgent = {
         | 
| 8 | 
            +
             | 
| 9 | 
            +
            		/** 当前机顶盒名称 */
         | 
| 10 | 
            +
            		name: "default",
         | 
| 11 | 
            +
            		
         | 
| 12 | 
            +
            		/**
         | 
| 13 | 
            +
            		 * 将数字键的 char 转换成对应数字, 无效则返回 NaN
         | 
| 14 | 
            +
            		 * @param {string} which
         | 
| 15 | 
            +
            		 * @return {number}
         | 
| 16 | 
            +
            		 */
         | 
| 17 | 
            +
            		numKey: function(which) {
         | 
| 18 | 
            +
            			switch(which) {
         | 
| 19 | 
            +
            			case this.keys.NUM_0:
         | 
| 20 | 
            +
            				return 0;
         | 
| 21 | 
            +
            			case this.keys.NUM_1:
         | 
| 22 | 
            +
            				return 1;
         | 
| 23 | 
            +
            			case this.keys.NUM_2:
         | 
| 24 | 
            +
            				return 2;
         | 
| 25 | 
            +
            			case this.keys.NUM_3:
         | 
| 26 | 
            +
            				return 3;
         | 
| 27 | 
            +
            			case this.keys.NUM_4:
         | 
| 28 | 
            +
            				return 4;
         | 
| 29 | 
            +
            			case this.keys.NUM_5:
         | 
| 30 | 
            +
            				return 5;
         | 
| 31 | 
            +
            			case this.keys.NUM_6:
         | 
| 32 | 
            +
            				return 6;
         | 
| 33 | 
            +
            			case this.keys.NUM_7:
         | 
| 34 | 
            +
            				return 7;
         | 
| 35 | 
            +
            			case this.keys.NUM_8:
         | 
| 36 | 
            +
            				return 8;
         | 
| 37 | 
            +
            			case this.keys.NUM_9:
         | 
| 38 | 
            +
            				return 9;
         | 
| 39 | 
            +
            			default:
         | 
| 40 | 
            +
            				return NaN;
         | 
| 41 | 
            +
            			}
         | 
| 42 | 
            +
            		},
         | 
| 43 | 
            +
             | 
| 44 | 
            +
            		/**
         | 
| 45 | 
            +
            		 * 将方向键 char 转换成字符串标识 (LEFT, RIGHT, UP, DOWN)
         | 
| 46 | 
            +
            		 * param {string} which
         | 
| 47 | 
            +
            		 * return {string}
         | 
| 48 | 
            +
            		 */
         | 
| 49 | 
            +
            		directionKey: function(which) {
         | 
| 50 | 
            +
            			switch(which) {
         | 
| 51 | 
            +
            			case $a.keys.LEFT:
         | 
| 52 | 
            +
            				return "LEFT";
         | 
| 53 | 
            +
            			case $a.keys.RIGHT:
         | 
| 54 | 
            +
            				return "RIGHT";
         | 
| 55 | 
            +
            			case $a.keys.UP:
         | 
| 56 | 
            +
            				return "UP";
         | 
| 57 | 
            +
            			case $a.keys.DOWN:
         | 
| 58 | 
            +
            				return "DOWN";
         | 
| 59 | 
            +
            			default:
         | 
| 60 | 
            +
            				return null;
         | 
| 61 | 
            +
            			}
         | 
| 62 | 
            +
            		},
         | 
| 63 | 
            +
            		
         | 
| 64 | 
            +
            		/**
         | 
| 65 | 
            +
            		 * 对内部文字进行反编码, 解决有些内部文字乱码问题
         | 
| 66 | 
            +
            		 * param {string} msg
         | 
| 67 | 
            +
            		 * return {string}
         | 
| 68 | 
            +
            		 */
         | 
| 69 | 
            +
            		dencrypt: function(msg) {
         | 
| 70 | 
            +
            			return msg;
         | 
| 71 | 
            +
            		},
         | 
| 72 | 
            +
            		
         | 
| 73 | 
            +
             | 
| 74 | 
            +
             | 
| 75 | 
            +
            		/**
         | 
| 76 | 
            +
            		 * 键值定义
         | 
| 77 | 
            +
            		 * @type KeysDefined
         | 
| 78 | 
            +
            		 */
         | 
| 79 | 
            +
            		keys: ({
         | 
| 80 | 
            +
            			/**
         | 
| 81 | 
            +
            			 * @typedef KeysDefined
         | 
| 82 | 
            +
            			 * @prop UP     上方向键
         | 
| 83 | 
            +
            			 * @prop LEFT   左方向键
         | 
| 84 | 
            +
            			 * @prop RIGHT  右方向键
         | 
| 85 | 
            +
            			 * @prop DOWN   下方向键
         | 
| 86 | 
            +
            			 * @prop ENTER  确定键
         | 
| 87 | 
            +
            			 * @prop RETURN 返回键
         | 
| 88 | 
            +
            			 * @prop NUM_0  数字0键
         | 
| 89 | 
            +
            			 * @prop NUM_1  数字1键
         | 
| 90 | 
            +
            			 * @prop NUM_2  数字2键
         | 
| 91 | 
            +
            			 * @prop NUM_3  数字3键
         | 
| 92 | 
            +
            			 * @prop NUM_4  数字4键
         | 
| 93 | 
            +
            			 * @prop NUM_5  数字5键
         | 
| 94 | 
            +
            			 * @prop NUM_6  数字6键
         | 
| 95 | 
            +
            			 * @prop NUM_7  数字7键
         | 
| 96 | 
            +
            			 * @prop NUM_8  数字8键
         | 
| 97 | 
            +
            			 * @prop NUM_9  数字9键
         | 
| 98 | 
            +
            			 * @prop PAGE_UP   上一页键
         | 
| 99 | 
            +
            			 * @prop PAGE_DOWN 下一页键
         | 
| 100 | 
            +
            			 * @prop CHANNEL_INC 频道加键
         | 
| 101 | 
            +
            			 * @prop CHANNEL_DEC 频道减键
         | 
| 102 | 
            +
            			 * @prop INFO   信息键
         | 
| 103 | 
            +
            			 */
         | 
| 104 | 
            +
            			UP:     38,
         | 
| 105 | 
            +
            			LEFT:   37,
         | 
| 106 | 
            +
            			RIGHT:  39,
         | 
| 107 | 
            +
            			DOWN:   40,
         | 
| 108 | 
            +
            			ENTER:  13,
         | 
| 109 | 
            +
            			RETURN: 8, // BACKSPACE
         | 
| 110 | 
            +
            			
         | 
| 111 | 
            +
            			NUM_0: 48,
         | 
| 112 | 
            +
            			NUM_1: 49,
         | 
| 113 | 
            +
            			NUM_2: 50,
         | 
| 114 | 
            +
            			NUM_3: 51,
         | 
| 115 | 
            +
            			NUM_4: 52,
         | 
| 116 | 
            +
            			NUM_5: 53,
         | 
| 117 | 
            +
            			NUM_6: 54,
         | 
| 118 | 
            +
            			NUM_7: 55,
         | 
| 119 | 
            +
            			NUM_8: 56,
         | 
| 120 | 
            +
            			NUM_9: 57,
         | 
| 121 | 
            +
            			
         | 
| 122 | 
            +
            			PAGE_UP:      219, // [
         | 
| 123 | 
            +
            			PAGE_DOWN:    221, // ]
         | 
| 124 | 
            +
            			
         | 
| 125 | 
            +
            			CHANNEL_INC:  61, // -
         | 
| 126 | 
            +
            			CHANNEL_DEC:  109,  // =
         | 
| 127 | 
            +
            			
         | 
| 128 | 
            +
            			INFO: 73 // i
         | 
| 129 | 
            +
            		})
         | 
| 130 | 
            +
            	};
         | 
| 131 | 
            +
             | 
| 132 | 
            +
            	Pox.extend(Pox.Agent, DefaultAgent);
         | 
| 133 | 
            +
             | 
| 134 | 
            +
            	/**
         | 
| 135 | 
            +
            	 * 机顶盒组播对象
         | 
| 136 | 
            +
            	 * @namespace Pox.Agent.Broadcast
         | 
| 137 | 
            +
            	 */
         | 
| 138 | 
            +
            	/** @lends Pox.Agent.Broadcast */
         | 
| 139 | 
            +
            	Pox.Agent.Broadcast = {
         | 
| 140 | 
            +
            		/**
         | 
| 141 | 
            +
            		 * 播放直播频道
         | 
| 142 | 
            +
            		 * @param {string} id
         | 
| 143 | 
            +
            		 */
         | 
| 144 | 
            +
            		playChannel: function(id) {
         | 
| 145 | 
            +
            			console.log("play channel: id = " + id);
         | 
| 146 | 
            +
            		},
         | 
| 147 | 
            +
            		
         | 
| 148 | 
            +
            		/**
         | 
| 149 | 
            +
            		 * 获取节目单
         | 
| 150 | 
            +
            		 * @param {string} id
         | 
| 151 | 
            +
            		 * @return {Object}
         | 
| 152 | 
            +
            		 */
         | 
| 153 | 
            +
            		nowPlaying: function(id) {
         | 
| 154 | 
            +
            			return {
         | 
| 155 | 
            +
            				"now": {
         | 
| 156 | 
            +
            					"startTime": "00:00",
         | 
| 157 | 
            +
            					"name": "program1"
         | 
| 158 | 
            +
            				},
         | 
| 159 | 
            +
            				"next": {
         | 
| 160 | 
            +
            					"startTime": "01:00",
         | 
| 161 | 
            +
            					"name": "program2"
         | 
| 162 | 
            +
            				}
         | 
| 163 | 
            +
            			}
         | 
| 164 | 
            +
            		},
         | 
| 165 | 
            +
            		
         | 
| 166 | 
            +
            		/**
         | 
| 167 | 
            +
            		 * 设置屏幕位置大小
         | 
| 168 | 
            +
            		 * @param {number} left
         | 
| 169 | 
            +
            		 * @param {number} right
         | 
| 170 | 
            +
            		 * @param {number} width
         | 
| 171 | 
            +
            		 * @param {number} height
         | 
| 172 | 
            +
            		 */
         | 
| 173 | 
            +
            		screenDimension: function(left, top, width, height) { }
         | 
| 174 | 
            +
            	};
         | 
| 175 | 
            +
            })();
         | 
| @@ -0,0 +1,127 @@ | |
| 1 | 
            +
            //= require ./adaptor-default
         | 
| 2 | 
            +
             | 
| 3 | 
            +
            (function() {
         | 
| 4 | 
            +
            	"use strict";
         | 
| 5 | 
            +
             | 
| 6 | 
            +
            	if (navigator.userAgent.toLowerCase().indexOf("ipanel") == -1) {
         | 
| 7 | 
            +
            		return;
         | 
| 8 | 
            +
            	}
         | 
| 9 | 
            +
             | 
| 10 | 
            +
            	var IpanelAgent = {
         | 
| 11 | 
            +
            		name: "ipanel",
         | 
| 12 | 
            +
            		
         | 
| 13 | 
            +
            		dencrypt: function(msg) {
         | 
| 14 | 
            +
            			if (msg) {
         | 
| 15 | 
            +
            				return iPanel.misc.getUserCharsetStr(msg, "gb2312");
         | 
| 16 | 
            +
            			}
         | 
| 17 | 
            +
            			
         | 
| 18 | 
            +
            			return msg;
         | 
| 19 | 
            +
            		},
         | 
| 20 | 
            +
             | 
| 21 | 
            +
            		keys: {
         | 
| 22 | 
            +
            			UP: 1,
         | 
| 23 | 
            +
            			LEFT: 3,
         | 
| 24 | 
            +
            			RIGHT: 4,
         | 
| 25 | 
            +
            			DOWN: 2,
         | 
| 26 | 
            +
            			ENTER: 13,
         | 
| 27 | 
            +
            			RETURN: 340,
         | 
| 28 | 
            +
            			
         | 
| 29 | 
            +
            			RED: 832,
         | 
| 30 | 
            +
            			YELLOW: 834,
         | 
| 31 | 
            +
            			
         | 
| 32 | 
            +
            			NUM_0: 48,
         | 
| 33 | 
            +
            			NUM_1: 49,
         | 
| 34 | 
            +
            			NUM_2: 50,
         | 
| 35 | 
            +
            			NUM_3: 51,
         | 
| 36 | 
            +
            			NUM_4: 52,
         | 
| 37 | 
            +
            			NUM_5: 53,
         | 
| 38 | 
            +
            			NUM_6: 54,
         | 
| 39 | 
            +
            			NUM_7: 55,
         | 
| 40 | 
            +
            			NUM_8: 56,
         | 
| 41 | 
            +
            			NUM_9: 57,
         | 
| 42 | 
            +
            			
         | 
| 43 | 
            +
            			PAGE_UP:      372,
         | 
| 44 | 
            +
            			PAGE_DOWN:    373,
         | 
| 45 | 
            +
            			
         | 
| 46 | 
            +
            			MUTE:         597,
         | 
| 47 | 
            +
            			VOLUME_DEC:   596,
         | 
| 48 | 
            +
            			VOLUME_INC:   595,
         | 
| 49 | 
            +
            			CHANNEL_INC:  593,
         | 
| 50 | 
            +
            			CHANNEL_DEC:  594,
         | 
| 51 | 
            +
            			
         | 
| 52 | 
            +
            			POWER: 258,
         | 
| 53 | 
            +
            			EXIT: 339,
         | 
| 54 | 
            +
            			INFO: 567, // i
         | 
| 55 | 
            +
            			
         | 
| 56 | 
            +
            			KEY_SERVICE:  562,
         | 
| 57 | 
            +
            			KEY_TV:       1038,
         | 
| 58 | 
            +
            			KEY_GUIDE:    513,
         | 
| 59 | 
            +
            			KEY_MUSIC:    564
         | 
| 60 | 
            +
            		}
         | 
| 61 | 
            +
            	};
         | 
| 62 | 
            +
             | 
| 63 | 
            +
            	Pox.extend(Pox.Agent, IpanelAgent);
         | 
| 64 | 
            +
             | 
| 65 | 
            +
            	Pox.extend(Pox, {
         | 
| 66 | 
            +
            		now: function() {
         | 
| 67 | 
            +
            			return new Date();
         | 
| 68 | 
            +
            		}
         | 
| 69 | 
            +
            	});
         | 
| 70 | 
            +
             | 
| 71 | 
            +
            	Pox.extend(Pox.Browser, {
         | 
| 72 | 
            +
            		supportWebkitTransition: true,
         | 
| 73 | 
            +
            		supportWebkitTransform: false
         | 
| 74 | 
            +
            	});
         | 
| 75 | 
            +
             | 
| 76 | 
            +
            	Pox.extend(Pox.Agent.Broadcast, {
         | 
| 77 | 
            +
            		playChannel: function(id) {
         | 
| 78 | 
            +
            			var channel = this._channelByUpcode(id);
         | 
| 79 | 
            +
            			if (channel) {
         | 
| 80 | 
            +
            				var service = channel.getService();
         | 
| 81 | 
            +
            				DVB.playAV(service.frequency, service.serviceId);
         | 
| 82 | 
            +
            			}
         | 
| 83 | 
            +
            		},
         | 
| 84 | 
            +
            		
         | 
| 85 | 
            +
            		nowPlaying: function(id) {
         | 
| 86 | 
            +
            			try {
         | 
| 87 | 
            +
            				var channel = this._channelByUpcode(id);
         | 
| 88 | 
            +
            				if (!channel) {
         | 
| 89 | 
            +
            					return {};
         | 
| 90 | 
            +
            				}
         | 
| 91 | 
            +
            				
         | 
| 92 | 
            +
            				var service = channel.getService();
         | 
| 93 | 
            +
            				if (!service) {
         | 
| 94 | 
            +
            					return {};
         | 
| 95 | 
            +
            				}
         | 
| 96 | 
            +
            				
         | 
| 97 | 
            +
            				var result = {};
         | 
| 98 | 
            +
            				result["now"] = this._convertProgram(service.presentProgram);
         | 
| 99 | 
            +
            				result["next"] = this._convertProgram(service.followingProgram);
         | 
| 100 | 
            +
            				return result;
         | 
| 101 | 
            +
            			} catch(e) {
         | 
| 102 | 
            +
            				return {};
         | 
| 103 | 
            +
            			}
         | 
| 104 | 
            +
            		},
         | 
| 105 | 
            +
            		
         | 
| 106 | 
            +
            		screenDimension: function(left, top, width, height) {
         | 
| 107 | 
            +
            			media.video.setPosition(left, top, width, height);
         | 
| 108 | 
            +
            		},
         | 
| 109 | 
            +
            		
         | 
| 110 | 
            +
            		_convertProgram: function(data) {
         | 
| 111 | 
            +
            			var result = {};
         | 
| 112 | 
            +
            			result["name"] = iPanel.misc.getUserCharsetStr(data.name, "gb2312");
         | 
| 113 | 
            +
            			result["startTime"] = iPanel.misc.getUserCharsetStr(data.startTime, "gb2312");
         | 
| 114 | 
            +
            			return result;
         | 
| 115 | 
            +
            		},
         | 
| 116 | 
            +
            		
         | 
| 117 | 
            +
            		_channelByUpcode: function(upcode) {
         | 
| 118 | 
            +
            			var user = users.currentUser;
         | 
| 119 | 
            +
            			return user.channels.getChannelByNum(upcode);
         | 
| 120 | 
            +
            		}
         | 
| 121 | 
            +
            	});
         | 
| 122 | 
            +
            	
         | 
| 123 | 
            +
            	Pox.leave(function() {
         | 
| 124 | 
            +
            		try { DVB.stopAV(0); } catch(e) {}
         | 
| 125 | 
            +
            		try { media.AV.close(); } catch(e) {}
         | 
| 126 | 
            +
            	});
         | 
| 127 | 
            +
            })();
         |