Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found

Target

Select target project
  • videolan/vlc
  • chouquette/vlc
  • bakiewicz.marek122/vlc
  • devnexen/vlc
  • rohanrajpal/vlc
  • blurrrb/vlc
  • gsoc/gsoc2019/darkapex/vlc
  • b1ue/vlc
  • fkuehne/vlc
  • magsoft/vlc
  • chub/vlc
  • cramiro9/vlc
  • robUx4/vlc
  • rom1v/vlc
  • akshayaky/vlc
  • tmk907/vlc
  • akymaster/vlc
  • govind.sharma/vlc
  • psilokos/vlc
  • xjbeta/vlc
  • jahan/vlc
  • 1480c1/vlc
  • amanchande/vlc
  • aaqib/vlc
  • rist/vlc
  • apol/vlc
  • mindfreeze/vlc
  • alexandre-janniaux/vlc
  • sandsmark/vlc
  • jagannatharjun/vlc
  • gsoc/gsoc2020/matiaslgonzalez/vlc
  • gsoc/gsoc2020/jagannatharjun/vlc
  • mstorsjo/vlc
  • gsoc/gsoc2020/vedenta/vlc
  • gsoc/gsoc2020/arnav-ishaan/vlc
  • gsoc/gsoc2020/andreduong/vlc
  • fuzun/vlc
  • gsoc/gsoc2020/vatsin/vlc
  • gsoc/gsoc2020/sagid/vlc
  • yaron/vlc
  • Phoenix/vlc
  • Garf/vlc
  • ePiratWorkarounds/vlc
  • tguillem/vlc
  • jnqnfe/vlc
  • mdc/vlc
  • Vedaa/vlc
  • rasa/vlc
  • quink/vlc
  • yealo/vlc
  • aleksey_ak/vlc
  • ePirat/vlc
  • ilya.yanok/vlc
  • asenat/vlc
  • m/vlc
  • bunjee/vlc
  • BLumia/vlc
  • sagudev/vlc
  • hamedmonji30/vlc
  • nullgemm/vlc
  • DivyamAhuja/vlc
  • thesamesam/vlc
  • dag7/vlc
  • snehil101/vlc
  • haasn/vlc
  • jbk/vlc
  • ValZapod/vlc
  • mfkl/vlc
  • WangChuan/vlc
  • core1024/vlc
  • GhostVaibhav/vlc
  • dfuhrmann/vlc
  • davide.prade/vlc
  • tmatth/vlc
  • Courmisch/vlc
  • zouya/vlc
  • hpi/vlc
  • EwoutH/vlc
  • aleung27/vlc
  • hengwu0/vlc
  • saladin/vlc
  • ashuio/vlc
  • richselwood/vlc
  • verma16Ayush/vlc
  • chemicalflash/vlc
  • PoignardAzur/vlc
  • huangjieNT/vlc
  • Blake-Haydon/vlc
  • AnuthaDev/vlc
  • gsoc/gsoc2021/mpd/vlc
  • nicolas_lequec/vlc
  • sambassaly/vlc
  • thresh/vlc
  • bonniegong/vlc
  • myaashish/vlc
  • stavros.vagionitis/vlc
  • ileoo/vlc
  • louis-santucci/vlc
  • cchristiansen/vlc
  • sabyasachi07/vlc
  • AbduAmeen/vlc
  • ashishb0410/vlc
  • urbanhusky/vlc
  • davidepietrasanta/vlc
  • riksleutelstad/vlc
  • jeremyVignelles/vlc
  • komh/vlc
  • iamjithinjohn/vlc
  • JohannesKauffmann/vlc2
  • kunglao/vlc
  • natzberg/vlc
  • jill/vlc
  • cwendling/vlc
  • adufou/vlc
  • ErwanAirone/vlc
  • HasinduDilshan10/vlc
  • vagrantc/vlc
  • rafiv/macos-bigsur-icon
  • Aymeriic/vlc
  • saranshg20/vlc
  • metzlove24/vlc
  • linkfanel/vlc
  • Ds886/vlc
  • metehan-arslan/vlc
  • Skantes/vlc
  • kgsandundananjaya96/vlc
  • mitchcapper/vlc
  • advaitgupta/vlc
  • StefanBruens/vlc
  • ratajs/vlc
  • T.M.F.B.3761/vlc
  • m222059/vlc
  • casemerrick/vlc
  • joshuaword2alt/vlc
  • sjwaddy/vlc
  • dima/vlc
  • Ybalrid/vlc
  • umxprime/vlc
  • eschmidt/vlc
  • vannieuwenhuysenmichelle/vlc
  • badcf00d/vlc
  • wesinator/vlc
  • louis/vlc
  • xqq/vlc
  • EmperorYP7/vlc
  • NicoLiam/vlc
  • loveleen/vlc
  • rofferom/vlc
  • rbultje/vlc
  • TheUnamed/vlc
  • pratiksharma341/vlc
  • Saurab17/vlc
  • purist.coder/vlc
  • Shuicheng/vlc
  • mdrrubel292/vlc
  • silverbleu00/vlc
  • metif12/vlc
  • asher-m/vlc
  • jeffk/vlc
  • Brandonbr1/vlc
  • beautyyuyanli/vlc
  • rego21/vlc
  • muyangren907/vlc
  • collectionbylawrencejason/vlc
  • evelez/vlc
  • GSMgeeth/vlc
  • Oneric/vlc
  • TJ5/vlc
  • XuanTung95/vlc
  • darrenjenny21/vlc
  • Trenly/vlc
  • RockyTDR/vlc
  • mjakubowski/vlc
  • caprica/vlc
  • ForteFrankie/vlc
  • seannamiller19/vlc
  • junlon2006/vlc
  • kiwiren6666/vlc
  • iuseiphonexs/vlc
  • fenngtun/vlc
  • Rajdutt999/vlc
  • typx/vlc
  • leon.vitanos/vlc
  • robertogarci0938/vlc
  • gsoc/gsoc2022/luc65r/vlc-mpd
  • skeller/vlc
  • MCJack123/vlc
  • luc65r/vlc-mpd
  • popov895/vlc
  • claucambra/vlc
  • brad/vlc
  • matthewmurua88/vlc
  • Tomas8874/vlc
  • philenotfound/vlc
  • makita-do3/vlc
  • LZXCorp/vlc
  • mar0x/vlc
  • senojetkennedy0102/vlc
  • shaneb243/vlc
  • ahmadbader/vlc
  • rajduttcse26/vlc-audio-filters
  • Juniorzito8415/vlc
  • achernyakov/vlc
  • lucasjetgroup/vlc
  • pupdoggy666/vlc
  • gmde9363/vlc
  • alexnwayne/vlc
  • bahareebrahimi781/vlc
  • hamad633666/vlc
  • umghof3112/vlc
  • joe0199771874/vlc
  • Octocats66666666/vlc
  • jjm_223/vlc
  • btech10110.19/vlc
  • sunnykfc028/vlc-audio-filters
  • loic/vlc
  • nguyenminhducmx1/vlc
  • JanekKrueger/vlc
  • bstubbington2/vlc
  • rcombs/vlc
  • Ordissimo/vlc
  • king7532/vlc
  • noobsauce101/vlc
  • schong0525/vlc
  • myQwil/vlc
  • apisbg91/vlc
  • geeboy0101017/vlc
  • kim.faughey/vlc
  • nurupo/vlc
  • yyusea/vlc
  • 0711235879.khco/vlc
  • ialo/vlc
  • iloveyeye2/vlc
  • gdtdftdqtd/vlc
  • leandroconsiglio/vlc
  • AndyHTML2012/vlc
  • ncz/vlc
  • lucenticus/vlc
  • knr1931/vlc
  • kjoonlee/vlc
  • chandrakant100/vlc-qt
  • johge42/vlc
  • polter/vlc
  • hexchain/vlc
  • Tushwrld/vlc
  • mztea928/vlc
  • jbelloncastro/vlc
  • alvinhochun/vlc
  • ghostpiratecrow/vlc
  • ujjwaltwitx/vlc
  • alexsonarin06/vlc
  • adrianbon76/vlc
  • altsod/vlc
  • damien.lucas44/vlc
  • dmytrivtaisa/vlc
  • utk202/vlc
  • aaxhrj/vlc
  • thomas.hermes/vlc
  • structurenewworldorder/vlc
  • slomo/vlc
  • wantlamy/vlc
  • musc.o3cminc/vlc
  • thebarshablog/vlc
  • kerrick/vlc
  • kratos142518/vlc
  • leogps/vlc
  • vacantron/vlc
  • luna_koly/vlc
  • Ratio2/vlc
  • anuoshemohammad/vlc
  • apsun/vlc
  • aaa1115910/vlc
  • alimotmoyo/vlc
  • Ambossmann/vlc
  • Sam-LearnsToCode/vlc
  • Chilledheart/vlc
  • Labnann/vlc
  • ktcoooot1/vlc
  • mohit-marathe/vlc
  • johnddx/vlc
  • manstabuk/vlc
  • Omar-ahmed314/vlc
  • vineethkm/vlc
  • 9Enemi86/vlc
  • radoslav.m.panteleev/vlc
  • ashishami2002/vlc
  • Corbax/vlc
  • firnasahmed/vlc
  • pelayarmalam4/vlc
  • c0ff330k/vlc
  • shikhindahikar/vlc
  • l342723951/vlc
  • christianschwandner/vlc
  • douniwan5788/vlc
  • 7damian7/vlc
  • ferdnyc/vlc
  • f.ales1/vlc
  • pandagby/vlc
  • BaaBaa/vlc
  • jewe37/vlc
  • w00drow/vlc
  • russelltg/vlc
  • ironicallygod/vlc
  • soumyaDghosh/vlc
  • linzihao1999/vlc
  • deyayush6/vlc
  • mibi88/vlc
  • newabdallah10/vlc
  • jhorbincolombia/vlc
  • rimvihaqueshupto/vlc
  • andrewkhon98/vlc
  • fab78/vlc
  • lapaz17/vlc
  • amanna13/vlc
  • mdakram28/vlc
  • 07jw1980/vlc
  • sohamgupta/vlc
  • Eson-Jia1/vlc
  • Sumou/vlc
  • vikram-kangotra/vlc
  • chalice191/vlc
  • olivercalder/vlc
  • aaasg4001/vlc
  • zipdox/vlc
  • kwizart/vlc
  • Dragon-S/vlc
  • jdemeule/vlc
  • gabriel_lt/vlc
  • locutusofborg/vlc
  • sammirata/vlc-librist
  • another/vlc
  • Benjamin_Loison/vlc
  • ahmedmoselhi/vlc
  • petergaal/vlc
  • huynhsontung/vlc
  • dariusmihut/vlc
  • tvermaashutosh/vlc
  • buti/vlc
  • Niram7777/vlc
  • rohan-here/vlc
  • balaji-sivasakthi/vlc
  • rlindner81/vlc
  • Kakadus/vlc
  • djain/vlc
  • ABBurmeister/vlc
  • craighuggins/vlc
  • orbea/vlc
  • maxos/vlc
  • aakarshmj/vlc
  • kblaschke/vlc
  • ankitm/vlc
  • advait-0/vlc
  • mohak2003/vlc
  • yselkowitz/vlc
  • AZM999/vlc-azm
  • andrey.turkin/vlc
  • Disha-Baghel/vlc
  • nowrep/vlc
  • Apeng/vlc
  • Choucroute_melba/vlc
  • autra/vlc
  • eclipseo/vlc
  • fhuber/vlc
  • olafhering/vlc
  • sdasda7777/vlc
  • 1div0/vlc
  • skosnits/vlc-extended-playlist-support
  • dnicolson/vlc
  • Timshel/vlc
  • octopols/vlc
  • MangalK/vlc
  • nima64/vlc
  • misawai/vlc
  • Alexander-Wilms/vlc
  • Maxime2/vlc-fork-for-visualizer
  • ww/vlc
  • jeske/vlc
  • sgross-emlix/vlc
  • morenonatural/vlc
  • freakingLovesVLC/vlc
  • borisgolovnev/vlc
  • mpromonet/vlc
  • diogo.simao-marques/vlc
  • masstock/vlc
  • pratikpatel8982/vlc
  • hugok79/vlc
  • longervision/vlc
  • abhiudaysurya/vlc
  • rishabhgarg/vlc
  • tumic/vlc
  • cart/vlc
  • shubham442/vlc
  • Aditya692005/vlc
  • sammirata/vlc4
  • syrykh/vlc
  • Vvorcun/macos-new-icon
  • AyaanshC/vlc
  • nasso/vlc
  • Quark/vlc
  • sebastinas/vlc
  • rhstone/vlc
  • talregev/vlc
  • Managor/vlc
