├── .gitignore
├── dist
├── assets
│ ├── ffmpeg-static
│ │ ├── ffmpeg.exe
│ │ └── ffprobe.exe
│ ├── fonts
│ │ ├── CinzelDecorative-Regular.ttf
│ │ ├── Comfortaa-Regular.ttf
│ │ ├── Dosis-Light.ttf
│ │ ├── Megrim.ttf
│ │ ├── PoiretOne-Regular.ttf
│ │ ├── Raleway-Regular.ttf
│ │ ├── RobotoMono-Light.ttf
│ │ ├── RobotoMono-Regular.ttf
│ │ ├── RobotoMono-Thin.ttf
│ │ ├── SourceCodePro-Light.ttf
│ │ ├── SourceCodePro-Regular.ttf
│ │ ├── Ubuntu-Light.ttf
│ │ └── Ubuntu-Regular.ttf
│ ├── gray-icon32.png
│ ├── gray-icon64.png
│ ├── icon-variants
│ │ ├── pman-music-icon.svg
│ │ ├── pman-photo-icon.svg
│ │ └── pman-video-icon.svg
│ ├── icon1024.png
│ ├── icon128.ico
│ ├── icon128.png
│ ├── icon16.ico
│ ├── icon16.png
│ ├── icon24.ico
│ ├── icon24.png
│ ├── icon256.ico
│ ├── icon256.png
│ ├── icon32.ico
│ ├── icon32.png
│ ├── icon48.ico
│ ├── icon48.png
│ ├── icon512.png
│ ├── icon64.ico
│ ├── icon64.png
│ ├── oldicons
│ │ ├── bplayer-icon.png
│ │ ├── bplayer-icon.xcf
│ │ ├── icon128.ico
│ │ ├── icon128.png
│ │ ├── icon16.ico
│ │ ├── icon16.png
│ │ ├── icon256.png
│ │ ├── icon32.ico
│ │ ├── icon32.png
│ │ ├── icon48.png
│ │ ├── icon64.ico
│ │ └── icon64.png
│ ├── pman-new-icon-gray.svg
│ ├── pman-new-icon.png
│ ├── pman-new-icon.svg
│ ├── pman-new-icon.xcf
│ └── templates
│ │ ├── help-page.html
│ │ ├── preferences.html
│ │ ├── track-info.html
│ │ └── track-item.html
├── build.sh
├── buildscripts
│ └── src
│ │ ├── files.coffee
│ │ ├── installer.coffee
│ │ ├── pack.coffee
│ │ ├── standalone.coffee
│ │ └── tools.coffee
├── pack.bat
├── package-lock.json
├── package.json
├── package.sh
├── pages
│ ├── index.html
│ ├── index.min.html
│ ├── pman-page.html
│ └── preferences.html
├── prefixer.py
├── scripts
│ ├── all-libs.js
│ ├── all-libs.min.js
│ ├── foundation.min.js
│ ├── foundation5.min.js
│ ├── jquery-3.0.0.js
│ ├── jquery-ui.min.js
│ ├── jquery.min.js
│ ├── jquery.terminal-1.4.2.min.js
│ ├── otherstuff.js
│ └── unix_formatting.js
└── styles
│ ├── fonts.css
│ ├── foundation-flex.min.css
│ ├── foundation-icons.css
│ ├── foundation-rtl.min.css
│ ├── foundation.min.css
│ ├── foundation5.min.css
│ ├── jquery-ui.min.css
│ ├── jquery-ui.structure.min.css
│ ├── jquery-ui.theme.min.css
│ ├── jquery.terminal-1.4.2.min.css
│ ├── pman.less
│ ├── scaffolds.css
│ ├── theme.less
│ ├── utils.less
│ ├── widgets.less
│ └── widgets
│ ├── dialogs.less
│ ├── gallery.less
│ ├── misc.less
│ └── playlist.less
├── readme.md
└── src
├── BPlayerMain.hx
├── Background.hx
├── ServerMain.hx
├── assets
└── icons
│ ├── compile.py
│ ├── icon_data.json
│ ├── makefile
│ └── svg
│ ├── back.svg
│ ├── bluetooth.svg
│ ├── cast.svg
│ ├── clear.svg
│ ├── clock.svg
│ ├── close.svg
│ ├── closedcaption-off.svg
│ ├── closedcaption.svg
│ ├── code.svg
│ ├── cog.svg
│ ├── collapse.svg
│ ├── console.svg
│ ├── delete.svg
│ ├── edit.box.svg
│ ├── edit.minus.svg
│ ├── edit.plus.svg
│ ├── edit.svg
│ ├── email.svg
│ ├── expand.svg
│ ├── film.svg
│ ├── folder.svg
│ ├── heart.hollow.svg
│ ├── heart.svg
│ ├── image.gallery.svg
│ ├── image.multiple.svg
│ ├── image.svg
│ ├── info.svg
│ ├── left.svg
│ ├── lines.horizontal.svg
│ ├── list.svg
│ ├── minus.svg
│ ├── music-wifi.svg
│ ├── music.svg
│ ├── next.svg
│ ├── pause.svg
│ ├── play.svg
│ ├── plus.svg
│ ├── previous.svg
│ ├── refresh.svg
│ ├── repeat.svg
│ ├── ribbon.svg
│ ├── right.svg
│ ├── save.svg
│ ├── selection-collapse.svg
│ ├── selection-expand.svg
│ ├── shuffle.svg
│ ├── sort.svg
│ ├── sound-muted.svg
│ ├── sound0.svg
│ ├── sound1.svg
│ ├── sound2.svg
│ ├── sound3.svg
│ ├── star.svg
│ ├── tag.svg
│ ├── tools.svg
│ └── video.svg
├── build.hxml
├── crayon
└── crayon
│ ├── Application.hx
│ ├── Body.hx
│ ├── Page.hx
│ └── PageController.hx
├── electron
├── MenuTemplate.hx
├── Tools.hx
├── ext
│ ├── App.hx
│ ├── BrowserWindow.hx
│ ├── Clipboard.hx
│ ├── Cookies.hx
│ ├── Dialog.hx
│ ├── ExtApp.hx
│ ├── ExtNativeImage.hx
│ ├── FileFilter.hx
│ ├── GlobalShortcut.hx
│ ├── IpcMain.hx
│ ├── IpcRenderer.hx
│ ├── Menu.hx
│ ├── MenuItem.hx
│ ├── NativeImage.hx
│ ├── Remote.hx
│ ├── Session.hx
│ ├── Tray.hx
│ ├── WebContents.hx
│ ├── WebContentsInterface.hx
│ └── WebViewElement.hx
└── ipc
│ ├── IpcAddress.hx
│ ├── IpcAddressType.hx
│ ├── IpcBus.hx
│ ├── IpcBusPacket.hx
│ ├── IpcBus_Main.hx
│ ├── IpcBus_Renderer.hx
│ ├── IpcFrozenMessage.hx
│ ├── IpcMain.hx
│ ├── IpcMessage.hx
│ ├── IpcMessageType.hx
│ ├── IpcSocket.hx
│ ├── IpcSocket_Main.hx
│ ├── IpcSocket_Renderer.hx
│ └── IpcTools.hx
├── ffmpeg
├── FFfmpeg.hx
├── Fluent.hx
└── FluentTools.hx
├── foundation
├── LICENSE
├── README.md
└── src
│ ├── .gitignore
│ ├── README.md
│ └── foundation
│ ├── AccordionMenu.hx
│ ├── AlertPane.hx
│ ├── BaseLabel.hx
│ ├── BoolInput.hx
│ ├── Button.hx
│ ├── ButtonGroup.hx
│ ├── ButtonSize.hx
│ ├── Canvas.hx
│ ├── ContextMenu.hx
│ ├── ContextMenuItem.hx
│ ├── DOMInput.hx
│ ├── Dialog.hx
│ ├── DrilldownMenu.hx
│ ├── Dropdown.hx
│ ├── DropdownButton.hx
│ ├── FlexPane.hx
│ ├── FlexRow.hx
│ ├── FloatInput.hx
│ ├── Foundation.hx
│ ├── Grid.hx
│ ├── Heading.hx
│ ├── IInput.hx
│ ├── Icon.hx
│ ├── IconType.hx
│ ├── Image.hx
│ ├── Input.hx
│ ├── InputGroup.hx
│ ├── Label.hx
│ ├── LabelSpan.hx
│ ├── Link.hx
│ ├── List.hx
│ ├── ListItem.hx
│ ├── Pane.hx
│ ├── Panel.hx
│ ├── Paragraph.hx
│ ├── ProgressBar.hx
│ ├── Row.hx
│ ├── Select.hx
│ ├── Span.hx
│ ├── SplitButton.hx
│ ├── Styles.hx
│ ├── Tab.hx
│ ├── TabbedPane.hx
│ ├── Table.hx
│ ├── TableBody.hx
│ ├── TableCol.hx
│ ├── TableHead.hx
│ ├── TableHeadRow.hx
│ ├── TableRow.hx
│ ├── TextInput.hx
│ ├── TextualWidget.hx
│ ├── Tools.hx
│ ├── Widget.hx
│ ├── WidgetAsset.hx
│ └── styles
│ ├── Display.hx
│ ├── EFloat.hx
│ ├── Pos.hx
│ └── TextAlign.hx
├── ida
└── ida
│ ├── Cursor.hx
│ ├── Database.hx
│ ├── DatabaseConnector.hx
│ ├── Index.hx
│ ├── ObjectStore.hx
│ ├── Transaction.hx
│ ├── Utils.hx
│ └── backend
│ ├── core
│ ├── BasicDatabase.hx
│ └── BasicObjectStore.hx
│ └── idb
│ ├── IDBCursor.hx
│ ├── IDBCursorWalker.hx
│ ├── IDBDatabase.hx
│ ├── IDBDatabaseConnector.hx
│ ├── IDBFunctionalCursorWalker.hx
│ ├── IDBIndex.hx
│ ├── IDBKeyRange.hx
│ ├── IDBObjectStore.hx
│ └── IDBTransaction.hx
├── make.bat
├── makefile
├── nedb
└── DataStore.hx
├── package.bat
├── packer
├── Packer.hx
├── build.hxml
├── make.bat
├── makefile
└── pack
│ ├── AppDirTransformer.hx
│ ├── ArgParser.hx
│ ├── BatchTask.hx
│ ├── BuildInstallers.hx
│ ├── BuildStandalones.hx
│ ├── CatJsLibs.hx
│ ├── ClosureCompile.hx
│ ├── CompileApp.hx
│ ├── CompileLess.hx
│ ├── CompileStyles.hx
│ ├── CompileWorkers.hx
│ ├── CompressJs.hx
│ ├── Concatenate.hx
│ ├── DebianInstaller.hx
│ ├── EBuild.hx
│ ├── Installer.hx
│ ├── LinuxApp.hx
│ ├── PackStandalone.hx
│ ├── Preprocess.hx
│ ├── PromptedTask.hx
│ ├── Prompts.hx
│ ├── RevisePackageJson.hx
│ ├── ShellExecTask.hx
│ ├── ShellSpawnTask.hx
│ ├── Task.hx
│ ├── TaskOptions.hx
│ ├── Tools.hx
│ ├── UglifyJs.hx
│ ├── WindowsApp.hx
│ ├── WindowsInstaller.hx
│ └── adt
│ └── Common.hx
├── pman
├── Assets.hx
├── Errors.hx
├── GlobalMacros.hx
├── Globals.hx
├── LaunchInfo.hx
├── PManError.hx
├── Paths.hx
├── Tools.hx
├── async
│ ├── AlbumArtLoader.hx
│ ├── Async.hx
│ ├── Asyncs.hx
│ ├── Cb.hx
│ ├── ChunkedReadStream.hx
│ ├── MP3MetadataLoader.hx
│ ├── MP4MetadataLoader.hx
│ ├── MediaMetadataLoader.hx
│ ├── Mp4InfoLoader.hx
│ ├── RawSingleThumbnailLoader.hx
│ ├── Result.hx
│ ├── SeekbarPreviewThumbnailLoader.hx
│ ├── Task1.hx
│ ├── Task2.hx
│ ├── Trackable.hx
│ ├── VoidAsync.hx
│ ├── VoidAsyncs.hx
│ ├── VoidCb.hx
│ └── tasks
│ │ ├── CleanDatabase.hx
│ │ ├── EfficientTrackListDataLoader.hx
│ │ ├── ExportDatabase.hx
│ │ ├── FluentTask.hx
│ │ ├── GenerateBundleSnapshot.hx
│ │ ├── GenerateBundleSnapshots.hx
│ │ ├── GenerateThumbnail.hx
│ │ ├── GenerateThumbnails.hx
│ │ ├── HandleClipboardPaste.hx
│ │ ├── LoadAlbumArt.hx
│ │ ├── LoadMediaMetadata.hx
│ │ ├── LoadTrackData.hx
│ │ ├── MediaFileConvertTool.hx
│ │ ├── PlayerStartup.hx
│ │ ├── ResizeImageFile.hx
│ │ ├── SaveSnapshot.hx
│ │ ├── SaveTrackInfo.hx
│ │ ├── ScaleBundleItem.hx
│ │ ├── TrackBatchCache.hx
│ │ ├── TrackDataAutoFill.hx
│ │ ├── TrackDataPullRaw.hx
│ │ ├── TrackDelete.hx
│ │ ├── TrackListDataLoader.hx
│ │ └── TrackRename.hx
├── bg
│ ├── BgTest.hx
│ ├── DictTools.hx
│ ├── Dirs.hx
│ ├── MediaTools.hx
│ ├── PathTools.hx
│ ├── URITools.hx
│ ├── db
│ │ ├── ActorTable.hx
│ │ ├── Database.hx
│ │ ├── MediaTable.hx
│ │ ├── Table.hx
│ │ └── TagTable.hx
│ ├── media
│ │ ├── Actor.hx
│ │ ├── ActorRow.hx
│ │ ├── Bundle.hx
│ │ ├── Bundles.hx
│ │ ├── Dimensions.hx
│ │ ├── Mark.hx
│ │ ├── Media.hx
│ │ ├── MediaAttrExtractor.hx
│ │ ├── MediaData.hx
│ │ ├── MediaDataDelta.hx
│ │ ├── MediaDataSource.hx
│ │ ├── MediaDataState.hx
│ │ ├── MediaFeature.hx
│ │ ├── MediaFilter.hx
│ │ ├── MediaMetadata.hx
│ │ ├── MediaRow.hx
│ │ ├── MediaSort.hx
│ │ ├── MediaSource.hx
│ │ ├── MediaType.hx
│ │ ├── Tag.hx
│ │ ├── TagRow.hx
│ │ └── TypedMediaMetadata.hx
│ └── tasks
│ │ ├── LoadMediaData.hx
│ │ ├── LoadMediaMetadata.hx
│ │ └── SaveMediaData.hx
├── core
│ ├── ApplicationState.hx
│ ├── Collection.hx
│ ├── CollectionEntry.hx
│ ├── CollectionEntryType.hx
│ ├── CollectionSource.hx
│ ├── Engine.hx
│ ├── Ent.hx
│ ├── Executor.hx
│ ├── ExecutorTools.hx
│ ├── JsonData.hx
│ ├── PlaybackTarget.hx
│ ├── Player.hx
│ ├── PlayerCommand.hx
│ ├── PlayerComponent.hx
│ ├── PlayerController.hx
│ ├── PlayerHistory.hx
│ ├── PlayerMediaContext.hx
│ ├── PlayerPlaybackProperties.hx
│ ├── PlayerSession.hx
│ ├── PlayerSessionState.hx
│ ├── PlayerStatus.hx
│ ├── PlayerTab.hx
│ ├── PlayerTools.hx
│ ├── PlayerViewOptions.hx
│ ├── comp
│ │ └── Skimmer.hx
│ ├── engine
│ │ └── Dialogs.hx
│ ├── exec
│ │ ├── BatchExecutor.hx
│ │ ├── MicroTask.hx
│ │ └── MicroTaskSpec.hx
│ └── history
│ │ ├── PlayerHistoryItem.hx
│ │ └── PlayerHistoryTools.hx
├── db
│ ├── ActorsStore.hx
│ ├── AppDir.hx
│ ├── Bucket.hx
│ ├── ConfigInfo.hx
│ ├── DbMediaInfo.hx
│ ├── MediaIdCache.hx
│ ├── MediaItem.hx
│ ├── MediaStore.hx
│ ├── Model.hx
│ ├── Modem.hx
│ ├── PManDatabase.hx
│ ├── Port.hx
│ ├── Preferences.hx
│ ├── Snapshot.hx
│ ├── Snapshots.hx
│ ├── Storage.hx
│ ├── StoredModel.hx
│ ├── StringBucket.hx
│ ├── TableWrapper.hx
│ ├── TagsStore.hx
│ ├── WebStorage.hx
│ └── spec
│ │ ├── DatabaseSpec.hx
│ │ ├── DatabaseSpecBuilder.hx
│ │ ├── IndexSpec.hx
│ │ ├── TableSpec.hx
│ │ └── TableSpecBuilder.hx
├── display
│ ├── ColorScheme.hx
│ ├── Icons.hx
│ ├── PlayerInterfaceConfiguration.hx
│ ├── PlayerView.hx
│ ├── Templates.hx
│ ├── VideoFilter.hx
│ ├── VideoFilterTools.hx
│ ├── VideoFilterType.hx
│ └── media
│ │ ├── AudioEqualizer.hx
│ │ ├── AudioVisualizer.hx
│ │ ├── AudioVisualizerTools.hx
│ │ ├── BarsVisualizer.hx
│ │ ├── CircleBasedVisualizer.hx
│ │ ├── LayeredCircleVisualizer.hx
│ │ ├── LocalAudioRenderer.hx
│ │ ├── LocalImageRenderer.hx
│ │ ├── LocalMediaObjectRenderer.hx
│ │ ├── LocalVideoRenderer.hx
│ │ ├── MediaRenderer.hx
│ │ ├── MediaRendererComponent.hx
│ │ ├── SpectographVisualizer.hx
│ │ ├── VideoAudioVisualizer.hx
│ │ └── audio
│ │ ├── AudioPipeline.hx
│ │ ├── AudioPipelineNode.hx
│ │ ├── FrequencyRangeIsolatorNode.hx
│ │ └── SplitAudioByFrequencyRangeNode.hx
├── ds
│ ├── DataTransfer.hx
│ ├── DataTransferItem.hx
│ ├── DataTransferItemList.hx
│ ├── DirectoryProbe.hx
│ ├── FileFilterProbe.hx
│ ├── FixedLengthArray.hx
│ ├── Model.hx
│ ├── ModelBuilder.hx
│ ├── ModelPersistor.hx
│ ├── Modem.hx
│ ├── OnceSignal.hx
│ ├── OpenableFileProbe.hx
│ ├── Port.hx
│ ├── ProxyModel.hx
│ ├── Transform.hx
│ └── io
│ │ ├── ByteArrayTransform.hx
│ │ ├── EdisStoragePort.hx
│ │ ├── FileModelPersistor.hx
│ │ ├── FilePort.hx
│ │ ├── FileSystemPort.hx
│ │ └── SerialTransform.hx
├── edb
│ ├── ActorStore.hx
│ ├── AppDir.hx
│ ├── AppDirPlaylists.hx
│ ├── ConfigInfo.hx
│ ├── HaxeSerializationFileStorage.hx
│ ├── JsonFileStorage.hx
│ ├── MediaRowTools.hx
│ ├── MediaStore.hx
│ ├── Modem.hx
│ ├── Modification.hx
│ ├── Operators.hx
│ ├── PManDatabase.hx
│ ├── Port.hx
│ ├── Preferences.hx
│ ├── Query.hx
│ ├── Storage.hx
│ └── TableWrapper.hx
├── events
│ ├── DragDropEvent.hx
│ ├── Event.hx
│ ├── EventEmitter.hx
│ ├── HotkeyController.hx
│ ├── KbInputController.hx
│ ├── KbInputHandler.hx
│ ├── KeySequenceDescriptor.hx
│ ├── KeyTools.hx
│ ├── KeyboardControls.hx
│ ├── KeyboardEvent.hx
│ ├── KeyboardEventDescriptor.hx
│ ├── KeyboardEventType.hx
│ ├── ModSensitiveEvent.hx
│ └── PlayerDragDropEvent.hx
├── format
│ ├── ini
│ │ ├── Data.hx
│ │ └── Reader.hx
│ ├── m3u
│ │ ├── Reader.hx
│ │ └── Writer.hx
│ ├── pls
│ │ └── Reader.hx
│ ├── pmsh
│ │ ├── Cmd.hx
│ │ ├── CmdArg.hx
│ │ ├── CmdIo.hx
│ │ ├── Expr.hx
│ │ ├── ExprTools.hx
│ │ ├── FuncCmd.hx
│ │ ├── Interpreter.hx
│ │ ├── NewParser.hx
│ │ ├── Printer.hx
│ │ ├── Token.hx
│ │ ├── Tokenizer.hx
│ │ └── io
│ │ │ ├── CmdInput.hx
│ │ │ └── CmdOutput.hx
│ ├── time
│ │ ├── TimeExpr.hx
│ │ └── TimeParser.hx
│ └── xspf
│ │ ├── Data.hx
│ │ ├── Reader.hx
│ │ ├── Tools.hx
│ │ └── Writer.hx
├── http
│ ├── UrlTransformer.hx
│ └── domains
│ │ ├── DomainHandler.hx
│ │ └── YouTubeHandler.hx
├── imports.hx
├── ipc
│ ├── BaseIpcCommands.hx
│ ├── IpcIncomingPacket.hx
│ ├── MainIpcCommands.hx
│ └── RendererIpcCommands.hx
├── media
│ ├── CastingController.hx
│ ├── ChromecastController.hx
│ ├── ChromecastMediaDriver.hx
│ ├── FileListConverter.hx
│ ├── HttpAddressMedia.hx
│ ├── HttpAddressMediaProvider.hx
│ ├── LinkedPlaylist.hx
│ ├── LocalAudioMediaDriver.hx
│ ├── LocalFileMedia.hx
│ ├── LocalFileMediaProvider.hx
│ ├── LocalImageMediaDriver.hx
│ ├── LocalMediaObjectMediaDriver.hx
│ ├── LocalVideoMediaDriver.hx
│ ├── Media.hx
│ ├── MediaController.hx
│ ├── MediaDriver.hx
│ ├── MediaError.hx
│ ├── MediaListProvider.hx
│ ├── MediaMetadata.hx
│ ├── MediaProvider.hx
│ ├── MediaSource.hx
│ ├── MediaSourceList.hx
│ ├── MediaSourceListProvider.hx
│ ├── MediaTools.hx
│ ├── MediaType.hx
│ ├── MultiMediaDriver.hx
│ ├── PathListConverter.hx
│ ├── PlaybackCommand.hx
│ ├── Playlist.hx
│ ├── PlaylistChange.hx
│ ├── PlaylistClass.hx
│ ├── Track.hx
│ ├── TrackData.hx
│ ├── TrackData2.hx
│ ├── TrackDataDeltaTools.hx
│ ├── TrackDataTools.hx
│ ├── TrackFilter.hx
│ ├── TrackListInitializer.hx
│ ├── TrackListProvider.hx
│ ├── TrackSelection.hx
│ ├── TrackSort.hx
│ └── info
│ │ ├── Actor.hx
│ │ ├── Bundle.hx
│ │ ├── BundleItem.hx
│ │ ├── BundleItemType.hx
│ │ ├── Bundles.hx
│ │ ├── Mark.hx
│ │ ├── OldMark.hx
│ │ ├── OldTag.hx
│ │ └── Thumbs.hx
├── pmbash
│ ├── Interp.hx
│ ├── args
│ │ ├── CmdArgParser.hx
│ │ ├── Directive.hx
│ │ ├── DirectiveExecutor.hx
│ │ └── DirectiveSpec.hx
│ └── commands
│ │ ├── AliasCommand.hx
│ │ ├── BookmarkCommand.hx
│ │ ├── Builtin.hx
│ │ ├── CliCommand.hx
│ │ ├── Command.hx
│ │ ├── ExitCommand.hx
│ │ ├── FunctionalSubCommand.hx
│ │ ├── HierCommand.hx
│ │ ├── MediaCommand.hx
│ │ ├── PlayerCommand.hx
│ │ ├── PlaylistCommand.hx
│ │ ├── QueueCommand.hx
│ │ ├── RestartCommand.hx
│ │ ├── SubCommand.hx
│ │ └── TrackCommand.hx
├── search
│ ├── BaseSearchEngine.hx
│ ├── FileSystemSearchEngine.hx
│ ├── Match.hx
│ ├── MatchList.hx
│ ├── QoSearchEngine.hx
│ ├── QuickOpenItem.hx
│ ├── QuickOpenItems.hx
│ ├── SearchEngine.hx
│ ├── SearchTerm.hx
│ ├── SearchTermParser.hx
│ ├── SearchTermTokenizer.hx
│ ├── SearchTools.hx
│ └── TrackSearchEngine.hx
├── server
│ ├── Server.hx
│ ├── ServerInitData.hx
│ └── ServerTools.hx
├── sid
│ └── Clipboard.hx
├── sys
│ ├── FSWFilter.hx
│ ├── FSWFilterTools.hx
│ ├── FileSystemWalker.hx
│ ├── ValueExtractor.hx
│ ├── ValueExtractorInterp.hx
│ └── ValueExtractorTools.hx
├── time
│ ├── AnimTicker.hx
│ └── Timer.hx
├── tools
│ ├── ArgParser.hx
│ ├── Directive.hx
│ ├── DirectiveExecutor.hx
│ ├── DirectiveSpec.hx
│ ├── HsTools.hx
│ ├── PathTools.hx
│ ├── SimpleWordLexer.hx
│ ├── ValueCheck.hx
│ ├── chromecast
│ │ ├── Browser.hx
│ │ ├── Device.hx
│ │ ├── ExtBrowser.hx
│ │ └── ExtDevice.hx
│ ├── localforage
│ │ └── LocalForage.hx
│ ├── localip
│ │ └── LocalIp.hx
│ ├── mdns
│ │ ├── MDNSBrowser.hx
│ │ ├── Mdns.hx
│ │ └── ServiceType.hx
│ ├── mediatags
│ │ └── MediaTagReader.hx
│ ├── mp3duration
│ │ └── MP3Duration.hx
│ └── mp4box
│ │ ├── MP4Box.hx
│ │ └── MP4Metadata.hx
├── ui
│ ├── AjaxPage.hx
│ ├── AlbumArtUnderlay.hx
│ ├── AutoCompletePrompt.hx
│ ├── BookmarkEditor.hx
│ ├── BookmarkPrompt.hx
│ ├── CanvasProgressBar.hx
│ ├── CanvasTooltip.hx
│ ├── CanvasUnderlay.hx
│ ├── ConfirmBox.hx
│ ├── DragDropManager.hx
│ ├── DragDropWidget.hx
│ ├── KeyboardCommands.hx
│ ├── Modal.hx
│ ├── PMBashTerminal.hx
│ ├── PManBrowserPage.hx
│ ├── PlayerControlsView.hx
│ ├── PlayerMessageBoard.hx
│ ├── PlayerPage.hx
│ ├── PlaylistView.hx
│ ├── PreferencesPage.hx
│ ├── ProgressBar.hx
│ ├── PromptBox.hx
│ ├── QuickOpenPrompt.hx
│ ├── SnapshotView.hx
│ ├── TimeJumpPrompt.hx
│ ├── TopViewCanvasProgressBar.hx
│ ├── TrackInfoPopup.hx
│ ├── VideoUnderlay.hx
│ ├── ctrl
│ │ ├── CastButton.hx
│ │ ├── FullscreenButton.hx
│ │ ├── IconicPlayerControlButton.hx
│ │ ├── ImagePlayerControlButton.hx
│ │ ├── NextButton.hx
│ │ ├── PlaybackButton.hx
│ │ ├── PlaybackSpeedButton.hx
│ │ ├── PlaybackSpeedOption.hx
│ │ ├── PlaybackSpeedWidget.hx
│ │ ├── PlayerControlButton.hx
│ │ ├── PlaylistButton.hx
│ │ ├── PlaylistChooserWidget.hx
│ │ ├── PreviousButton.hx
│ │ ├── RepeatButton.hx
│ │ ├── SeekBar.hx
│ │ ├── SeekBarMarkView.hx
│ │ ├── SeekBarMarkViewTooltip.hx
│ │ ├── SeekBarMarkViewTooltipGroup.hx
│ │ ├── SeekBarMarkViewTooltipPanel.hx
│ │ ├── ShuffleButton.hx
│ │ ├── ThumbPreviewBox.hx
│ │ ├── TrackAddToPlaylistButton.hx
│ │ ├── TrackControlButton.hx
│ │ ├── TrackControlsView.hx
│ │ ├── TrackEditInfoButton.hx
│ │ ├── TrackMoveToTrashButton.hx
│ │ ├── TrackShowInfoButton.hx
│ │ ├── TrackStarredButton.hx
│ │ ├── VolumeButton.hx
│ │ └── VolumeWidget.hx
│ ├── hud
│ │ ├── FPSDisplay.hx
│ │ ├── MemoryUsageDisplay.hx
│ │ ├── PlayerHUD.hx
│ │ ├── PlayerHUDItem.hx
│ │ ├── ProgressItem.hx
│ │ ├── TextualHUDItem.hx
│ │ ├── TitleItem.hx
│ │ ├── ToggleableItem.hx
│ │ └── VolumeItem.hx
│ ├── pl
│ │ ├── SearchWidget.hx
│ │ ├── TrackListView.hx
│ │ └── TrackView.hx
│ ├── statusbar
│ │ ├── CmdStatusBarItem.hx
│ │ ├── DefaultStatusBarItem.hx
│ │ ├── PlayerStatusBar.hx
│ │ └── StatusBarItem.hx
│ ├── tabs
│ │ ├── TabView.hx
│ │ └── TabViewBar.hx
│ └── views
│ │ ├── CharacterMatrixState.hx
│ │ ├── CharacterMatrixView.hx
│ │ ├── CharacterMatrixViewAccessor.hx
│ │ ├── CharacterMatrixViewBuffer.hx
│ │ ├── CharacterMatrixViewBufferCursor.hx
│ │ ├── CharacterMatrixViewBufferLine.hx
│ │ ├── CharacterMatrixViewBufferLineChar.hx
│ │ ├── CharacterMatrixViewMacros.hx
│ │ ├── CharacterMatrixViewRenderer.hx
│ │ ├── CharacterMatrixViewStyle.hx
│ │ ├── TextBoxView.hx
│ │ └── curses
│ │ ├── CellGridView.hx
│ │ └── models
│ │ ├── Cell.hx
│ │ ├── CellGrid.hx
│ │ └── CellRow.hx
└── ww
│ ├── Boss.hx
│ ├── NodeBoss.hx
│ ├── Processor.hx
│ ├── WebBoss.hx
│ ├── Worker.hx
│ ├── WorkerMacros.hx
│ ├── WorkerPacket.hx
│ ├── WorkerStream.hx
│ └── workers
│ ├── HDDProbe.hx
│ ├── HDDProbeInfo.hx
│ ├── HDDProbeStream.hx
│ ├── MediaSourceProbeStream.hx
│ └── TrackDataLoader.hx
├── res
└── trayTemplate.js
├── vex
├── .gitignore
└── vex
│ ├── core
│ ├── BaseDocument.hx
│ ├── BaseElement.hx
│ ├── Document.hx
│ ├── Element.hx
│ ├── Group.hx
│ ├── Line.hx
│ ├── Path.hx
│ ├── Polygon.hx
│ ├── Polyline.hx
│ └── Rect.hx
│ └── svg
│ ├── DocumentWidget.hx
│ ├── SVGDocument.hx
│ ├── SVGElement.hx
│ ├── SVGFilter.hx
│ ├── SVGGroup.hx
│ ├── SVGLine.hx
│ ├── SVGPath.hx
│ ├── SVGPolygon.hx
│ ├── SVGPolyline.hx
│ ├── SVGRect.hx
│ ├── SVGStyle.hx
│ └── path
│ ├── Command.hx
│ ├── Editor.hx
│ ├── Parser.hx
│ └── Printer.hx
└── workers.hxml
/.gitignore:
--------------------------------------------------------------------------------
1 |
2 | *.swp
3 | *.map
4 |
5 | src/borner
6 |
7 | dist/scripts/content*.js
8 | dist/scripts/background*.js
9 | dist/scripts/worker*.js
10 | #dist/scripts/all-libs*.js
11 | dist/scripts/server*.js
12 | dist/scripts/lib/*.js
13 | dist/styles/theme.css
14 |
15 | dist/node_modules
16 | dist/node_modules/**
17 | dist/node_modules/**/
18 | dist/releases
19 | dist/releases/**
20 | dist/releases/**/
21 | dist/installers/*
22 | dist/buildscripts/*.js
23 |
24 | dist/pack.js
25 |
26 | dist/_thumbs/
27 |
28 | dist/pack
29 |
30 | dist/styles/pman\.css
31 |
32 | dist/scripts/process\.worker\.js
33 |
34 | dist/scripts/diskprobe\.worker\.js
35 |
36 | dist/scripts/bgdb\.worker\.js
37 |
38 | src/res/test_script\.js
39 |
40 | dist/theme-example\.css
41 |
--------------------------------------------------------------------------------
/dist/assets/ffmpeg-static/ffmpeg.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/ffmpeg-static/ffmpeg.exe
--------------------------------------------------------------------------------
/dist/assets/ffmpeg-static/ffprobe.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/ffmpeg-static/ffprobe.exe
--------------------------------------------------------------------------------
/dist/assets/fonts/CinzelDecorative-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/CinzelDecorative-Regular.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/Comfortaa-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/Comfortaa-Regular.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/Dosis-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/Dosis-Light.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/Megrim.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/Megrim.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/PoiretOne-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/PoiretOne-Regular.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/Raleway-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/Raleway-Regular.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/RobotoMono-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/RobotoMono-Light.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/RobotoMono-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/RobotoMono-Regular.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/RobotoMono-Thin.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/RobotoMono-Thin.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/SourceCodePro-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/SourceCodePro-Light.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/SourceCodePro-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/SourceCodePro-Regular.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/Ubuntu-Light.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/Ubuntu-Light.ttf
--------------------------------------------------------------------------------
/dist/assets/fonts/Ubuntu-Regular.ttf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/fonts/Ubuntu-Regular.ttf
--------------------------------------------------------------------------------
/dist/assets/gray-icon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/gray-icon32.png
--------------------------------------------------------------------------------
/dist/assets/gray-icon64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/gray-icon64.png
--------------------------------------------------------------------------------
/dist/assets/icon1024.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon1024.png
--------------------------------------------------------------------------------
/dist/assets/icon128.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon128.ico
--------------------------------------------------------------------------------
/dist/assets/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon128.png
--------------------------------------------------------------------------------
/dist/assets/icon16.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon16.ico
--------------------------------------------------------------------------------
/dist/assets/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon16.png
--------------------------------------------------------------------------------
/dist/assets/icon24.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon24.ico
--------------------------------------------------------------------------------
/dist/assets/icon24.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon24.png
--------------------------------------------------------------------------------
/dist/assets/icon256.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon256.ico
--------------------------------------------------------------------------------
/dist/assets/icon256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon256.png
--------------------------------------------------------------------------------
/dist/assets/icon32.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon32.ico
--------------------------------------------------------------------------------
/dist/assets/icon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon32.png
--------------------------------------------------------------------------------
/dist/assets/icon48.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon48.ico
--------------------------------------------------------------------------------
/dist/assets/icon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon48.png
--------------------------------------------------------------------------------
/dist/assets/icon512.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon512.png
--------------------------------------------------------------------------------
/dist/assets/icon64.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon64.ico
--------------------------------------------------------------------------------
/dist/assets/icon64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/icon64.png
--------------------------------------------------------------------------------
/dist/assets/oldicons/bplayer-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/bplayer-icon.png
--------------------------------------------------------------------------------
/dist/assets/oldicons/bplayer-icon.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/bplayer-icon.xcf
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon128.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon128.ico
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon128.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon128.png
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon16.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon16.ico
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon16.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon16.png
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon256.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon256.png
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon32.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon32.ico
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon32.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon32.png
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon48.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon48.png
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon64.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon64.ico
--------------------------------------------------------------------------------
/dist/assets/oldicons/icon64.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/oldicons/icon64.png
--------------------------------------------------------------------------------
/dist/assets/pman-new-icon.png:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/pman-new-icon.png
--------------------------------------------------------------------------------
/dist/assets/pman-new-icon.xcf:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/assets/pman-new-icon.xcf
--------------------------------------------------------------------------------
/dist/assets/templates/help-page.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
PMan Help
5 |
6 |
7 |
Hotkeys
8 |
9 |
10 |
Spacebar
11 |
12 | Toggle playback
13 |
14 |
15 |
16 |
17 |
18 |
--------------------------------------------------------------------------------
/dist/assets/templates/track-item.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 | ::if data::
5 | ::if (data.views == 0)::
6 | (U)
7 | ::elseif (data.starred)::
8 | *
9 | ::end::
10 | ::end::
11 | ::title::
12 |
13 |
14 |
::if data::(::(data.meta.video.height)::p)$$duration()::end::
15 |
16 |
17 |
20 |
21 |
--------------------------------------------------------------------------------
/dist/build.sh:
--------------------------------------------------------------------------------
1 |
2 | lessc styles/pman.less >styles/pman.css
3 |
4 | coffee -c -o scripts/lib scripts/lib/
5 |
6 |
--------------------------------------------------------------------------------
/dist/buildscripts/src/files.coffee:
--------------------------------------------------------------------------------
1 |
2 | fs = require 'fs'
3 | path = require 'path'
4 |
5 | async = require 'async'
6 | _ = require 'underscore'
7 |
8 | coffee = require 'coffee-script'
9 | less = require 'less'
10 | ugly = require 'ugly'
11 |
12 | tools = require './tools'
13 | {Build,Builds,Task,Batch} = tools
14 |
15 | exports['concat'] = concat = (inputs, output, callback) ->
16 | async.map inputs, fs.readFile, (err, buffs) ->
17 | sum = ''
18 | sum += b for b in buffs
19 | sum = Buffer.from sum
20 | fs.writeFile(output, sum, callback)
21 |
22 |
23 |
--------------------------------------------------------------------------------
/dist/buildscripts/src/installer.coffee:
--------------------------------------------------------------------------------
1 | fs = require 'fs'
2 | path = require 'path'
3 |
4 | async = require 'async'
5 | _ = require 'underscore'
6 |
7 | tools = require './tools'
8 |
9 | deb_installer = require 'electron-installer-debian'
10 | win_installer = require 'electron-installer-windows'
11 | installer_funcs = {
12 | win32: win_installer
13 | linux: deb_installer
14 | }
15 |
16 | class Installer extends tools.Task
17 | constructor: (@platform, @arch='x64') ->
18 | super()
19 | @method = switch (@platform.toLowerCase())
20 | when 'win32' then win_installer
21 | when 'linux' then deb_installer
22 | else null
23 | @options = {
24 | src: tools.scriptdir('releases', "pman-#{@platform}-#{@arch}")
25 | dest: tools.scriptdir('installers')
26 | arch: @arch
27 | }
28 | @promptMessage = "create installer for #{@platform}-#{@arch}"
29 | @promptDefault = no
30 |
31 | perform: (callback) ->
32 | @method(@options, callback)
33 |
34 | exports['InstAller'] = class InstAller extends tools.Batch
35 | constructor: ->
36 | super()
37 | @tasks = [
38 | new Installer( 'linux' )
39 | new Installer( 'win32' )
40 | ]
41 |
42 | confirm: (f) ->
43 | _.defer(_.partial(f, null, yes))
44 |
--------------------------------------------------------------------------------
/dist/buildscripts/src/pack.coffee:
--------------------------------------------------------------------------------
1 |
2 | fs = require 'fs'
3 | path = require 'path'
4 |
5 | async = require 'async'
6 | _ = require 'underscore'
7 |
8 | tools = require './tools'
9 | standalone = require './standalone'
10 | {Pack, PackAll} = require './standalone'
11 | {Installer,InstAller} = require './installer'
12 |
13 | module.exports = pack = ( argv ) ->
14 | packall = new PackAll()
15 | install = new InstAller()
16 | packall.execute ->
17 | install.execute ->
18 | console.log " -- DONE -- "
19 |
20 | do ->
21 | argv = process.argv[2..]
22 | pack( argv )
23 |
--------------------------------------------------------------------------------
/dist/pack.bat:
--------------------------------------------------------------------------------
1 |
2 | node pack %*
3 |
--------------------------------------------------------------------------------
/dist/package.sh:
--------------------------------------------------------------------------------
1 |
2 | coffee -c -o buildscripts/ buildscripts/src/;
3 |
4 | #cd ../src/;
5 | #haxe -D release build.hxml;
6 | #cd ../dist/;
7 |
8 | node buildscripts/pack.js $@;
9 |
10 |
--------------------------------------------------------------------------------
/dist/pages/preferences.html:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
PMan Preferences
5 |
6 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
33 |
--------------------------------------------------------------------------------
/dist/prefixer.py:
--------------------------------------------------------------------------------
1 |
2 | import sys, os
3 | path = os.path
4 |
5 | def read( fn ):
6 | f = open(fn, 'r', 1)
7 | c = f.read()
8 | f.close()
9 | return c
10 |
11 | def write(fn, d):
12 | f = open(fn, 'w', 1)
13 | f.write( d )
14 | f.close()
15 |
16 | def main():
17 |
18 | code = read('./pack')
19 | code = ('#!/usr/bin/env node\n\n' + code)
20 | write('./pack', code)
21 |
22 | if __name__ == "__main__":
23 | main()
24 |
--------------------------------------------------------------------------------
/dist/styles/fonts.css:
--------------------------------------------------------------------------------
1 |
2 | @font-face {
3 | font-family: Ubuntu;
4 | src: url('../res/fonts/Ubuntu-Regular.ttf');
5 | }
6 |
7 | @font-face {
8 | font-family: UbuntuLight;
9 | src: url('../res/fonts/Ubuntu-Light.ttf');
10 | }
11 |
--------------------------------------------------------------------------------
/dist/styles/theme.less:
--------------------------------------------------------------------------------
1 |
2 | /*
3 | Color Scheme
4 | ---
5 | I'd eventually love to somehow make this changeable programmatically
6 | */
7 | @color_bg: #444444;
8 | @color_fg: orange;
9 |
10 | @primary: rgb(34, 34, 34);
11 | @secondary: rgb(242, 122, 72);
12 | @tertiary: rgb(231, 231, 231);
13 |
14 |
--------------------------------------------------------------------------------
/dist/styles/utils.less:
--------------------------------------------------------------------------------
1 |
2 | @import "theme";
3 |
4 | .block-center {
5 | display: block;
6 | margin-left: auto;
7 | margin-right: auto;
8 | }
9 |
10 | .unselectable {
11 | -webkit-user-select: none; /* Chrome/Safari */
12 | -moz-user-select: none; /* Firefox */
13 | -ms-user-select: none; /* IE10+ */
14 |
15 | /* Rules below not implemented in browsers yet */
16 | -o-user-select: none;
17 | user-select: none;
18 | }
19 |
--------------------------------------------------------------------------------
/dist/styles/widgets/gallery.less:
--------------------------------------------------------------------------------
1 |
2 | @import "../theme";
3 | @import "../utils";
4 |
5 | .pm-header {
6 | position: fixed;
7 | z-index: 12;
8 | left: 0px;
9 | top: 0px;
10 | width: 100%;
11 | height: 50px;
12 | background-color: lighten(@primary, 10%);
13 | border-bottom: solid darken(@primary, 13%) 2px;
14 | }
15 |
16 | .pm-search {
17 | // container for the searchbox form inputs
18 | .inputs {
19 | // the text input itself
20 | input[type='text'] {
21 | color: darken(@primary, 35%);
22 | height: auto;
23 | font-size: 9pt;
24 | padding: 6px;
25 | margin-top: 7px;
26 | margin-left: 8px;
27 | }
28 | div.input-group-button {
29 | input[type=button] {
30 | transform: scale(0.709);
31 | background-color: @secondary;
32 | }
33 | }
34 | }
35 |
36 | // container for the autocompletion suggestions
37 | .suggestions {
38 | display: none;
39 | }
40 | }
41 |
42 | .pm-container {
43 | width: 100vw;
44 | height: 100%;
45 | background-color: @primary;
46 | position: absolute;
47 | top: 50px;
48 | left: 0px;
49 | }
--------------------------------------------------------------------------------
/dist/styles/widgets/misc.less:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/DavisDevelopment/pman/609b3dcbfeefcdde477447a162b434d20f565be4/dist/styles/widgets/misc.less
--------------------------------------------------------------------------------
/src/assets/icons/compile.py:
--------------------------------------------------------------------------------
1 | #!/usr/bin/env python3
2 |
3 | import os, sys, json
4 | import xml.etree.ElementTree as ET
5 | path = os.path
6 |
7 | cwd = os.getcwd()
8 | svgPath = path.join(cwd, 'svg')
9 |
10 | def get(name):
11 | f = open(name, 'r', 1)
12 | r = f.read()
13 | f.close()
14 | return r
15 |
16 | def put(name, data):
17 | f = open(name, 'w', 1)
18 | f.write( data )
19 | f.close()
20 |
21 | def getAllIconPaths():
22 | l = os.listdir( svgPath )
23 | return [path.join(svgPath, name) for name in l]
24 |
25 | def iconPath( p ):
26 | tree = ET.parse( p )
27 | root = tree.getroot()
28 | return root.find('{http://www.w3.org/2000/svg}path')
29 |
30 | def parse():
31 | ipaths = getAllIconPaths()
32 | data = {}
33 | for n in ipaths:
34 | key = path.splitext(path.basename( n ))[0]
35 | print( key )
36 | p = iconPath( n )
37 | value = p.get( 'd' ).strip()
38 | data[key] = value
39 | str_data = json.dumps(data, indent=3)
40 | put('icon_data.json', str_data)
41 | print('Done')
42 |
43 | parse()
44 |
--------------------------------------------------------------------------------
/src/assets/icons/makefile:
--------------------------------------------------------------------------------
1 |
2 | all:
3 | python3 compile.py
4 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/back.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/bluetooth.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/cast.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/clear.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/close.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/code.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/collapse.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/console.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/delete.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/edit.box.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/edit.minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/edit.plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/edit.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/email.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/expand.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/folder.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/heart.hollow.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/heart.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/image.gallery.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/image.multiple.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/image.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/info.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/left.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/lines.horizontal.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/list.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/minus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/music.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/next.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/pause.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/play.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/plus.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/previous.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/refresh.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/repeat.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/ribbon.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/right.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/save.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/selection-collapse.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/selection-expand.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/shuffle.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/sort.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/sound-muted.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/sound0.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/sound1.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/sound2.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/star.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/tag.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/assets/icons/svg/video.svg:
--------------------------------------------------------------------------------
1 |
2 |
3 |
6 |
--------------------------------------------------------------------------------
/src/build.hxml:
--------------------------------------------------------------------------------
1 |
2 | -cp tannus/
3 | -cp gryffin/
4 | -cp foundation/src/
5 | -cp crayon/
6 | -cp ida/
7 | -cp vex/
8 | -cp hxpress/src/
9 | -cp hscript/
10 | -cp hxelectron/src/
11 | -cp edis/
12 |
13 | -lib slambda
14 | -lib actuate
15 | -lib format
16 | -lib hxnodejs
17 | -lib haxe-crypto
18 | -lib hxjs-fengari
19 |
20 | -D tannus
21 | -D node
22 | -D electron
23 | -D gryffin
24 | -D ida
25 | -D vex
26 | -D foundation
27 | -D eval-stack
28 | -D underscore
29 |
30 | --each
31 |
32 | -main BPlayerMain
33 | #-D debug
34 | -D renderer_process
35 | -D js-es=6
36 | -D js-enums-as-objects
37 | -D debug
38 | -js ../dist/scripts/content.js
39 |
40 | --next
41 |
42 | -main Background
43 | -D main_process
44 | -js ../dist/scripts/background.js
45 |
46 | --next
47 |
--------------------------------------------------------------------------------
/src/crayon/crayon/Application.hx:
--------------------------------------------------------------------------------
1 | package crayon;
2 |
3 | import foundation.*;
4 | import tannus.html.Element;
5 | import tannus.html.Win;
6 | import tannus.ds.*;
7 | import tannus.io.*;
8 |
9 | using StringTools;
10 | using tannus.ds.StringUtils;
11 | using Lambda;
12 | using tannus.ds.ArrayTools;
13 | using tannus.math.TMath;
14 | using tannus.macro.MacroTools;
15 |
16 | class Application {
17 | /* Constrcutor Function */
18 | public function new():Void {
19 | win = Win.current;
20 | self = Obj.fromDynamic( this );
21 | var rtitle = Ptr.create( win.document.title );
22 | self.defineProperty('title', rtitle);
23 | body = new Body( this );
24 | }
25 |
26 | /* === Instance Methods === */
27 |
28 | /**
29 | * Start [this] Application
30 | */
31 | public function start():Void {
32 | null;
33 | }
34 |
35 | /* === Instance Fields === */
36 |
37 | public var title : String;
38 | public var win : Win;
39 | public var self : Obj;
40 | public var body : Body;
41 | }
42 |
--------------------------------------------------------------------------------
/src/electron/MenuTemplate.hx:
--------------------------------------------------------------------------------
1 | package electron;
2 |
3 | import electron.ext.Menu;
4 | import electron.ext.MenuItem;
5 |
6 | //import electron.main.Menu;
7 | //import electron.main.MenuItem;
8 |
9 | using StringTools;
10 | using tannus.ds.StringUtils;
11 | using Lambda;
12 | using tannus.ds.ArrayTools;
13 | using Slambda;
14 |
15 | @:forward
16 | abstract MenuTemplate (Array) from Array to Array {
17 | public inline function new(?l : Array) {
18 | this = (l != null ? l : []);
19 | //new MenuItem()
20 | }
21 |
22 | @:to
23 | public inline function toMenu():Menu {
24 | return Menu.buildFromTemplate(cast this);
25 | }
26 | }
27 |
--------------------------------------------------------------------------------
/src/electron/Tools.hx:
--------------------------------------------------------------------------------
1 | package electron;
2 |
3 |
4 | /**
5 | * class full of utility methods for electron
6 | */
7 | class Tools {
8 | /**
9 | * queue [action] for invokation immediately after the current call-stack
10 | */
11 | public static inline function defer(action : Void -> Void):Void {
12 | (untyped __js__( 'process.nextTick' )( action ));
13 | }
14 |
15 | /* === Class Fields === */
16 |
17 | public static var now(get, never):Float;
18 | private static inline function get_now():Float {
19 | return Date.now().getTime();
20 | }
21 | }
22 |
--------------------------------------------------------------------------------
/src/electron/ext/App.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | import haxe.Constraints.Function;
4 |
5 | import electron.ext.ExtApp;
6 | import electron.ext.ExtApp in A;
7 |
8 | import tannus.sys.Path;
9 |
10 | typedef App = ExtApp;
11 |
12 | class OldApp {
13 | /* === Class Methods === */
14 |
15 | /**
16 | * wait for [this] App to be ready
17 | */
18 | public static inline function onReady(callback : Void->Void):Void {
19 | on('ready', callback);
20 | }
21 |
22 | public static inline function quit():Void A.quit();
23 | public static inline function exit(?code : Int):Void A.exit(code);
24 | public static inline function relaunch(?options : ExtAppRelaunchOptions):Void A.relaunch( options );
25 | public static inline function isReady():Bool return A.isReady();
26 | public static inline function focus():Void A.focus();
27 |
28 | public static inline function getAppPath():Path return new Path(A.getAppPath());
29 | public static inline function getPath(name : ExtAppNamedPath):Path return new Path(A.getPath( name ));
30 |
31 | public static inline function getVersion():String return A.getVersion();
32 | public static inline function getName():String return A.getName();
33 | public static inline function on(name:String, f:Function):Void A.on(name, f);
34 | }
35 |
--------------------------------------------------------------------------------
/src/electron/ext/Clipboard.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | @:jsRequire('electron', 'clipboard')
4 | extern class Clipboard {
5 | static function readText(?type : String):String;
6 | static function writeText(text:String, ?type:String):Void;
7 | static function readImage(?type : String):Null;
8 | static function writeImage(image:NativeImage, ?type:String):Void;
9 | static function availableFormats(?type : String):Array;
10 | static function read(data:String, ?type:String):Null;
11 | static function clear(?type : String):Void;
12 | }
13 |
--------------------------------------------------------------------------------
/src/electron/ext/Cookies.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | import haxe.extern.*;
4 |
5 | import tannus.node.EventEmitter;
6 | import tannus.node.Buffer;
7 |
8 | extern class Cookies {
9 | function get(filter:CookiesGetFilter, callback:Null->Array->Void):Void;
10 | function set(details:CookiesSetDetails, callback:Null->Void):Void;
11 | function remove(url:String, name:String, done:Void->Void):Void;
12 | }
13 |
14 | typedef CookiesSetDetails = {
15 | url : String,
16 | ?name : String,
17 | ?value : String,
18 | ?domain : String,
19 | ?path : String,
20 | ?secure : Bool,
21 | ?httpOnly : Bool,
22 | ?expirationDate : Float
23 | };
24 |
25 | typedef CookiesGetFilter = {
26 | ?url : String,
27 | ?name : String,
28 | ?domain : String,
29 | ?path : String,
30 | ?secure : Bool,
31 | ?session : Bool
32 | };
33 |
--------------------------------------------------------------------------------
/src/electron/ext/Dialog.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | #if renderer_process
4 | @:jsRequire('electron', 'remote.dialog')
5 | #elseif main_process
6 | @:jsRequire('electron', 'dialog')
7 | #end
8 | extern class Dialog {
9 | @:overload(function(options:FileOpenOptions, callback:Array->Void):Void {})
10 | @:overload(function(win:BrowserWindow, options:FileOpenOptions, callback:Array->Void):Void {})
11 | static function showOpenDialog(callback:Array->Void):Void;
12 |
13 | @:overload(function(options:FileDialogOptions, callback:String->Void):Void {})
14 | static function showSaveDialog(callback : String -> Void):Void;
15 | }
16 |
17 | typedef FileDialogOptions = {
18 | ?title:String,
19 | ?defaultPath:String,
20 | ?buttonLabel:String,
21 | ?filters:Array
22 | };
23 | typedef FileOpenOptions = {
24 | >FileDialogOptions,
25 | ?properties:Array
26 | };
27 |
28 | @:enum
29 | abstract FileDialogProperty (String) from String {
30 | var OpenFile = 'openFile';
31 | var OpenDirectory = 'openDirectory';
32 | var MultiSelections = 'multiSelections';
33 | var CreateDirectory = 'createDirectory';
34 | var ShowHiddenFiles = 'showHiddenFiles';
35 | }
36 |
--------------------------------------------------------------------------------
/src/electron/ext/ExtNativeImage.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | import tannus.node.Buffer;
4 |
5 | #if main_process
6 | @:jsRequire('electron', 'nativeImage')
7 | #elseif renderer_process
8 | @:jsRequire('electron', 'remote.nativeImage')
9 | #end
10 | extern class ExtNativeImage {
11 | public function toPNG():Buffer;
12 | public function toJPEG(quality : Int):Buffer;
13 | public function toBitmap():Buffer;
14 | public function toDataURL():String;
15 | public function getBitmap():Buffer;
16 | public function isEmpty():Bool;
17 | public function getSize():{width:Int, height:Int};
18 | public function setTemplateImage(v : Bool):Void;
19 | public function isTemplateImage():Bool;
20 | public function crop(rect : T):ExtNativeImage;
21 | public function getAspectRatio():Float;
22 |
23 | public static function createEmpty():ExtNativeImage;
24 | public static function createFromPath(path : String):ExtNativeImage;
25 | public static function createFromBuffer(buffer:Buffer, ?options:CfbOptions):ExtNativeImage;
26 | public static function createFromDataURL(url : String):ExtNativeImage;
27 | }
28 |
29 | typedef CfbOptions = {
30 | ?width : Int,
31 | ?height : Int,
32 | ?scaleFactor : Float
33 | };
34 |
35 | private typedef RectLike = {
36 | x : Int,
37 | y : Int,
38 | width : Int,
39 | height : Int
40 | };
41 |
--------------------------------------------------------------------------------
/src/electron/ext/GlobalShortcut.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | #if main_process
4 | @:jsRequire('electron', 'globalShortcut')
5 | #elseif renderer_process
6 | @:jsRequire('electron', 'remote.globalShortcut')
7 | #end
8 | extern class GlobalShortcut {
9 | static function register(accelerator:String, callback:Void->Void):Void;
10 | static function isRegistered(accelerator : String):Bool;
11 | static function unregister(accelerator : String):Void;
12 | static function unregisterAll():Void;
13 | }
14 |
--------------------------------------------------------------------------------
/src/electron/ext/IpcMain.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | import haxe.extern.Rest;
4 | import haxe.Constraints.Function;
5 |
6 | @:jsRequire('electron', 'ipcMain')
7 | extern class IpcMain {
8 | public static function on(channel:String, callback:IpcMainEvent->Array->Void):Void;
9 | public static function once(channel:String, callback:IpcMainEvent->Array->Void):Void;
10 | //public static function send(channel:String, data:Rest):Void;
11 | public static function removeListener(channel:String, listener:Function):Void;
12 | public static function removeAllListeners(?channel : String):Void;
13 | }
14 |
15 | typedef IpcMainEvent = {
16 | sender : WebContents,
17 | returnValue : Null
18 | };
19 |
--------------------------------------------------------------------------------
/src/electron/ext/IpcRenderer.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | import haxe.Constraints.Function;
4 |
5 | @:jsRequire('electron', 'ipcRenderer')
6 | extern class IpcRenderer {
7 | public static function on(channel:String, callback:IpcRendererEvent->Array->Void):Void;
8 | public static function once(channel:String, callback:IpcRendererEvent->Array->Void):Void;
9 |
10 | public static function removeListener(channel:String, listener:Function):Void;
11 | public static function removeAllListeners(?channel : String):Void;
12 |
13 | public static function send(channel:String, data:Array):Void;
14 | public static function sendToHost(channel:String, data:Array):Void;
15 | public static function sendSync(channel:String, data:Array):T;
16 | }
17 |
18 | typedef IpcRendererEvent = {
19 | sender : IpcRendererMessageSender
20 | };
21 |
22 | extern class IpcRendererMessageSender {
23 | public function send(channel:String, data:Array):Void;
24 | public function sendSync(channel:String, data:Array):T;
25 | public function sendTo(webContentsId:Int, channel:String, data:Array):Void;
26 | public function sendToAll(webContentsId:Int, channel:String, data:Array):Void;
27 | }
28 |
--------------------------------------------------------------------------------
/src/electron/ext/Menu.hx:
--------------------------------------------------------------------------------
1 | package electron.ext;
2 |
3 | import js.html.Window;
4 |
5 | import electron.ext.MenuItem;
6 |
7 | #if main_process
8 | @:jsRequire('electron', 'Menu')
9 | #elseif renderer_process
10 | @:jsRequire('electron', 'remote.Menu')
11 | #end
12 | extern class Menu {
13 | /* === Instance Fields === */
14 |
15 | public var items : Array