@christianriedl/media 1.0.47 → 1.0.48
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/iMedia.d.ts +14 -0
- package/dist/iMedia.js +12 -0
- package/dist/iMedia.js.map +1 -1
- package/package.json +2 -2
- package/src/views/PhotoAlbumPage.vue +22 -5
package/dist/iMedia.d.ts
CHANGED
|
@@ -8,6 +8,20 @@ export declare enum EMediaType {
|
|
|
8
8
|
None = 254,
|
|
9
9
|
Various = 255
|
|
10
10
|
}
|
|
11
|
+
export declare enum EPictureQuality {
|
|
12
|
+
Full = 0,
|
|
13
|
+
Normal60 = 10060,
|
|
14
|
+
Normal80 = 10080,
|
|
15
|
+
Normal90 = 10090,
|
|
16
|
+
Normal100 = 10100,
|
|
17
|
+
High60 = 20060,
|
|
18
|
+
High80 = 20080,
|
|
19
|
+
High90 = 20090,
|
|
20
|
+
High100 = 20100
|
|
21
|
+
}
|
|
22
|
+
export interface IMediaAppConfig {
|
|
23
|
+
pictureQuality: EPictureQuality;
|
|
24
|
+
}
|
|
11
25
|
export declare enum EItemType {
|
|
12
26
|
None = 0,
|
|
13
27
|
RootLevel = 0,
|
package/dist/iMedia.js
CHANGED
|
@@ -9,6 +9,18 @@ export var EMediaType;
|
|
|
9
9
|
EMediaType[EMediaType["None"] = 254] = "None";
|
|
10
10
|
EMediaType[EMediaType["Various"] = 255] = "Various";
|
|
11
11
|
})(EMediaType || (EMediaType = {}));
|
|
12
|
+
export var EPictureQuality;
|
|
13
|
+
(function (EPictureQuality) {
|
|
14
|
+
EPictureQuality[EPictureQuality["Full"] = 0] = "Full";
|
|
15
|
+
EPictureQuality[EPictureQuality["Normal60"] = 10060] = "Normal60";
|
|
16
|
+
EPictureQuality[EPictureQuality["Normal80"] = 10080] = "Normal80";
|
|
17
|
+
EPictureQuality[EPictureQuality["Normal90"] = 10090] = "Normal90";
|
|
18
|
+
EPictureQuality[EPictureQuality["Normal100"] = 10100] = "Normal100";
|
|
19
|
+
EPictureQuality[EPictureQuality["High60"] = 20060] = "High60";
|
|
20
|
+
EPictureQuality[EPictureQuality["High80"] = 20080] = "High80";
|
|
21
|
+
EPictureQuality[EPictureQuality["High90"] = 20090] = "High90";
|
|
22
|
+
EPictureQuality[EPictureQuality["High100"] = 20100] = "High100";
|
|
23
|
+
})(EPictureQuality || (EPictureQuality = {}));
|
|
12
24
|
export var EItemType;
|
|
13
25
|
(function (EItemType) {
|
|
14
26
|
EItemType[EItemType["None"] = 0] = "None";
|
package/dist/iMedia.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"iMedia.js","sourceRoot":"","sources":["../src/iMedia.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IAClB,6CAAS,CAAA;IACT,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,4CAAS,CAAA;IACT,0DAAgB,CAAA;IAChB,iDAAa,CAAA;IACb,6CAAW,CAAA;IACX,mDAAc,CAAA;AAClB,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AACD,MAAM,CAAN,IAAY,SAoDX;AApDD,WAAY,SAAS;IACjB,yCAAQ,CAAA;IACR,mDAAa,CAAA;IACb,uDAAe,CAAA;IACf,uDAAe,CAAA;IACf,6DAAkB,CAAA;IAClB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,mDAAgB,CAAA;IAChB,6CAAa,CAAA;IACb,4CAAY,CAAA;IACZ,4CAAY,CAAA;IACZ,gDAAc,CAAA;IACd,6DAAoB,CAAA;IACpB,qDAAgB,CAAA;IAChB,yCAAa,CAAA;IACb,mDAA6C,CAAA;IAC7C,oDAA0B,CAAA;IAC1B,wDAAkC,CAAA;IAClC,wDAAkC,CAAA;IAClC,8DAAqC,CAAA;IACrC,sDAAiC,CAAA;IACjC,wDAAkC,CAAA;IAClC,sDAAiC,CAAA;IACjC,0DAAmC,CAAA;IACnC,uEAA0C,CAAA;IAC1C,2EAA8C,CAAA;IAC9C,sDAAkB,CAAA;IAClB,+DAAkC,CAAA;IAClC,oDAA0B,CAAA;IAC1B,wDAAkC,CAAA;IAClC,wDAAkC,CAAA;IAClC,8DAAqC,CAAA;IACrC,4DAAoC,CAAA;IACpC,uEAA0C,CAAA;IAC1C,2EAA8C,CAAA;IAC9C,yEAA+C,CAAA;IAC/C,oDAAiB,CAAA;IACjB,+DAAkC,CAAA;IAClC,wDAA8B,CAAA;IAC9B,4DAAsC,CAAA;IACtC,4DAAsC,CAAA;IACtC,kEAAyC,CAAA;IACzC,gEAAwC,CAAA;IACxC,wDAAoC,CAAA;IACpC,0DAAqC,CAAA;IACrC,wDAAqB,CAAA;IACrB,uDAA+C,CAAA;IAC/C,qDAAgB,CAAA;IAChB,yCAAU,CAAA;AACd,CAAC,EApDW,SAAS,KAAT,SAAS,QAoDpB;AACD,MAAM,CAAN,IAAY,MAUX;AAVD,WAAY,MAAM;IACd,mCAAQ,CAAA;IACR,yDAAsB,CAAA;IACtB,2CAAe,CAAA;IACf,+CAAiB,CAAA;IACjB,qDAAoB,CAAA;IACpB,kDAAkB,CAAA;IAClB,sDAAoB,CAAA;IACpB,0DAAsB,CAAA;IACtB,+DAAwB,CAAA;AAC5B,CAAC,EAVW,MAAM,KAAN,MAAM,QAUjB;AA+CD,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IAEpB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,6DAAe,CAAA;IACf,uDAAY,CAAA;IACZ,2DAAc,CAAA;IACd,yDAAa,CAAA;AACjB,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB"}
|
|
1
|
+
{"version":3,"file":"iMedia.js","sourceRoot":"","sources":["../src/iMedia.ts"],"names":[],"mappings":"AAEA,MAAM,CAAN,IAAY,UASX;AATD,WAAY,UAAU;IAClB,6CAAS,CAAA;IACT,6CAAS,CAAA;IACT,iDAAW,CAAA;IACX,4CAAS,CAAA;IACT,0DAAgB,CAAA;IAChB,iDAAa,CAAA;IACb,6CAAW,CAAA;IACX,mDAAc,CAAA;AAClB,CAAC,EATW,UAAU,KAAV,UAAU,QASrB;AACD,MAAM,CAAN,IAAY,eAUX;AAVD,WAAY,eAAe;IACvB,qDAAiB,CAAA;IACjB,iEAAqB,CAAA;IACrB,iEAAqB,CAAA;IACrB,iEAAqB,CAAA;IACrB,mEAAqB,CAAA;IACrB,6DAAqB,CAAA;IACrB,6DAAqB,CAAA;IACrB,6DAAqB,CAAA;IACrB,+DAAqB,CAAA;AACzB,CAAC,EAVW,eAAe,KAAf,eAAe,QAU1B;AAID,MAAM,CAAN,IAAY,SAoDX;AApDD,WAAY,SAAS;IACjB,yCAAQ,CAAA;IACR,mDAAa,CAAA;IACb,uDAAe,CAAA;IACf,uDAAe,CAAA;IACf,6DAAkB,CAAA;IAClB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,iEAAoB,CAAA;IACpB,mDAAgB,CAAA;IAChB,6CAAa,CAAA;IACb,4CAAY,CAAA;IACZ,4CAAY,CAAA;IACZ,gDAAc,CAAA;IACd,6DAAoB,CAAA;IACpB,qDAAgB,CAAA;IAChB,yCAAa,CAAA;IACb,mDAA6C,CAAA;IAC7C,oDAA0B,CAAA;IAC1B,wDAAkC,CAAA;IAClC,wDAAkC,CAAA;IAClC,8DAAqC,CAAA;IACrC,sDAAiC,CAAA;IACjC,wDAAkC,CAAA;IAClC,sDAAiC,CAAA;IACjC,0DAAmC,CAAA;IACnC,uEAA0C,CAAA;IAC1C,2EAA8C,CAAA;IAC9C,sDAAkB,CAAA;IAClB,+DAAkC,CAAA;IAClC,oDAA0B,CAAA;IAC1B,wDAAkC,CAAA;IAClC,wDAAkC,CAAA;IAClC,8DAAqC,CAAA;IACrC,4DAAoC,CAAA;IACpC,uEAA0C,CAAA;IAC1C,2EAA8C,CAAA;IAC9C,yEAA+C,CAAA;IAC/C,oDAAiB,CAAA;IACjB,+DAAkC,CAAA;IAClC,wDAA8B,CAAA;IAC9B,4DAAsC,CAAA;IACtC,4DAAsC,CAAA;IACtC,kEAAyC,CAAA;IACzC,gEAAwC,CAAA;IACxC,wDAAoC,CAAA;IACpC,0DAAqC,CAAA;IACrC,wDAAqB,CAAA;IACrB,uDAA+C,CAAA;IAC/C,qDAAgB,CAAA;IAChB,yCAAU,CAAA;AACd,CAAC,EApDW,SAAS,KAAT,SAAS,QAoDpB;AACD,MAAM,CAAN,IAAY,MAUX;AAVD,WAAY,MAAM;IACd,mCAAQ,CAAA;IACR,yDAAsB,CAAA;IACtB,2CAAe,CAAA;IACf,+CAAiB,CAAA;IACjB,qDAAoB,CAAA;IACpB,kDAAkB,CAAA;IAClB,sDAAoB,CAAA;IACpB,0DAAsB,CAAA;IACtB,+DAAwB,CAAA;AAC5B,CAAC,EAVW,MAAM,KAAN,MAAM,QAUjB;AA+CD,MAAM,CAAN,IAAY,YAQX;AARD,WAAY,YAAY;IAEpB,+CAAQ,CAAA;IACR,qDAAW,CAAA;IACX,6DAAe,CAAA;IACf,uDAAY,CAAA;IACZ,2DAAc,CAAA;IACd,yDAAa,CAAA;AACjB,CAAC,EARW,YAAY,KAAZ,YAAY,QAQvB"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@christianriedl/media",
|
|
3
|
-
"version": "1.0.
|
|
3
|
+
"version": "1.0.48",
|
|
4
4
|
"description": "RIC media interfaces",
|
|
5
5
|
|
|
6
6
|
"main": "dist/index.js",
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
"author": "Christian Riedl",
|
|
19
19
|
"license": "ISC",
|
|
20
20
|
"dependencies": {
|
|
21
|
-
"@christianriedl/utils": "^1.0.
|
|
21
|
+
"@christianriedl/utils": "^1.0.76",
|
|
22
22
|
"@christianriedl/rest": "^1.0.47",
|
|
23
23
|
"@christianriedl/epg": "^1.0.26"
|
|
24
24
|
},
|
|
@@ -2,12 +2,13 @@
|
|
|
2
2
|
import { inject, ref, reactive, computed, onMounted, onBeforeMount, onUnmounted, nextTick, watch } from 'vue';
|
|
3
3
|
import { useRouter, useRoute } from 'vue-router';
|
|
4
4
|
import { IAppState, IAppConfig, Dictionary, Helper, appStateSymbol, appConfigSymbol } from '@christianriedl/utils';
|
|
5
|
-
import { EMediaType, IPictureFile, MediaService, getMediaSymbol } from '@christianriedl/media';
|
|
5
|
+
import { EMediaType, IPictureFile, MediaService, IMediaAppConfig, EPictureQuality, getMediaSymbol } from '@christianriedl/media';
|
|
6
6
|
|
|
7
7
|
const router = useRouter();
|
|
8
8
|
const route = useRoute();
|
|
9
9
|
const appState = inject(appStateSymbol)!;
|
|
10
10
|
const appConfig = inject(appConfigSymbol)!;
|
|
11
|
+
const mediaAppConfig = appConfig as IMediaAppConfig;
|
|
11
12
|
const getMediaService = inject(getMediaSymbol)!;
|
|
12
13
|
const mediaService = getMediaService();
|
|
13
14
|
const heightStyle = computed(() => { return { height: appState.bodyHeight.value + 'px', overflowY: 'hidden' } });
|
|
@@ -84,10 +85,15 @@
|
|
|
84
85
|
}
|
|
85
86
|
}
|
|
86
87
|
function getUrl(item: IPictureFile) {
|
|
88
|
+
const pictureQuality = mediaAppConfig.pictureQuality;
|
|
89
|
+
const quality = pictureQuality % 1000;
|
|
90
|
+
let factor = Math.floor(pictureQuality / 1000);
|
|
91
|
+
if (factor > 1 && appState.pixelRatio > 1)
|
|
92
|
+
factor = appState.pixelRatio;
|
|
87
93
|
if (landscape.value)
|
|
88
|
-
return mediaService.getPhotoUrl(url.value, item.Url, `${0}x${height.value}x${item.Orientation}`);
|
|
94
|
+
return mediaService.getPhotoUrl(url.value, item.Url, `${0}x${height.value * factor}x${item.Orientation}x${quality}`);
|
|
89
95
|
else
|
|
90
|
-
return mediaService.getPhotoUrl(url.value, item.Url, `${width.value}x${0}x${item.Orientation}`);
|
|
96
|
+
return mediaService.getPhotoUrl(url.value, item.Url, `${width.value * factor}x${0}x${item.Orientation}x${quality}`);
|
|
91
97
|
}
|
|
92
98
|
function showMap(ev: Event) {
|
|
93
99
|
const current = items[index.value];
|
|
@@ -125,15 +131,24 @@
|
|
|
125
131
|
if (index.value < items.length - 1)
|
|
126
132
|
index.value++;
|
|
127
133
|
break;
|
|
128
|
-
case "KeyI":
|
|
134
|
+
case "KeyI": // Info
|
|
129
135
|
const item = items[index.value];
|
|
130
136
|
const exif = await mediaService.getExifInfo(item.DLNAParentID, item.DLNAID);
|
|
131
137
|
setMetaData(exif, item);
|
|
132
138
|
infoDialog.value = true;
|
|
133
139
|
break;
|
|
134
|
-
case "KeyC":
|
|
140
|
+
case "KeyC": // Continue
|
|
135
141
|
cycle.value = true;
|
|
136
142
|
break;
|
|
143
|
+
case "KeyF": // Fullscreen
|
|
144
|
+
if (window.document.fullscreen) {
|
|
145
|
+
await window.document.exitFullscreen();
|
|
146
|
+
}
|
|
147
|
+
else {
|
|
148
|
+
const mainEle = window.document.getElementsByTagName('main')[0];
|
|
149
|
+
mainEle.requestFullscreen();
|
|
150
|
+
}
|
|
151
|
+
break;
|
|
137
152
|
case "KeyP":
|
|
138
153
|
case "Digit0":
|
|
139
154
|
cycle.value = false;
|
|
@@ -184,6 +199,7 @@
|
|
|
184
199
|
function setMetaData(exif: Dictionary<any>, file: IPictureFile) {
|
|
185
200
|
origUrl = mediaService.getPhotoUrl(url.value, file.Url, '0x0x0');
|
|
186
201
|
metadata['Name'] = file.Name;
|
|
202
|
+
metadata['Url'] = file.Url;
|
|
187
203
|
if (exif) {
|
|
188
204
|
if (exif.Model)
|
|
189
205
|
metadata['Kamera'] = exif.Model;
|
|
@@ -332,6 +348,7 @@
|
|
|
332
348
|
<v-col cols="4"><v-btn @click="onKeyClick('Digit9')">9</v-btn></v-col>
|
|
333
349
|
</v-row>
|
|
334
350
|
<v-row dense>
|
|
351
|
+
<v-col cols="4"><v-btn @click="onKeyClick('KeyF')">Full</v-btn></v-col>
|
|
335
352
|
<v-col cols="4"><v-btn @click="onKeyClick('KeyI')">Info</v-btn></v-col>
|
|
336
353
|
<v-col cols="4"><v-btn @click="onKeyClick('close')">Close</v-btn></v-col>
|
|
337
354
|
</v-row>
|