403 results
Show changes
Commits on Source (7)
...@@ -8,7 +8,7 @@ ...@@ -8,7 +8,7 @@
<customObject id="-2" userLabel="File's Owner" customClass="VLCLibraryInformationPanel"> <customObject id="-2" userLabel="File's Owner" customClass="VLCLibraryInformationPanel">
<connections> <connections>
<outlet property="imageView" destination="N4h-LP-IRY" id="Ned-Ju-hyu"/> <outlet property="imageView" destination="N4h-LP-IRY" id="Ned-Ju-hyu"/>
<outlet property="textView" destination="BG5-o2-dKa" id="Q6T-Ol-Gdc"/> <outlet property="textField" destination="eeq-7b-IbI" id="tex-TF-135"/>
<outlet property="window" destination="oPi-wT-0nK" id="ODs-Hv-85I"/> <outlet property="window" destination="oPi-wT-0nK" id="ODs-Hv-85I"/>
</connections> </connections>
</customObject> </customObject>
...@@ -21,60 +21,82 @@ ...@@ -21,60 +21,82 @@
<rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/> <rect key="screenRect" x="0.0" y="0.0" width="1920" height="1055"/>
<value key="minSize" type="size" width="386" height="227"/> <value key="minSize" type="size" width="386" height="227"/>
<view key="contentView" id="Nfs-rF-cUN"> <view key="contentView" id="Nfs-rF-cUN">
<rect key="frame" x="0.0" y="0.0" width="512" height="640"/> <rect key="frame" x="0.0" y="0.0" width="544" height="640"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="N4h-LP-IRY"> <scrollView horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" usesPredominantAxisScrolling="NO" translatesAutoresizingMaskIntoConstraints="NO" id="JzV-HY-whQ">
<rect key="frame" x="20" y="20" width="472" height="295"/> <rect key="frame" x="0.0" y="0.0" width="512" height="640"/>
<constraints> <clipView key="contentView" id="Bl4-q7-swx">
<constraint firstAttribute="width" secondItem="N4h-LP-IRY" secondAttribute="height" multiplier="16:10" id="bqe-XE-yWC"/> <rect key="frame" x="1" y="1" width="495" height="623"/>
</constraints>
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" id="8o3-U6-XgQ"/>
</imageView>
<scrollView borderType="none" horizontalLineScroll="10" horizontalPageScroll="10" verticalLineScroll="10" verticalPageScroll="10" hasHorizontalScroller="NO" translatesAutoresizingMaskIntoConstraints="NO" id="qS0-eY-moI">
<rect key="frame" x="20" y="335" width="472" height="285"/>
<clipView key="contentView" drawsBackground="NO" id="a0y-wC-gCb">
<rect key="frame" x="0.0" y="0.0" width="457" height="285"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<subviews> <subviews>
<textView editable="NO" drawsBackground="NO" importsGraphics="NO" richText="NO" verticallyResizable="YES" spellingCorrection="YES" smartInsertDelete="YES" id="BG5-o2-dKa"> <view translatesAutoresizingMaskIntoConstraints="NO" id="bU3-vL-IQb">
<rect key="frame" x="0.0" y="0.0" width="457" height="285"/> <rect key="frame" x="15" y="194" width="480" height="429"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/> <subviews>
<color key="textColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> <stackView distribution="fill" orientation="vertical" alignment="leading" horizontalStackHuggingPriority="249.99998474121094" verticalStackHuggingPriority="249.99998474121094" detachesHiddenViews="YES" translatesAutoresizingMaskIntoConstraints="NO" id="Wv4-dn-5EA">
<color key="backgroundColor" red="0.89527153969999995" green="0.9043967128" blue="0.92996197940000003" alpha="1" colorSpace="custom" customColorSpace="sRGB"/> <rect key="frame" x="0.0" y="0.0" width="480" height="429"/>
<size key="minSize" width="457" height="285"/> <subviews>
<size key="maxSize" width="555" height="10000000"/> <textField verticalHuggingPriority="750" horizontalCompressionResistancePriority="250" translatesAutoresizingMaskIntoConstraints="NO" id="eeq-7b-IbI">
<attributedString key="textStorage"> <rect key="frame" x="0.0" y="408" width="495" height="21"/>
<fragment content="Media info"> <textFieldCell key="cell" selectable="YES" sendsActionOnEndEditing="YES" state="on" borderStyle="bezel" id="Jc0-rT-PNg">
<attributes> <font key="font" metaFont="system"/>
<color key="NSColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> <color key="textColor" name="controlTextColor" catalog="System" colorSpace="catalog"/>
<font key="NSFont" metaFont="system"/> <color key="backgroundColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/>
<paragraphStyle key="NSParagraphStyle" alignment="natural" lineBreakMode="wordWrapping" baseWritingDirection="natural" tighteningFactorForTruncation="0.0"/> </textFieldCell>
</attributes> </textField>
</fragment> <imageView horizontalHuggingPriority="251" verticalHuggingPriority="251" translatesAutoresizingMaskIntoConstraints="NO" id="N4h-LP-IRY">
</attributedString> <rect key="frame" x="0.0" y="0.0" width="400" height="400"/>
<color key="insertionPointColor" name="textBackgroundColor" catalog="System" colorSpace="catalog"/> <constraints>
</textView> <constraint firstAttribute="width" secondItem="N4h-LP-IRY" secondAttribute="height" multiplier="1:1" id="0Uq-LT-xPG"/>
<constraint firstAttribute="height" constant="400" id="wfM-2D-T6r"/>
</constraints>
<imageCell key="cell" refusesFirstResponder="YES" alignment="left" imageScaling="proportionallyUpOrDown" id="8o3-U6-XgQ"/>
</imageView>
</subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="eeq-7b-IbI" secondAttribute="trailing" id="hIV-HK-m3A"/>
<constraint firstItem="N4h-LP-IRY" firstAttribute="centerX" secondItem="Wv4-dn-5EA" secondAttribute="centerX" id="iwt-XU-iJg"/>
<constraint firstItem="eeq-7b-IbI" firstAttribute="leading" secondItem="Wv4-dn-5EA" secondAttribute="leading" id="k7h-rh-AJ1"/>
</constraints>
<visibilityPriorities>
<integer value="1000"/>
<integer value="1000"/>
</visibilityPriorities>
<customSpacing>
<real value="3.4028234663852886e+38"/>
<real value="3.4028234663852886e+38"/>
</customSpacing>
</stackView>
</subviews>
<constraints>
<constraint firstItem="Wv4-dn-5EA" firstAttribute="leading" secondItem="bU3-vL-IQb" secondAttribute="leading" id="9xr-fq-dnp"/>
<constraint firstItem="Wv4-dn-5EA" firstAttribute="top" secondItem="bU3-vL-IQb" secondAttribute="top" id="DTh-1O-MlM"/>
<constraint firstAttribute="bottom" secondItem="Wv4-dn-5EA" secondAttribute="bottom" id="vJ1-Jp-H6q"/>
<constraint firstAttribute="trailing" secondItem="Wv4-dn-5EA" secondAttribute="trailing" id="zuB-nh-60R"/>
</constraints>
</view>
</subviews> </subviews>
<constraints>
<constraint firstAttribute="trailing" secondItem="bU3-vL-IQb" secondAttribute="trailing" id="Xcb-WE-2PK"/>
<constraint firstItem="bU3-vL-IQb" firstAttribute="top" secondItem="Bl4-q7-swx" secondAttribute="top" id="eEV-Ix-okb"/>
<constraint firstItem="bU3-vL-IQb" firstAttribute="leading" secondItem="Bl4-q7-swx" secondAttribute="leading" id="oko-yV-hzs"/>
</constraints>
</clipView> </clipView>
<scroller key="horizontalScroller" hidden="YES" verticalHuggingPriority="750" horizontal="YES" id="zeg-Td-OE6"> <scroller key="horizontalScroller" wantsLayer="YES" verticalHuggingPriority="750" horizontal="YES" id="ePK-Cw-UmB">
<rect key="frame" x="-100" y="-100" width="225" height="15"/> <rect key="frame" x="1" y="624" width="495" height="15"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
</scroller> </scroller>
<scroller key="verticalScroller" verticalHuggingPriority="750" horizontal="NO" id="b3U-Br-b1q"> <scroller key="verticalScroller" wantsLayer="YES" verticalHuggingPriority="750" doubleValue="1" horizontal="NO" id="SJs-Xf-ZA5">
<rect key="frame" x="457" y="0.0" width="15" height="285"/> <rect key="frame" x="496" y="1" width="15" height="623"/>
<autoresizingMask key="autoresizingMask"/> <autoresizingMask key="autoresizingMask"/>
</scroller> </scroller>
</scrollView> </scrollView>
</subviews> </subviews>
<constraints> <constraints>
<constraint firstAttribute="trailing" secondItem="qS0-eY-moI" secondAttribute="trailing" constant="20" id="5zW-yH-q6o"/> <constraint firstAttribute="bottom" secondItem="JzV-HY-whQ" secondAttribute="bottom" id="BzO-t8-fnM"/>
<constraint firstItem="qS0-eY-moI" firstAttribute="leading" secondItem="Nfs-rF-cUN" secondAttribute="leading" constant="20" id="XAb-wK-mSu"/> <constraint firstItem="JzV-HY-whQ" firstAttribute="top" secondItem="Nfs-rF-cUN" secondAttribute="top" id="Rs3-rb-V0C"/>
<constraint firstAttribute="trailing" secondItem="N4h-LP-IRY" secondAttribute="trailing" constant="20" id="cEY-J9-usm"/> <constraint firstAttribute="trailing" secondItem="JzV-HY-whQ" secondAttribute="trailing" id="cpi-7A-Gzv"/>
<constraint firstItem="N4h-LP-IRY" firstAttribute="leading" secondItem="Nfs-rF-cUN" secondAttribute="leading" constant="20" id="kKf-aB-0vG"/> <constraint firstItem="JzV-HY-whQ" firstAttribute="leading" secondItem="Nfs-rF-cUN" secondAttribute="leading" id="eFQ-HA-0eR"/>
<constraint firstItem="qS0-eY-moI" firstAttribute="bottom" secondItem="N4h-LP-IRY" secondAttribute="top" constant="-20" id="mH4-ni-caL"/>
<constraint firstItem="qS0-eY-moI" firstAttribute="top" secondItem="Nfs-rF-cUN" secondAttribute="top" constant="20" id="p0Y-Nb-dxf"/>
<constraint firstAttribute="bottom" secondItem="N4h-LP-IRY" secondAttribute="bottom" constant="20" id="zc5-8x-CjC"/>
</constraints> </constraints>
</view> </view>
<point key="canvasLocation" x="209.5" y="121"/> <point key="canvasLocation" x="209.5" y="121"/>
......
...@@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN ...@@ -28,7 +28,7 @@ NS_ASSUME_NONNULL_BEGIN
@interface VLCLibraryInformationPanel : NSWindowController @interface VLCLibraryInformationPanel : NSWindowController
@property (readwrite) IBOutlet NSTextView *textView; @property (readwrite, weak) IBOutlet NSTextField *textField;
@property (readwrite, weak) IBOutlet NSImageView *imageView; @property (readwrite, weak) IBOutlet NSImageView *imageView;
- (void)setRepresentedItem:(id<VLCMediaLibraryItemProtocol>)representedItem; - (void)setRepresentedItem:(id<VLCMediaLibraryItemProtocol>)representedItem;
......
...@@ -49,43 +49,90 @@ ...@@ -49,43 +49,90 @@
{ {
NSMutableString *textContent = [[NSMutableString alloc] initWithFormat:@"Title: '%@', ID: %lli\n", _representedItem.displayString, _representedItem.libraryID]; NSMutableString *textContent = [[NSMutableString alloc] initWithFormat:@"Title: '%@', ID: %lli\n", _representedItem.displayString, _representedItem.libraryID];
NSString *itemDetailsString;
if([_representedItem isKindOfClass:[VLCMediaLibraryMediaItem class]]) { if([_representedItem isKindOfClass:[VLCMediaLibraryMediaItem class]]) {
VLCMediaLibraryMediaItem *mediaItem = (VLCMediaLibraryMediaItem *)_representedItem; itemDetailsString = [self detailsStringForMediaItem:(VLCMediaLibraryMediaItem *)_representedItem];
if (mediaItem.mediaSubType != VLC_ML_MEDIA_SUBTYPE_UNKNOWN) { } else {
[textContent appendFormat:@"Type: %@ — %@\n", mediaItem.readableMediaType, mediaItem.readableMediaSubType]; itemDetailsString = [self detailsStringForLibraryItem:_representedItem];
} else { }
[textContent appendFormat:@"Type: %@\n", mediaItem.readableMediaType]; [textContent appendString:itemDetailsString];
}
[textContent appendFormat:@"Duration: %@\n", _representedItem.durationString]; NSString *fileDetailsString = [self fileDetailsStringForLibraryItem:_representedItem];
[textContent appendFormat:@"Play count: %u, last played: %@\n", mediaItem.playCount, [NSDateFormatter localizedStringFromDate:[NSDate dateWithTimeIntervalSince1970:mediaItem.lastPlayedDate] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle]]; [textContent appendString:fileDetailsString];
[textContent appendFormat:@"Small artwork generated? %@\n", _representedItem.smallArtworkGenerated == YES ? _NS("Yes") : _NS("No")];
[textContent appendFormat:@"Favorited? %@\n", mediaItem.favorited == YES ? _NS("Yes") : _NS("No")]; _textField.attributedStringValue = [[NSAttributedString alloc] initWithString:textContent];
[textContent appendFormat:@"Playback progress: %2.f%%\n", mediaItem.progress * 100.]; // TODO: Calculate progress for other library item types _textField.font = [NSFont systemFontOfSize:13.];
_textField.textColor = [NSColor whiteColor];
[textContent appendFormat:@"\nNumber of tracks: %lu\n", mediaItem.tracks.count]; _imageView.image = _representedItem.smallArtworkImage;
for (VLCMediaLibraryTrack *track in mediaItem.tracks) { self.window.title = _representedItem.displayString;
[textContent appendFormat:@"Type: %@\n", track.readableTrackType]; }
[textContent appendFormat:@"Codec: %@ (%@) @ %u kB/s\n", track.readableCodecName, track.codec, track.bitrate / 1024 / 8];
if (track.language.length > 0) { - (NSString *)detailsStringForMediaItem:(VLCMediaLibraryMediaItem *)mediaItem
[textContent appendFormat:@"Language: %@\n", track.language]; {
} NSMutableString *detailsString = [[NSMutableString alloc] init];
if (track.trackDescription.length > 0) {
[textContent appendFormat:@"Description: %@\n", track.trackDescription]; if (mediaItem.mediaSubType != VLC_ML_MEDIA_SUBTYPE_UNKNOWN) {
} [detailsString appendFormat:@"Type: %@ — %@\n", mediaItem.readableMediaType, mediaItem.readableMediaSubType];
if (track.trackType == VLC_ML_TRACK_TYPE_AUDIO) {
[textContent appendFormat:@"Number of Channels: %u, Sample rate: %u\n", track.numberOfAudioChannels, track.audioSampleRate];
} else if (track.trackType == VLC_ML_TRACK_TYPE_VIDEO) {
[textContent appendFormat:@"Dimensions: %ux%u px, Aspect-Ratio: %2.f\n", track.videoWidth, track.videoHeight, (float)track.sourceAspectRatio / track.sourceAspectRatioDenominator];
[textContent appendFormat:@"Framerate: %2.f\n", (float)track.frameRate / track.frameRateDenominator];
}
[textContent appendString:@"\n"];
}
} else { } else {
[textContent appendFormat:@"Duration: %@\n", _representedItem.durationString]; [detailsString appendFormat:@"Type: %@\n", mediaItem.readableMediaType];
[textContent appendFormat:@"Small artwork generated? %@\n", _representedItem.smallArtworkGenerated == YES ? _NS("Yes") : _NS("No")]; }
[detailsString appendFormat:@"Duration: %@\n", _representedItem.durationString];
[detailsString appendFormat:@"Play count: %u, last played: %@\n", mediaItem.playCount, [NSDateFormatter localizedStringFromDate:[NSDate dateWithTimeIntervalSince1970:mediaItem.lastPlayedDate] dateStyle:NSDateFormatterShortStyle timeStyle:NSDateFormatterShortStyle]];
[detailsString appendFormat:@"Small artwork generated? %@\n", _representedItem.smallArtworkGenerated ? _NS("Yes") : _NS("No")];
[detailsString appendFormat:@"Favorited? %@\n", mediaItem.favorited ? _NS("Yes") : _NS("No")];
[detailsString appendFormat:@"Playback progress: %2.f%%\n", mediaItem.progress * 100.]; // TODO: Calculate progress for other library item types
[detailsString appendFormat:@"\nNumber of tracks: %lu\n", mediaItem.tracks.count];
for (VLCMediaLibraryTrack *track in mediaItem.tracks) {
NSString *trackDetailsString = [self detailsStringForTrack:track];
[detailsString appendString:trackDetailsString];
} }
return detailsString;
}
- (NSString *)detailsStringForTrack:(VLCMediaLibraryTrack *)track
{
NSMutableString *detailsString = [[NSMutableString alloc] init];
[detailsString appendFormat:@"Type: %@\n", track.readableTrackType];
[detailsString appendFormat:@"Codec: %@ (%@) @ %u kB/s\n", track.readableCodecName, track.codec, track.bitrate / 1024 / 8];
if (track.language.length > 0) {
[detailsString appendFormat:@"Language: %@\n", track.language];
}
if (track.trackDescription.length > 0) {
[detailsString appendFormat:@"Description: %@\n", track.trackDescription];
}
if (track.trackType == VLC_ML_TRACK_TYPE_AUDIO) {
[detailsString appendFormat:@"Number of Channels: %u, Sample rate: %u\n", track.numberOfAudioChannels, track.audioSampleRate];
} else if (track.trackType == VLC_ML_TRACK_TYPE_VIDEO) {
[detailsString appendFormat:@"Dimensions: %ux%u px, Aspect-Ratio: %2.f\n", track.videoWidth, track.videoHeight, (float)track.sourceAspectRatio / track.sourceAspectRatioDenominator];
[detailsString appendFormat:@"Framerate: %2.f\n", (float)track.frameRate / track.frameRateDenominator];
}
[detailsString appendString:@"\n"];
return detailsString;
}
- (NSString *)detailsStringForLibraryItem:(id<VLCMediaLibraryItemProtocol>)libraryItem
{
NSMutableString *detailsString = [[NSMutableString alloc] init];
[detailsString appendFormat:@"Duration: %@\n", libraryItem.durationString];
[detailsString appendFormat:@"Small artwork generated? %@\n", libraryItem.smallArtworkGenerated ? _NS("Yes") : _NS("No")];
return detailsString;
}
- (NSString *)fileDetailsStringForLibraryItem:(id<VLCMediaLibraryItemProtocol>)libraryItem
{
__block NSUInteger fileCount = 0; __block NSUInteger fileCount = 0;
NSMutableString *fileDetails = [[NSMutableString alloc] init]; NSMutableString *fileDetails = [[NSMutableString alloc] init];
...@@ -96,14 +143,9 @@ ...@@ -96,14 +143,9 @@
[fileDetails appendFormat:@"Type: %@\n", file.readableFileType]; [fileDetails appendFormat:@"Type: %@\n", file.readableFileType];
} }
}]; }];
[textContent appendFormat:@"\nNumber of files: %lu\n", fileCount]; [fileDetails appendFormat:@"\nNumber of files: %lu\n", fileCount];
[textContent appendString: fileDetails];
return fileDetails;
[self.textView.textStorage setAttributedString: [[NSAttributedString alloc] initWithString:textContent]];
self.textView.textStorage.font = [NSFont systemFontOfSize:13.];
self.textView.textStorage.foregroundColor = [NSColor whiteColor];
self.window.title = _representedItem.displayString;
self.imageView.image = _representedItem.smallArtworkImage;
} }
@end @end